第三軟件測試不僅是在測試軟件產品的本身,而且還包括軟件開發的過程。如果一個軟件產品開發完成之后發現了很多問題,這說明此軟件開發過程很可能是有缺陷的。因此軟件測試的第三個目的是保證整個軟件開發過程是高質量的。
軟件質量是由幾個方面來衡量的:一、在正確的時間用正確的的方法把一個工作做正確(Doing the right things right at the right time.)。二、符合一些應用標準的要求,比如不同國家的用戶不同的操作習慣和要求,項目工程中的可維護性、可測試性等要求。三、質量本身就是軟件達到了最開始所設定的要求,而代碼的優美或精巧的技巧并不代表軟件的高質量(Quality is defined as conformance to requirements, not as “goodness” or “elegance”.)。四、質量也代表著它符合客戶的需要(Quality also means “meet customer needs”.)。作為軟件測試這個行業,最重要的一件事就是從客戶的需求出發,從客戶的角度去看產品,客戶會怎么去使用這個產品,使用過程中會遇到什么樣的問題。只有這些問題都解決了,軟件產品的質量才可以說是上去了。
測試原則
一,測試應該盡早進行,最好在需求階段就開始介入,因為最嚴重的錯誤不外乎是系統不能滿足用戶的需求。
二,程序員應該避免檢查自己的程序,軟件測試應該由第三方來負責。
三,設計測試用例時應考慮到合法的輸入和不合法的輸入以及各種邊界條件,特殊情況下要制造極端狀態和意外狀態,如網絡異常中斷、電源斷電等。
四,應該充分注意測試中的群集現象。
五,對錯誤結果要進行一個確認過程。一般由A測試出來的錯誤,一定要由B來確認。嚴重的錯誤可以召開評審會議進行討論和分析,對測試結果要進行嚴格地確認,是否真的存在這個問題以及嚴重程度等。
六,制定嚴格的測試計劃。一定要制定測試計劃,并且要有指導性。測試時間安排盡量寬松,不要希望在極短的時間內完成也有一個高水平的測試。
七,妥善保存測試計劃、測試用例、出錯統計和最終分析報告,為維護提供方便。
測試人員的任務
1、尋找Bug;
2、避免軟件開發過程中的缺陷;
3、衡量軟件的品質;
4、關注用戶的需求。
總的目標是:確保軟件的質量。
測試目標
1.發現一些可以通過測試避免的開發風險。
2.實施測試來降低所發現的風險。
3.確定測試何時可以結束。
4.在開發項目的過程中將測試看作是一個標準項目。
心理依據
人類行為具有高度目標性,確立一個正確的目標有著重要的心理學影響。軟件測試的心理學問題就是如何擺正測試的兩個目標的關系,使得測試活動更加富有成效。
1.程序測試的過程具有破壞性
每當測試一個程序時,人們總希望為程序增加一些價值。利用測試來增加程序的價值,是指通過測試,找出并修改盡可能多的程序缺陷,從而提高程序的可靠性或質量。
因此,不要只是為了證明程序能夠正確運行而去測試程序。相反,應該一開始就假設程序中隱藏著錯誤(這種假設幾乎對所有的程序都成立),然后測試程序,發現盡可能多的錯誤。
事實上,如果把測試目標定位于要證明程序中沒有缺陷,那么就會在潛意識中傾向于實現這個目標。也就是說,測試人員會傾向于挑選那些使程序失效的可能性較小的測試數據。另一方面,如果把測試目標定位于要證明程序中存在缺陷,那么就會選擇一些容易發現程序缺陷的測試數據。而后一種態度會比前者給程序增加更多的價值。
事實上,如果在測試某個程序段時發現了可以糾正的缺陷,或者測試最終確定再沒有其他缺陷,則應將這次合理設計并得到有效執行的測試稱作是“成功的”。而所謂“不成功的”測試,僅指未能適當地對程序進行檢查,未能找出程序中潛藏缺陷的測試。
“軟件測試就是證明軟件不存在錯誤的過程”。對幾乎所有的程序而言,甚至是非常小的程序,這個目標實際上是無法達到的。因為即使程序完全實現預期要求,仍可能包含有缺陷。也就是說,如果程序不按要求工作,它顯然有缺陷,但如果程序做了不要它做的事,它也有缺陷。
原文轉自:http://www.uml.org.cn/Test/test-bk.asp