軟件測試是根據(jù)從用戶和系統(tǒng)規(guī)范收集的需求對軟件進(jìn)行評估。測試在軟件開發(fā)生命周期的階段級別或程序代碼的模塊級別進(jìn)行。軟件測試包括驗證和確認(rèn)。
軟件驗證
驗證是檢查軟件是否滿足用戶要求的過程。它在 SDLC 結(jié)束時執(zhí)行。如果軟件符合它的要求,他就會被驗證。
- 驗證確保正在開發(fā)的產(chǎn)品是按用戶的要求。
- 驗證回答了這個問題 - “我們是否正在開發(fā)能夠從該軟件中滿足用戶所有需求的產(chǎn)品?"。
- 驗證注重用戶的需求。
軟件確認(rèn)
確認(rèn)是確認(rèn)軟件是否滿足業(yè)務(wù)需求的過程,并按照正確的規(guī)范和方法進(jìn)行開發(fā)。
- 確認(rèn)確保正在開發(fā)的產(chǎn)品是符合設(shè)計規(guī)范。
- 確認(rèn)回答了這個問題 - “我們是否嚴(yán)格遵循所有設(shè)計規(guī)范來開發(fā)這個產(chǎn)品?"。
- 確認(rèn)集中在設(shè)計和系統(tǒng)規(guī)范上。
測試的目標(biāo)是:
- 錯誤:這些是開發(fā)人員所犯的實際編碼錯誤。此外,軟件的輸出與期望的輸出存在差異,被視為錯誤。
- 故障:當(dāng)錯誤存在時發(fā)生故障。故障,也稱為錯誤,是可能導(dǎo)致系統(tǒng)故障的報錯結(jié)果。
- 失敗:失敗是指系統(tǒng)無法執(zhí)行所需的任務(wù)。故障發(fā)生在系統(tǒng)存在故障時。。
手動與自動測試
測試可以手動完成,也可以使用自動化測試工具:
- 手動?- 此測試是在不借助自動化測試工具的情況下執(zhí)行的。軟件測試人員為代碼的不同部分和級別準(zhǔn)備測試用例,執(zhí)行測試并將結(jié)果報告給經(jīng)理。
手動測試既費時又費資源。測試人員需要確認(rèn)是否使用了正確的測試用例。測試的主要部分設(shè)計手動測試。
- 自動?- 該測試是借助自動化測試工具完成的測試過程。使用自動化測試工具可以克服手動測試的局限性。
測試需要檢查網(wǎng)頁是否可以在 Internet Explorer 中打開。這可以通過手動測試輕松完成。但是要檢查網(wǎng)絡(luò)服務(wù)器是否可以承受 100 萬用戶的負(fù)載,手動測試是完全不可能的。
有軟件和硬件工具可以幫助測試人員進(jìn)行負(fù)載測試、壓力測試、回歸測試。
測試方法
可以基于兩種方式進(jìn)行測試:
當(dāng)在不考慮實際實現(xiàn)的情況下測試功能時,它被稱為黑盒測試。另一方面被稱為白盒測試,其中不僅測試功能,還分析其實現(xiàn)方式。
詳盡的測試是完美測試的最佳方法。測試輸入和輸出值范圍內(nèi)的每個可能值。如果值的范圍很大,則不可能在現(xiàn)實世界場景中測試每個值。
黑盒測試
執(zhí)行它是為了測試程序的功能,它也被稱為“行為”測試。在這種情況下,測試儀具有一組輸入值和相應(yīng)的期望結(jié)果。在提供輸入時,如果輸出與期望的結(jié)果匹配,則程序被測試為“OK”,否則就會出現(xiàn)問題。

在這種測試方法中,測試人員不知道代碼的設(shè)計和結(jié)構(gòu),測試工程師和最終用戶對軟件進(jìn)行這種測試。
黑盒測試技術(shù):
- 等價類?- 輸入被分成類似的類。如果一個類中的一個元件通過了測試,則假定所有類都通過了。
- 邊界值?- 輸入被分為較高端值和較低端值。如果這些值通過測試,則假定它們之間的所有值也可以通過。
- 因果圖?- 在之前的兩種方法中,一次只測試一個輸入值。原因(輸入) - 效果(輸出)是一種測試技術(shù),其中以系統(tǒng)的方式測試輸入值的組合。
- 成對測試?- 軟件的行為取決于多個參數(shù)。在成對測試中,對多個參數(shù)的不同值進(jìn)行成對測試。
- 基于狀態(tài)的測試?- 系統(tǒng)在提供輸入時改變狀態(tài)。這些系統(tǒng)根據(jù)它們的狀態(tài)和輸入進(jìn)行測試。
白盒測試
它用于測試程序及其實現(xiàn),以提高代碼效率或結(jié)構(gòu)。它也被稱為“結(jié)構(gòu)”測試。

在這種測試方法中,測試人員知道代碼的設(shè)計和結(jié)構(gòu)。代碼的程序員對代碼進(jìn)行此測試。
以下是一些白盒測試技術(shù):
- 控制流測試?- 控制流測試的目的建立涵蓋所有語句和分支條件的測試用例。測試分支條件的真假,以便覆蓋所有語句。
- 數(shù)據(jù)流測試?- 這種測試技術(shù)強調(diào)覆蓋程序中包含的所有程序變量。它測試變量的聲明和定義位置以及它們被使用或更改的位置。
測試級別
測試本身可以在 SDLC 的各個級別進(jìn)行定義。測試過程與軟件開發(fā)并行運行。在進(jìn)入下一階段之前,需要對一個階段進(jìn)行測試、驗證和確認(rèn)。
單獨進(jìn)行測試只是為了確保軟件中沒有隱藏的錯誤或問題。軟件在不同級別上進(jìn)行測試:
單元測試
在編碼時,程序員對該程序單元執(zhí)行一些測試以了解它是否沒有錯誤。測試是在白盒測試方法下進(jìn)行的。單元測試幫助開發(fā)人員確定程序的各個單元是否按要求工作并且沒有錯誤。
集成測試
即使軟件單元單獨運行良好,也需要確定這些單元如果集成在一起是否也能正常工作。例如,參數(shù)傳遞和數(shù)據(jù)更新等。
系統(tǒng)測試
軟件被編譯為產(chǎn)品,然后作為一個整體進(jìn)行測試。這可以使用以下一項或多項測試來完成:
- 功能測試?- 根據(jù)要求測試軟件的所有功能。
- 性能測試?- 該測試證明了該軟件的效率。它測試軟件完成所需任務(wù)的有效性和平均時間。性能測試通過負(fù)載測試和壓力測試來完成,其中軟件在各種環(huán)境條件下處于高用戶和數(shù)據(jù)負(fù)載下。
- 安全性和便攜性?- 這些測試是在軟件要在各種平臺上運行并由多人訪問時完成的。
驗收測試
當(dāng)軟件準(zhǔn)備交給客戶就必須經(jīng)過測試,它是用戶交互和響應(yīng)測試的最后階段。這是很重要的,因為即使軟件符合所有用戶要求,并且如果用戶不喜歡它的外觀和工作方式,它也可能被拒絕。
- Alpha測試?- 開發(fā)團隊自己通過使用系統(tǒng)來執(zhí)行 alpha 測試,就好像它是在工作環(huán)境中使用一樣。他們試圖找出用戶將如何對軟件中的某些操作做出反應(yīng)以及系統(tǒng)應(yīng)如何響應(yīng)輸入。
- Beta測試?- 軟件經(jīng)過內(nèi)部測試后,交給用戶在生產(chǎn)環(huán)境下使用,僅供測試使用。這還不是交付的產(chǎn)品。開發(fā)者期望用戶在這個階段會帶來細(xì)微的問題,這些問題被跳過了。
回歸測試
每當(dāng)使用新代碼、特性或功能更新軟件產(chǎn)品時,都會對其進(jìn)行徹底測試,以檢測添加的代碼是否有任何負(fù)面影響。這稱為回歸測試。
測試文檔
測試文檔在不同階段準(zhǔn)備:
測試前
測試從測試用例生成開始,需要以下文件作為參考:
- SRS文檔?- 功能需求文檔。
- 測試策略文檔?- 這描述了在發(fā)布產(chǎn)品之前應(yīng)該進(jìn)行多遠(yuǎn)的測試。
- 測試戰(zhàn)略文檔?- 這提到了測試團隊、責(zé)任矩陣以及測試經(jīng)理和測試工程師的權(quán)利、責(zé)任的細(xì)節(jié)方面。
- 可追溯矩陣文檔?- 這是 SDLC 文檔,與需求收集過程相關(guān)。隨著新需求的出現(xiàn),它們被添加到這個矩陣中。這些矩陣幫助測試人員了解需求的來源。它們可以向前和向后追溯。
在接受測試時
在開始和進(jìn)行測試時可能需要以下文檔:
- 測試案例文檔?- 本文檔包含需要進(jìn)行的測試列表。它包括單元測試計劃、集成測試計劃、系統(tǒng)測試計劃和驗收測試計劃。
- 測試說明?- 本文檔詳細(xì)描述了所有測試用例和執(zhí)行它們的過程。
- 測試案例報告?- 本文檔包含作為測試結(jié)果的測試用例報告。
- 測試日志?- 本文檔包含每個測試用例報告的測試日志。
測試后
測試后可能會生成以下文件:
- 測試總結(jié)?- 此測試總結(jié)是對所有測試報告和日志的集體分析。它總結(jié)并推斷了軟件是否準(zhǔn)備好啟動。如果準(zhǔn)備好啟動,該軟件將在版本控制系統(tǒng)下發(fā)布。
測試與質(zhì)量控制,質(zhì)量保證和審計
我們需要了解軟件測試不同于軟件質(zhì)量保證、軟件質(zhì)量控制和軟件審計。
- 軟件質(zhì)量保證?- 這些是軟件開發(fā)過程監(jiān)控手段,通過它可以確保所有措施都按照組織標(biāo)準(zhǔn)采取。進(jìn)行這種監(jiān)視是為了確保遵循正確的軟件開發(fā)方法。
- 軟件質(zhì)量控制?- 這是一個維護軟件產(chǎn)品質(zhì)量的系統(tǒng)。它可能包括軟件產(chǎn)品的功能性和非功能性方面,從而增強組織的商譽。該系統(tǒng)確??蛻羰盏椒掀湟蟮膬?yōu)質(zhì)產(chǎn)品,并且產(chǎn)品被認(rèn)證為“適合使用”。
- 軟件審計?- 這是對組織用于開發(fā)軟件的程序的審計。獨立于開發(fā)團隊的審計員團隊檢查 SDLC 的軟件過程、程序、要求和其他方面。軟件審計的目的是檢查軟件及其開發(fā)過程是否符合標(biāo)準(zhǔn)、規(guī)則和規(guī)定。
更多建議: