官术网_书友最值得收藏!

1.1 軟件缺陷與軟件測試

在軟件測試領域,至今為止,還沒有一種有效的缺陷檢測機制,可以完全發現所有的缺陷。因為軟件缺陷與硬件缺陷存在很多不同之處。

1.1.1 軟件缺陷與硬件缺陷的異同

軟件缺陷與硬件缺陷一樣,會對產品的使用方造成困擾。但是軟件缺陷在一般情況下,不會對用戶造成直接的人身傷害,所以很多人沒有意識到軟件缺陷的危害性和嚴重性。然而,在一些依賴軟件進行業務處理的領域,軟件缺陷可能造成重大的經濟損失,甚至危及人身安全,例如,2007 年 4 月,某個軟件缺陷導致某地鐵系統的列車火災,軟件未能檢測和防止剩余動力在設備中的使用,導致列車過熱而起火。

美國標準和技術研究機構(National Institute of Standards and Technology)在2002年公布的一項關于軟件缺陷引起的經濟損失的報告中的數據表明:由于軟件缺陷造成的美國經濟損失高達595億美元。

因此,軟件缺陷與硬件缺陷一樣,可能會對用戶造成重大的損失,人們需要像對待硬件缺陷一樣重視軟件缺陷。很多硬件缺陷的出錯模式是可以預見的,而軟件缺陷的可預見性則沒有那么強。軟件缺陷的一個重要特點是它的隱蔽性,由于軟件的復雜度高、狀態空間廣闊,因此,要覆蓋軟件所有可能的行為幾乎是不可能的。

1.1.2 如何通過軟件測試發現軟件缺陷

為了解決軟件缺陷帶來的困擾,人們仍然在不斷地尋找有效發現軟件錯誤的方法,手工測試仍然是主要的查找錯誤的方式,自動化測試能部分地解決覆蓋面的問題和測試效率的問題,但是不能從根本上解決問題。

不能單靠軟件測試來保證軟件不出錯,軟件測試僅僅是發現軟件缺陷的一種手段而已。在軟件測試人員的角色出現之前,是由開發人員來負責缺陷控制的,而開發人員往往停留在“調試”階段的測試水平,在代碼調試通過后,往往不會花太多專門的時間來發現缺陷。而且,開發人員一般不習慣于對自己的代碼進行批判性的檢查,很多時候,對自己編寫的代碼過于自信,因此,很多缺陷就留待用戶來發現了。

由于軟件測試是比較直接的發現軟件缺陷的手段,因此也就成為了軟件缺陷控制的主要手段。測試人員通過研究軟件產品的需求,以及用戶的實際業務場景,設計出各種測試用例,通過執行測試用例,判斷被測試的應用程序是否滿足用戶需求。

執行測試用例的過程可以是一個手動的過程,也可以是一個自動化的過程。如果把這些測試用例轉換成一個可被自動化測試工具執行的腳本,則成為一個自動化測試用例。

測試用例大體分為兩種類型:一種是用于驗證軟件的功能是正確的;另一種是用于證明軟件是錯誤的。兩種類型的測試用例都可以轉化成自動化測試腳本,使用自動化的方式執行。

主站蜘蛛池模板: 山西省| 德兴市| 航空| 富川| 福安市| 丁青县| 江源县| 东兰县| 青神县| 松潘县| 开远市| 徐水县| 桐城市| 登封市| 咸宁市| 苍山县| 天峨县| 天全县| 岚皋县| 界首市| 大田县| 华容县| 滁州市| 昔阳县| 万全县| 延庆县| 疏勒县| 姚安县| 竹山县| 陈巴尔虎旗| 右玉县| 千阳县| 光山县| 温州市| 桓台县| 尉犁县| 启东市| 内丘县| 蒙山县| 柳林县| 南昌县|