
編者按:近年來,國家密集發布了相關政策法規,對于政務信息系統驗收前都要求進行驗收測試。文章在介紹電子政務信息系統、驗收測試的基礎上,重點分析了電子政務信息系統驗收測試發展的方方面面,并提出了如何對當前電子政務信息系統驗收測試工作的各個方面進行優化。
電子政務信息系統
電子政務的基本概念
電子政務是指國家機關在政務活動中,全面應用現代信息技術、網絡技術以及辦公自動化技術等進行辦公、管理和為社會提供公共服務的一種全新的管理模式。相對于傳統行政方式,電子政務的最大特點就在于其行政方式的電子化,即行政方式的無紙化、信息傳遞的網絡化、行政法律關系的虛擬化等。
電子政務信息系統及其發展
電子政務信息系統發展至今,它的主要組成部分包括系統資源、應用軟件和系統管理。系統資源包括硬件和軟件兩部分。應用軟件是在系統資源基礎上針對行政組織職能開發的,是電子政務系統的核心。系統管理包括組織結構、規章制度、人工處理、系統規劃。
驗收測試
軟件測試地基本概念
1983年IEEE提出的軟件工程標準術語中給軟件測試下的定義是:“使用人工或自動手段來運行或測定某個系統的過程,其目的在于檢驗它是否滿足規定的需求或是弄清預期結果與實際結果之間的差別。”G. J. Myers則認為:(1)測試是為了發現故障而執行程序的過程;(2)一個好的測試用例在于能發現至今未發現的故障;(3)一個成功的測試是發現了至今未發現的故障的測試。明確指出尋找故障是測試的目的。這和Hennell提出的“測試的目的是要提供有說服力的證據證明軟件沒有故障,或是顯示某種特殊類型的故障不存在”完全相反。如果測試是為了發現程序中的故障,就會力求設計出最能暴露故障的測試方案;相反,如果是為了表明程序正確而進行測試,就會自覺或不自覺地回避可能出現故障的地方,設計出一些不易暴露故障的測試方案,從而使程序的可靠性受到極大的影響。關于這一點,Myers在《The Art software Testing》一書中給予了充分的說明。
軟件測試的基本原則和方法
軟件測試的基本原則是站在用戶的角度,對產品進行全面測試,盡早、盡可能多地發現缺陷,并負責跟蹤和分析產品中的問題,對不足之處提出質疑和改進意見。
進一步研究應注意和遵循的原則可以概括為10項。
·所有測試的標準都是建立在用戶需求之上。
·軟件測試必須基于“質量第一”的思想去開展各項工作。
·事先定義好產品的質量標準。
·軟件項目一啟動,軟件測試也就開始,而不是等程序寫完,才開始進行測試。
·窮舉測試是不可能的。
·第三方進行測試會更客觀,更有效。
·軟件測試計劃是做好軟件測試工作的前提。
·測試用例是設計出來的,不是寫出來的,所以要根據測試的目的,采用相應的方法去設計測試用例,從而提高測試的效率,更多地發現錯誤,提高程序的可靠性。
·對發現錯誤較多的程序段,應進行更深入的測試。
·重視文檔,妥善保存一切測試過程文檔。
軟件測試具有多種方法,軟件測試方法根據軟件是否需要被執行,可以分為靜態測試和動態測試。按照功能劃分,可以分為白盒測試和黑盒測試。
靜態測試是指被測程序不在機器上運行,對模塊的源代碼進行研讀,查找錯誤或收集一些度量數據,并不需要對代碼進行編譯和仿真運行,采用人工檢測和計算機輔助靜態分析手段對程序進行檢測,只進行特性分析。動態測試則是指通過真正運行程序發現錯誤,通過有效的測試用例,對應的輸入/輸出關系來分析被測程序的運行情況。
黑盒測試也稱功能測試或數據驅動測試。它不考慮程序內部結構和處理過程,把被測程序看成一個黑盒子,只在軟件接口處進行測試,依據需求規格說明書,檢查程序是否滿足功能要求。白盒測試也稱結構測試或邏輯驅動測試,與黑盒測試法不同,測試人員將程序視為一個透明的白盒子,需了解程序內部結構和處理過程,以檢查處理過程的細節為基礎,要求對程序的結構特性做到一定程度的覆蓋,對程序中的所有邏輯路徑進行測試,并檢驗內部控制結構是否有錯,確定實際的運行狀態與預期的狀態是否一致。
軟件測試的階段
軟件測試貫穿軟件產品開發的整個生命周期,軟件項目一開始,軟件測試就開始了,從產品的需求分析審查到最后的驗收測試結束,整個軟件測試階段如圖1所示。
驗收測試的基本概念
驗收測試是指在軟件產品完成了功能測試和系統測試之后、產品發布之前所進行的軟件測試活動。它是技術測試的最后一個階段,也稱為交付測試。驗收測試的目的是為了確保軟件準備就緒,并且可以讓最終用戶將其用于執行軟件的既定功能和任務。
驗收測試的重要性
驗收測試是軟件開發生命周期的一個組成部分。它為軟件開發團隊和用戶帶來了信心,即軟件版本將不會出現任何重大問題或意外結果。功能按照開發人員認為最符合需求的方式進行編碼,但其結果并不總是與實際業務需求保持一致。借助驗收測試,用戶可以確保滿足業務要求,并且有效地傳達了對需求的任何更改。
驗收測試的常見策略
驗收測試常見策略有α測試和β測試等。α測試是指軟件開發公司組織內部人員模擬各類用戶對即將面市軟件產品(稱為α版本)進行測試,試圖發現錯誤并修正。α測試的關鍵在于盡可能逼真地模擬實際運行環境和用戶對軟件產品的操作并盡最大努力涵蓋所有可能的用戶操作方式。經過α測試調整的軟件產品稱為β版本。β測試是指軟件開發公司組織各方面的典型用戶在日常工作中實際使用β版本,并要求用戶報告異常情況、提出批評意見。
驗收測試的過程和內容
驗收測試的前提:系統或軟件產品已通過了系統測試的軟件系統。
驗收測試的內容:驗證系統是否達到了用戶需求規格說明書中的要求,測試試圖盡可能地發現軟件中存留的缺陷,從而為軟件進一步改善提供幫助,并保證系統或軟件產品最終被用戶接受。主要包括功能性測試、性能效率測試、信息安全性測試、可靠性測試、易用性測試、兼容性測試、可移植性安裝測試、文檔(如用戶手冊、操作手冊等)檢查等幾個方面的內容。
驗收測試的步驟
·制定測試計劃、測試項、測試策略及驗收通過準則,并經過客戶參與的計劃評審。
·建立測試環境,設計測試用例,并經過評審。
·準備測試數據,執行測試用例,記錄測試結果。
·分析測試結果,根據驗收通過準則分析測試結果,作出驗收是否通過及測試評價。
·測試項目通過;
·測試項目沒有通過,并且不存在變通方法,需要很大的修改;
·測試項目沒有通過,但存在變通方法,在維護后期或下一個版本改進;
·測試項目無法評估或者無法給出完整的評估。此時必須給出原因。如果是因為該測試項目沒有說明清楚,應該修改測試計劃。
·提交測試報告。
電子政務信息系統驗收測試概述及優化
電子政務信息系統驗收測試的類別
傳統的軟件驗收測試主要分為正式測試、非正式測試等。電子政務信息系統發展至今早已引入第三方測試類型,即由具備相應資質的獨立第三方評測機構進行驗收測試。第三方測試有別于開發人員或用戶進行的自測,其目的是為了保證測試工作的客觀性。
電子政務信息系統驗收測試的流程
為了適應當前越來越復雜的電子政務信息系統,將第三方驗收測試流程設計如圖2所示。
電子政務信息系統驗收測試的階段和內容
以往的信息系統驗收測試是在完成了系統測試之后,系統驗收之前開展,目的是為了驗證信息系統是否達到了用戶需求規格說明書(可能包括項目或產品驗收準則)中的要求。測試階段主要分為測試準備階段、測試實施階段、回歸測試階段、總結與報告階段,包含的內容有分析測試需求、制定測試計劃、編寫測試方案、熟悉系統、編寫測試用例、實施測試用例、回歸測試、編寫測試報告[6]。而在終驗階段展開的測試已經很難保障項目的建設質量,因此根據電子政務信息系統建設工程的發展特點,將驗收測試設計為子系統驗收、集成、初驗和終驗四個階段。
(1)子系統驗收階段
在子系統驗收階段完成電子政務信息系統建設工程中各子系統的分項驗收測試工作。該階段測試工作的主要依據是采購文件、合同、深化設計等中的相關要求,測試的重點就是功能性,主要包括以下方面:
·功能需求:依據采購文件、合同、深化設計和國家標準驗證各子系統是否滿足全部的功能要求,并且功能能夠正常實現;
·業務需求:依據深化設計測試各子系統的業務流程,確保其關鍵業務能夠正常執行;
·數據處理需求:依據深化設計測試各子系統數據處理的正確性,確保數據的傳輸和交換準確無誤。
(2)集成階段
在集成階段完成電子政務信息系統建設工程中各子系統的整合測試工作。該階段測試重點就是考察系統內部及系統間接口、兼容性,以及系統的穩定性方面,主要包括以下內容:
·接口測試:對系統集成后的各子系統內部接口,以及各子系統間的接口進行測試,確保接口能被正常調用,數據能夠正常交換流轉,實現數據共享;
·兼容性測試:測試各子系統之間各模塊、數據是否兼容,在同一平臺中運行互不干擾;
·穩定性測試:測試集成后的系統長時間運行的性能能力,可通過平均無故障率等指標來考察。
(3)初驗階段
初驗階段將集成的系統部署在生產環境中,測試包括硬件、網絡、軟件等整個系統的性能、安全、易用性、兼容性等方面,主要包括以下內容:
·性能測試:依據采購文件、合同、深化設計、需求說明等文檔中的性能要求,測試相關系統的關鍵業務的響應時間、并發用戶數、在線用戶量以及資源利用情況等效率是否滿足用戶需求;
·安全測試:根據電子政務信息系統的相關安全要求,測試系統的信息安全性,包括訪問控制、身份鑒別、權限限制、安全審計、數據備份與恢復等內容;
·易用性測試:通過功能執行的各種操作、文檔查看、在線幫助信息等技術手段,測試系統的易理解性、易學性、易操作性等易用性質量特性。
·兼容性測試:主要測試電子政務信息系統與其它系統間的數據共享和交換能力。
(4)終驗階段
初驗階段完成以后,項目將進行試運行,完成試運行后進入到項目終驗階段,該階段是以項目的最終驗收為目的,測試系統的可維護性、可擴展性等,并對項目文檔進行全面檢查,主要包括以下內容:
·可維護性測試:測試系統上線運行后的維護能力,例如故障診斷、故障分析、故障恢復等;
·可擴展性測試:包括接口的擴展性、功能的擴展性、性能的擴展性等;
·文檔檢查:項目開發文檔是項目投入使用后的重要指導文件,也是項目進行二次開發的重要依據,在終驗階段必要檢查項目文檔的完備性、正確性、一致性和易理解性。
電子政務信息系統驗收測試的方法
傳統信息系統的驗收測試是在軟件產品完成了功能測試和系統測試之后、產品發布之前所進行的軟件測試活動,則更多采用黑盒測試方法對系統進行測試。而電子政務信息系統的驗收測試在項目實施階段就已經展開,單純黑盒測試已無法滿足驗收測試要求,同時需要白盒測試技術,并結合各領域的自動化測試工具開展測試工作。例如在集成階段,需要對各接口進行測試,可以利用postman等測試工具,結合白盒測試方法測試接口的功能性,以及接口的對接能力;在初驗階段,可以利用Load Runner等性能自動化工具測試系統的性能效率,包括響應時間、系統容量、資源利用率等;利用Fortify源代碼掃描工具結合白盒測試技術檢測軟件代碼的安全漏洞;利用綠盟安全漏洞掃描儀檢測系統的信息安全性等。
總之伴隨著電子政務信息系統發展的多元化,以及采用的信息技術的復雜化,驗收測試的方法也越來越多樣化,同時也要求測試人員具備更全面的技術測試能力,以達到檢測目的。
參考文獻:
[1]IEEE Standard Glossayr,IEEE Std 729-1983.
[2]G. J. Myers. Sotfware Reliability:Principles&Parctices,New York:John Wiley&Sons,Inc.1976.
[3]G. J. Myers. The Art of Sotfware Testing,New York:John Wiley&Sons,Inc.1979.
[4]朱少民,軟件測試方法和技術[M].北京:清華大學出版社,2005.
[5]DB42,湖北省電子政務應用系統技術驗收測試規范[S].湖北省質量技術監督局,2008.
[6]GW0014-2017,國家電子政務工程項目應用軟件第三方測試規范[S].國家電子政務外網管理中心,2017.
作者簡介:李晶(1982—),湖北武漢人,工程師,現就職于湖北省電子信息產品質量監督檢驗院,主要研究方向為信息化系統第三方驗收測試。