軟件測試簡述與展望[3] 軟件測試
3.測試的局限性
在軟件測試理論的發展過程中,有一個分支是程序正確性證明,即試圖通過符號演算或理論證明的方法來證明程序的正確性,這種方法被認為在實踐中是行不通的。
無論是從理論上,還是從經驗上,我們都無法發現軟件系統中的所有錯誤,一個軟件系統必定存在著缺陷(Bug),軟件測試必然有一定的局限性。
軟件的錯誤是往往由于軟件需求的不確定性、軟件設計的缺陷或編程失誤所造成的,測試用例的設計與選擇決定了是否能找出軟件存在的錯誤。因此,為了保證軟件的可靠性,軟件測試既強調按實際使用軟件的概率分布,隨機或有目的地選擇輸人數據;
又強調數據信息的合法使用,防止數據信息的非法泄露、修改與通過安全漏洞合法使用數據。這使得這些軟件測試的用例與一般測試不同。其測試既要按照使用的概率分布選擇測試用例,又要根據安全需求構造測試實例。這樣才能得到比較準確的可靠性估計,便于查出軟件的錯誤。
4.測試方法
4.1黑盒測試和白盒測試
最早的測試方法分成黑盒測試和白盒測試。黑盒測試是指不考慮系統的內部結構,只按照規格說明測試系統已定義的功能,所以又稱功能測試方法。黑盒測試將系統看成一個黑盒子,只關心系統的輸入輸出,所以測試方法的重點在于如何從輸入域中選擇待測的測試用例,
它的檢驗程序能否與功能要求完全一致。在設計測試用例時,只考慮軟件的功能需求,不涉及程序的內部結構和實現細節。由黑盒測試所產生的測試用例應能檢驗程序的全部功能。黑盒測試可發現不正確的或漏掉的功能、接口錯誤、數據結構或外部數據庫訪問中的錯誤、性能錯誤、初始化或終止錯誤。
白盒測試是考慮系統的內部結構,設計或選擇測試用例,重點測試系統的每一個動作是否符合定義,所以又稱結構測試方法。由于白盒測試著重于系統的結構,所以對測試用例的選擇主要看能否達到對系統內部結構的覆蓋,測試用例用于檢查模塊中的獨立路徑;
檢查每個邏輯判定的真假兩種情況;檢查每個循環變量的初值、中間值和終值;檢查程序的內部數據結構是否有效。通過白盒測試可發現程序中的邏輯錯誤和不正確的假設或條件、沒預料到的意外路徑、語法檢查未發現的印刷或書寫錯誤。
文章來源于領測軟件測試網 http://www.kjueaiud.com/