一、前言
自動化測試是測試領域中一個爭議性比較大的區域,雖然它并不是一個新生的事物,但是至今仍沒有一套比較完善的理論可以提供行之有效的方法,使之更好的為產品質量服務。各個研究機構和公司的專家提供了許多自動化測試的理論和模型,但是均沒有形成通用理論,被大眾廣泛認可。
作者通過對安全產品進行自動化測試,從需求定義開始進行跟蹤,涉及產品的設計與實現,對產品的接口、實現功能等進行自動化集成測試,采用測試代碼和測試角本相結合的開發方式。作者總結了在工程中遇到的問題和實施中的成功之處,提出改進意見,對自動化測試人員具有較強的工程參考意義。
二、自動化測試簡介
所謂自動化測試,就是充分利用測試理論和相關的工具,對產品進行自動化的測試,減輕甚至擺脫某些人工測試的繁重勞動,能夠形成統一的測試報告并發布。
自動化測試涉及面很廣,可以涉及單元測試、集成測試、系統測試、壓力測試等諸多方面,針對不同的測試有不同的處理方法和工具。
經過實踐,業界對自動化測試形成了一定的統一觀點:
自動化測試不能代替手工測試;
自動化測試進行的是常規測試和回歸測試,測試集覆蓋率和BUG發現率均不高(這兩組數據沒有定論,根據測試系統的不同,數據會有所不同,但均低于50%,甚至低于30%)。
三、測試中的“人”
人永遠是軟件開發領域中的重要因素,不同的人掌握著不同的角色。充分調用不同角色的主動性,可以有效的提高自動化測試的效率。
1.領導支持
自動化測試是個系統工程,測試人員要制定合理完善的測試用例,需要得到需求、設計、開發等相關人員的配合。沒有領導的鼎力支持,各方力量配合將會減弱,測試的實現目標將會大打折扣,測試工期也將無法保證。
因此從需求調研之初,就需要得到領導的大力支持,充分估計自動化測試所能達到的目標,制定良好的開發計劃,如有可能,由項目經理直接進行領導,以期達到自動化測試的最優效果。
2.避免測試人員“挪作他用”
在許多公司,自動化測試均不是專職人員,經常是針對產品從研發、測試等部門抽調而來,因此他們原來都負擔過別的工作。在自動化測試工作過程中,盡量不要由于其原工作問題,將自動化測試人員調回,更不能因為自動化測試在前期開發過程中收效甚微,在開發工期有限的情況下,暫時裁減開發人員。由于自動化測試工作量很大,從理解需求、設計用例、用例實現、測試驅動的設計與開發,到用例調試、用例的最終應用要經歷比較長的工期,經常性的人員調動會導致工作情緒的波動和工作進度的滯后。
四、文檔工作
在項目管理中,文檔是軟件工程各階段的產品和依據,自動化測試當然也不能例外。
1.測試文檔要及時
自動化測試與其說是一種任務,更不如說是一個公司知識庫的積累過程,測試代碼絕不是自動化測試的最終目的。
因此在測試開發過程中,要隨時書寫自動化測試的配套文檔,并要根據需求和設計的變化,即時更新。文檔包含自動化測試的設計、實現文檔,測試集測試用例文檔,測試驅動文檔。測試文檔的積累,也是對公司知識庫的積累,減少將來進行同樣開發的成本。
2.開發文檔要完善
自動化測試的根本是文檔,它依靠需求和設計文檔來開發用例,而絕不是根據開發人員實際代碼來進行的。因此在自動化測試開始工作之前,要準備好各種文檔,包括需求、接口設計、數據庫定義等,測試人員只有依據這些文檔,才能制定合理的開發計劃,開發出適合本系統的測試用例。
文章來源于領測軟件測試網 http://www.k11sc111.com/