像谷歌這樣的巨大軟件公司,儘管軟件中存在低優先級的錯誤,但仍能取得成功,但小公司和創業公司並沒有那麼奢侈。
客戶希望產品能夠在銷售頁面或文檔中執行他們聲明的內容。 有了這麼多的選擇,如果產品浪費他們的時間和金錢,他們不會考慮跳船。 因此,軟件在發布之前要經過嚴格的測試,以便:
突出原始概念和最終輸出之間的差異
驗證軟件是否符合設計者的計劃
驗證最終產品 - 產品必須符合客戶要求
評估功能和質量
測試遵循嚴格的藍圖。 這優化了寶貴資源的使用 - 技能,時間和金錢,同時為利益相關者提供了推動產品發展的重要信息。 目標是通過強大的質量保證計劃來促進良好的最終用戶體驗。 由於風險如此之高,質量保證經理是技術人員中的佼佼者。測試通常遵循以下步驟:
需求分析,管理人員勾畫出製定合適測試策略的計劃。
測試開始並且結果經歷分析。
任何缺陷都會得到糾正,軟件將通過回歸測試 - 檢查程序在修改後仍然有效的系統。
測試結束報告然後詳述整個過程和結果。
軟件測試方法
以下是用於判斷產品行為和性能的不同方法。
黑盒和白盒測試是兩種基本方法。
- 黑盒測試 - 也稱為基於功能或基於規格的測試,此方法專注於輸出。 測試人員不關心內部機制。 他們只檢查軟件做它應該做什麼。 編碼知識不是必需的,測試人員在用戶界面層面工作。
- 白盒測試 - 此方法使用編碼知識作為測試過程的一部分。 當產品發生故障時,測試人員會根據需要深入了解代碼,以找出原因。 軟件開發人員自己決定產品應該如何工作。 基於結構和玻璃盒測試是這種方法的其他名稱。
- 靜態測試 - 測試人員檢查軟件的代碼和文檔,但不執行該程序。 在驗證過程中,產品開發的早期會進行靜態測試。
- 動態測試 - 軟件以各種輸入執行,測試人員使用此方法比較輸出與預期行為。
- GUI測試 - 測試GUI特性 - 文本格式,文本框,按鈕,列表,佈局,顏色,字體,字體大小等等。 GUI測試非常耗時,第三方公司通常會承擔這項任務而不是開發人員。
測試級別
這些對於識別軟件開發生命週期每個階段中的薄弱環節和重疊區域都是必要的。
- 單元測試 - 開發人員測試代碼中最基本的部分,如類,接口和函數/過程。 他們知道他們的代碼應該如何響應,並且可以根據輸出進行調整。
- 組件 測試 - 其他名稱是模塊或程序測試。 它與單元測試類似,但包含更高級別的集成。 對軟件模塊進行缺陷測試以驗證其個別功能。
- 集成測試 - 這標識了集成模塊時的錯誤。 不同的集成測試是自下而上,自上而下和功能增量。
- 系統 測試 - 使用此方法在不同環境中對項目組件進行整體測試。 它屬於黑盒子方法,是過程中的最後一項測試。 它確定係統是否按照應該滿足業務和用戶需求的功能運行。
- Alpha測試 - 內部人員在模擬或實際環境中在開發人員現場測試軟件。 之後,開發人員將糾正錯誤和其他問題。
- Beta測試 - 也稱為現場測試,客戶在真實條件下在自己的網站上測試產品。 客戶可能會向一組最終用戶提供通過預發布或測試版測試軟件的機會。 隨後將可能的改進反饋發送給開發人員。
- 驗收測試 - 同樣在黑盒測試的範圍內,客戶端測試軟件以確定開發者是否已經創建了符合所需規格的程序。
測試類型
這些軟件測試專注於特定的目標。
- 安裝測試 - 軟件測試工程師和配置經理進行此測試,以確保最終用戶可以安裝和運行該程序。 它涵蓋了安裝文件,安裝位置和管理權限等區域。
- 開發測試 - 實現一系列同步策略來檢測和預防缺陷。 它包括靜態代碼分析,同行代碼評審,可追溯性和指標分析。 其目的是降低風險並節省成本。
- 可用性測試 - 用戶體驗受此測試的關注。 它測量GUI的設計和易用性。 該測試檢查功能的準確性和效率以及測試對象的情緒反應。
- 理智測試 - 這表明軟件是否值得繼續進一步測試的時間和成本。 太多的缺陷和更激進的測試不會遵循。
- 煙霧測試 - 煙霧測試揭示嚴重到足以防止釋放的基本故障。 當在新版本上執行時,它被稱為構建驗證測試。
- 回歸測試 - 當系統進行修改時,回歸測試會監控意外行為。 它指出了對模塊或組件的不利影響。
- 破壞性測試 - 測試人員輸入異常輸入並辨別軟件管理意外輸入的能力。 這顯示了開發人員程序在錯誤管理方面的強大程度。
- 恢復測試 - 當硬件或其他功能失敗時,此測試顯示軟件可以恢復並繼續運行。
- 自動化測試 - 執行難以手動實現的功能。 它使用特定的軟件來運行測試並提供實際與預期結果的數據。
- 兼容性測試 - 軟件必須在不同的計算環境中運行,因此可以檢查與不同系統的兼容性。 例如,該軟件是否適用於各種操作系統和Web瀏覽器?
- 性能測試 - 這是一個深入測試,可以檢查不同場景下的軟件性能。 收集關於響應性,穩定性,資源分配和速度的信息。 此外,在這個過程中,諸如體積,容量和尖峰測試等子測試也會發揮作用。
- 安全測試 - 衡量軟件保護用戶安全的能力。 這意味著授權功能,認證,機密性,完整性,可用性和不可否認性。
- 輔助功能測試 - 這與可用性測試不同。 這決定了不同能力的用戶(包括學習和身體殘疾)在多大程度上可以使用該軟件。
- 國際化和本地化測試 - 結果顯示軟件如何適應不同的語言和區域需求。 這包括為特定位置添加組件並翻譯文本。
軟件測試是將產品推向市場的重要部分。 沒有測試人員,大量的可用軟件將不存在。 通過BCS,英國特許信息技術學院,ISTQB®(國際軟件測試認證委員會)和ASQ(前身為美國質量協會)等組織成為認證軟件測試人員。