張瑩 曲艷梅
摘 要:針對軟件測試課程教學中缺乏系統實例、重技術實現輕文檔工作、測試工具使用流于產品說明等問題,文章就探索實驗教學進度和內容進行了論述。依據實際軟件開發過程中軟件測試實施的方式方法,提出設計一套系統的軟件測試實驗內容。文章還闡述了在教學過程中采用案例教學法,提供給學生完整的案例系統及充分的設計文檔.統計功能,測試計劃。測試應該跨越整個軟件開發流程。需求驗證(自檢)和設計驗證(自檢)也可以算作軟件測試(建議稱為需求測試和設計測試)的一種。軟件測試應該是一個泛型概念,涵蓋整個軟件生命周期,這樣才能確保周期的每個階段都禁得起考驗。同時測試本身也需要有第三者進行評估(信息系統審計和軟件工程監理),即測試本身也應當被測試,從而確保測試自身的可靠性和高效性。否則自身不正,難以服人。
關鍵詞:測試管理教學;測試實習性教學;測試管理系統
軟件開發和使用的歷史已經留給了我們很多由于軟件缺陷而導致巨大財力、物力損失的經驗教訓。這些經驗教訓迫使我們必須采取強有力的檢測措施來檢測未發現的隱藏軟件缺陷。生產軟件的最終目的是為了滿足客戶需求,我們以客戶需求作為評判軟件質量的標準,認為軟件缺陷(Software Bug)的具體含義包括下面幾個因素:
軟件未達到客戶需求的功能和性能。
軟件超出客戶需求的范圍。
軟件出現客戶需求不能容忍的錯誤。
軟件的使用未能符合客戶的習慣和工作環境。
考慮到設計等方面的因素,我們還可以認為軟件缺陷包括軟件設計不符合規范、未能在特定的條件(資金、范圍等)達到最佳等。可惜的是,很多人更傾向于把軟件缺陷看成運行時出現的問題,認為軟件測試僅限于程序提交之后。在目前的國內環境下,幾乎看不到完整準確的客戶需求說明書,再加上客戶的需求時時在變,追求完美的測試變得不太可能。但是明確軟件測試現實與理想的差距,在軟件測試中學會取舍和讓步,對軟件測試是有百益而無一弊的。
軟件測試并不單純等同于程序測試。軟件測試應該貫穿整個軟件定義與整個開發周期。因此需求分析、概要設計、詳細設計以及程序編碼等各階段所得到的文檔,包括需求規格說明、概要設計規格說明、詳細設計規格說明以及源程序,都應該是軟件測試(評審)的對象。
在對需求理解與表達的正確性、設計與表達的正確性、實現的正確性以及運行的正確性的驗證中,任何一個環節發生了問題都可能在軟件測試中表現出來。
在這部分中,我個人確保每個階段功能的實現,在系統完成后,每個分支都走過一遍,也有發現的問題,但都通過查閱資料將其解決了。
性能測試
測量Web服務器的性能是一項讓人感到畏縮的任務,它不像一些簡單的任務,如測量CPU的速率或者是測量程序占用CPU的比例,Web服務器的性能優化中包括調整許多變量來達到目標。許多的測量策略中都包含了一個看似簡單的瀏覽,實際上是在向服務器發送大量的請求,這稱之為客戶端的程序,它用來測量響應時間。常見的問題有如下幾個:
客戶端和服務器端是否在同一臺機器上。
服務器在測試的時候是否還運行著其他的程序。
客戶端和服務器端的通信是通過局域網(100baseT、10baseT)還是使用調制解調器。
客戶端是否一直重復請求相同的頁面,還是隨機地訪問不同的頁面。
客戶端發送請求是有規律的還是突發的。
是在最終的配置環境下運行服務的,還是在調試的配置環境下運行服務的。
客戶端的請求中包含圖片還是只有HTML頁面。
所有這些都是要關心的問題,并且幾乎不可能精確地把所有的問題都列出來。
基于以上的要求,最合適的測試方法無非是通過一定的訪問量來實現,但是這樣的工作談何容易,這種思路的測試就是壓力測試。俗話說:“工欲善其事,必先利其器”,壓力測試只有借助于一些工具才可得以實施。大多數Web壓力測試工具的實現原理都是通過重復的大量頁面請求來模擬多用戶對被測系統的并發訪問,以此達到產生壓力的目的。產生壓力的手段都是通過錄制或者是編寫壓力腳本,這些腳本以多個進程或者線程的形式在客戶端運行,這樣通過人為制造各種類型的壓力,可以觀察被測系統在各種壓力狀況下的表現,從而定位系統瓶頸,作為系統調優的基礎。目前已經存在的性能測試工具林林總總,數量不下一百種,從單一的開放源碼的免費小工具,如Apache自帶的Web性能測試工具(Apache Benchmark、開源的JMeter)到大而全的商業性能測試軟件,如Mercury的LoadRunner、Siege等。
系統測試分為功能測試和性能測試兩部分。為了驗證本系統的各項功能是否滿足設計要求,是否符合用戶需求,是否存在錯誤;本文分別做了功能測試和性能測試。
測試環境
為了保證呈現給終端用戶的界面一致性,功能測試環境選用了IE瀏覽器、火狐瀏覽器、谷歌瀏覽器、遨游瀏覽器、搜狗瀏覽器。性能測試主要使用自動化測試工具Load Runner進行測試。
測試環境詳細信息見表5-3。
表5-3開放式實習教學管理系統測試環境信息表
(1)功能測試:測試系統實現的功能。
通過使用不同瀏覽器訪問系統網站,進行認證登陸;運行各項管理功能、操作,觀察操作后現象、過程、結果,判斷是否滿足設計要求和用戶需求。如出現錯誤或應用不滿足實際需求,則記錄相關信息;本輪測試結束后加以修改,修改完畢繼續測試,直到所有功能測試通過后才可最終結束測試。
(2)性能測試:測試系統性能指標。
通過Load Runner工具進行測試,得出客觀數據。針對系統服務的特點,分析這些數據表達出的信息,確定系統響應時間是否及時、準確;服務器端資源消耗是否合理。服務器端指標包括并發性、吞吐量、內存占用率、數據庫服務器CPU占用情況等。如性能指標達不到設計要求,分析出問題具體原因,是系統設計問題還是硬件配置問題,最終改正達到系統要求指標,結束測試。
參考文獻:
[1]湯振華.淺談高等院校素質教育現狀(J).高校論壇,2013,1(7):104-108.
[2]侯云霞,于金秀.高校思想政治理論課教學實習與實習教學思考(J).中國特色社會主義研究,2008,2(10):159.
[3]徐威軍.高等師范院校開放實習教學管理問題研究(D).東北師范大學,2010:4-5.
作者簡介:張? 瑩(1975-),女,黑龍江人,實驗師,工程碩士,研究方向:計算機技術
曲艷梅(1980-),女,黑龍江人,講師,研究方向:計算機技術