軟體測試的科學_軟體測試

來源:互聯網
上載者:User

  軟體測試的科學

  軟體測試曾在商業軟體領域被認為是一種事後 的亡羊補牢。初級的產品經理甚至開發人員認為軟體測試是任何人都可以從事的工作。一些關於軟體測試的書籍甚至冠以“藝術”、“手藝”之類的名字。這導致軟 件行業的某些讀者誤認為品質測試不是軟體工程的一個學科。相反,通過缺陷鑒別,錯誤預防和合理風險分析的實測報告,有效測試不僅是一門工程的學科,而且 是提升軟體品質和可靠性的關鍵區段。

  測試的創造力

  儘管一些人認為測試軟體是一名藝術,這麼說也只是因為軟體測試和工藝品同樣具有創造性。然而,沒有工藝品需要軟體測試過程中需要的數學基礎和邏輯能力。

  對於一個大規模的電腦程式,測試需要比設計程式更多的創造力。這個觀點一直存在爭議。Glenford J. Myers 在《軟體測試的藝術》支援了這個理論。他指出“測試是極度富有想象力和高智力的有挑戰性的工作”。實際上,很多既設計又開發軟體的人承認他們通過創造力的軟體測試發現更多美學上的滿足感。但是,跟創造力差不多,軟體測試絕不是一門藝術或者一門手藝。

  測試的哲學觀點

  有史以來,人類早已通過懷疑工具和流程的設計參與了各種形式的測試工作。這種持續的重估值導致了品質的提高和效率的重大提升。但是,基於反覆實驗的測試是非常艱苦和耗時的。

  1962年,哲學家Sir Karl Popper提出知識增長來自於更科學的方法和流程。在他的書《猜錯與反駁》中,Popper假設減少偽事物促成了科學的進步。本質上,進步是將科學理論(猜錯)轉化為可測試的假設(反駁)實現。

  測試是一門科學

  電腦軟體與科學假設類似;兩者都固有易錯性。軟體調試過程的基本架構類似於科學假設的實驗和錯誤實踐。因此,電腦軟體是簡單的技術推測。

  測試工程師通過嚴格的測試(主要用於證明缺陷存在)反駁無缺陷軟體的假設。這種“造假”的過程和資料驅動的方法(例如歸納和推理)形成鮮明的對照。資料驅動通過事實的重複來證明正確性。

  這些方式都是通過確認來支援論斷。通過使用特殊資料驗證功能正常來證實不確定的無差錯。這種方式僅能證明軟體功能在某種情況下功能正常;它並不能證明軟體無差錯。

  建立軟體的信心

  建立軟體可靠的信心的最佳途徑是在設計或者功能方面發現缺陷,而不是僅僅證明一個軟體在產品需求的範疇內能夠工作。

  可是,任何假設可以經受住無數小時的徹底測試,卻仍然存在錯誤。駁斥不能保證無缺陷的軟體,因為在一定量的時間裡,有太多的假設需要測試。William Hetzel 在《軟體測試完全指南》中解釋了徹底測試的無效性。他寫道“一個有70個分支的程式包含的測試案例超過你用茶勺去衡量太平洋的水。”

  當一個測試人員成功地反駁一個軟體(發現一個bug),他報告一個缺陷。 開發人員然後解決這個問題並假設該軟體能正常運行,反駁的過程再次重複執行。儘管測試永遠不能證明軟體沒有缺陷,發現錯誤能突出問題,最終導致更高的軟體可靠性和品質,或者對風險分析和降低提供一個基本的考量。

  測試人員真正做什麼

  當我們讓測試工程師描述他們的工作的時候,大多數的反應是“破壞軟體(Breaking software)”。也許這就是為什麼一些人錯誤地認為測試人員的工作就是破壞的過程。其實,測試人員並不真正“破壞”軟體。測試人員通過觀察測試的結果,邏輯推測和實驗,反駁或者偽造假設來暴露早已存在的錯誤。

  發現錯誤只是軟體測試的一個方面。測試工程師通過這幾個方面使其在開發過程有重要的價值:驗證軟體,發現軟體的錯誤,對開發人員提供資訊避免bug,提供資訊給管理員來評估風險,並且最重要的,扮演一個客戶擁護者的角色。

  但是,在軟體中發現隱藏很深的錯誤或許是這份工作對智力的最高挑戰,需要有很強創造力的人才能勝任。或許這就是為什麼測試人員在經過富有創造力的攻擊測試,發現一個隱藏很深的錯誤之後流露出的興奮,他成功地“破壞了軟體”。

本文轉載自51Testing軟體測試網,查看更多:http://www.51testing.com/html/news.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.