? ? 1.軟件缺陷的根源
? ? 軟件失效的主要原因是因為開發(fā)人員沒有理解肯污、預見或測試所有可以運行軟件的環(huán)境。將討論兩種缺陷:程序員引入的缺陷和運行環(huán)境導致的缺陷敛助。
? ? 2.缺陷的預防和檢測
? ? 缺陷預防技術包括編寫更好的設計規(guī)范权她、實施代碼審核铐伴、運行代碼靜態(tài)分析工具、運行單元測試杠览。這些都是從開發(fā)人員角度來說的弯菊。但,仍然還存在著以下問題:
? ? a)開發(fā)人員只能是個糟糕的測試者
? ? b)處于靜止狀態(tài)的軟件
? ? c)缺乏數(shù)據(jù)
? ? 測試是一個動態(tài)的過程踱阿,它包括在不同的環(huán)境中運行軟件管钳,使用合理的測試數(shù)據(jù),并在較短的測試周期內盡可能多地嘗試不同的輸入值软舌。
? ? 缺陷檢測主要有兩種形式:自動化測試和手工測試才漆。自動化測試有個“預言家難題”,過度依賴自動化測試也會為程序的最終成功帶來隱患佛点。
? ? 3.手工測試
? ? 手工測試很慢醇滥,沒有規(guī)律,不可反復使用超营,發(fā)現(xiàn)問題后也不能重視鸳玩,又不能移植,而且沒有很多可借鑒的經(jīng)驗教訓來幫助測試人員做的更好⊙荼眨現(xiàn)在是時候應該讓我們在手工測試領域里使用目前最好的技術了不跟,即“探索性測試”!
? ? 4.手工測試中使用腳本
? ? 腳本用于指定該使用什么輸入米碰、如何判斷正確的軟件輸出結果窝革。但使用預先編制的腳本會比較死板购城,測試人員會使用一些變通手段,即腳本中含有一些粗線條的描述虐译。
? ? 5.探索式測試
? ? 完全拋開或定義比較籠統(tǒng)的腳本工猜,就叫“探索式測試”。對一個有經(jīng)驗并熟練掌握探索式測試法的人來說菱蔬,這種方式非常強大篷帅。探索式測試最適用于新潮的使用“敏捷開發(fā)過程”的應用程序。
? ? 探索式測試的缺點在于測試人員有可能在測試中沒有重點拴泌,漫無目的地嘗試各種情況來試圖發(fā)現(xiàn)軟件缺陷魏身,浪費時間。因此蚪腐,探索式測試需要指導方法箭昵。目前三兩種:
? ? a)局部探索式測試法:它幫助測試人員在測試過程中即時做出決定。
? ? b)全局探索式測試法:它幫助測試人員設計整體測試計劃和測試策略回季。
? ? 在軟件的所有細節(jié)問題都解決之后家制,會發(fā)現(xiàn)我們還缺乏一個綜合的測試集,該測試集用來確認軟件是否已經(jīng)滿足正式發(fā)布所需達到的質量標準泡一。綜合的測試集所帶來的價值颤殴,比單獨運行它們大得多。
? ? c)同時使用探索式測試和腳本測試
? ? 在傳統(tǒng)的基于用戶場景測試的方案中加入探索式測試鼻忠,不僅可以拓寬腳本所包含的范圍涵但,還可以在腳本中添加更多的變化可能、更多的用戶使用方式和更多的檢測方式帖蔓。
? ? 6.小結
? ? 探索會測試就像是在應用程序和軟件測試人員之間的一種競賽矮瘟,測試人員必須找到隱藏很深的軟件缺陷,挑出軟件可用性方面的問題塑娇,發(fā)現(xiàn)安全隱患等澈侠。