軟件工程 測試

2021-10-28 12:06 更新

軟件測試是根據(jù)從用戶和系統(tǒng)規(guī)范收集的需求對軟件進(jìn)行評(píng)估。測試在軟件開發(fā)生命周期的階段級(jí)別或程序代碼的模塊級(jí)別進(jìn)行。軟件測試包括驗(yàn)證和確認(rèn)。

軟件驗(yàn)證

驗(yàn)證是檢查軟件是否滿足用戶要求的過程。它在 SDLC 結(jié)束時(shí)執(zhí)行。如果軟件符合它的要求,他就會(huì)被驗(yàn)證。

  • 驗(yàn)證確保正在開發(fā)的產(chǎn)品是按用戶的要求。
  • 驗(yàn)證回答了這個(gè)問題 - “我們是否正在開發(fā)能夠從該軟件中滿足用戶所有需求的產(chǎn)品?"。
  • 驗(yàn)證注重用戶的需求。

軟件確認(rèn)

確認(rèn)是確認(rèn)軟件是否滿足業(yè)務(wù)需求的過程,并按照正確的規(guī)范和方法進(jìn)行開發(fā)。

  • 確認(rèn)確保正在開發(fā)的產(chǎn)品是符合設(shè)計(jì)規(guī)范。
  • 確認(rèn)回答了這個(gè)問題 - “我們是否嚴(yán)格遵循所有設(shè)計(jì)規(guī)范來開發(fā)這個(gè)產(chǎn)品?"。
  • 確認(rèn)集中在設(shè)計(jì)和系統(tǒng)規(guī)范上。

測試的目標(biāo)是:

  • 錯(cuò)誤:這些是開發(fā)人員所犯的實(shí)際編碼錯(cuò)誤。此外,軟件的輸出與期望的輸出存在差異,被視為錯(cuò)誤。
  • 故障:當(dāng)錯(cuò)誤存在時(shí)發(fā)生故障。故障,也稱為錯(cuò)誤,是可能導(dǎo)致系統(tǒng)故障的報(bào)錯(cuò)結(jié)果。
  • 失敗:失敗是指系統(tǒng)無法執(zhí)行所需的任務(wù)。故障發(fā)生在系統(tǒng)存在故障時(shí)。。

手動(dòng)與自動(dòng)測試

測試可以手動(dòng)完成,也可以使用自動(dòng)化測試工具:

  • 手動(dòng)?- 此測試是在不借助自動(dòng)化測試工具的情況下執(zhí)行的。軟件測試人員為代碼的不同部分和級(jí)別準(zhǔn)備測試用例,執(zhí)行測試并將結(jié)果報(bào)告給經(jīng)理。
    手動(dòng)測試既費(fèi)時(shí)又費(fèi)資源。測試人員需要確認(rèn)是否使用了正確的測試用例。測試的主要部分設(shè)計(jì)手動(dòng)測試。
  • 自動(dòng)?- 該測試是借助自動(dòng)化測試工具完成的測試過程。使用自動(dòng)化測試工具可以克服手動(dòng)測試的局限性。

測試需要檢查網(wǎng)頁是否可以在 Internet Explorer 中打開。這可以通過手動(dòng)測試輕松完成。但是要檢查網(wǎng)絡(luò)服務(wù)器是否可以承受 100 萬用戶的負(fù)載,手動(dòng)測試是完全不可能的。

有軟件和硬件工具可以幫助測試人員進(jìn)行負(fù)載測試、壓力測試、回歸測試。

測試方法

可以基于兩種方式進(jìn)行測試:

  • 功能測試
  • 實(shí)施測試

當(dāng)在不考慮實(shí)際實(shí)現(xiàn)的情況下測試功能時(shí),它被稱為黑盒測試。另一方面被稱為白盒測試,其中不僅測試功能,還分析其實(shí)現(xiàn)方式。

詳盡的測試是完美測試的最佳方法。測試輸入和輸出值范圍內(nèi)的每個(gè)可能值。如果值的范圍很大,則不可能在現(xiàn)實(shí)世界場景中測試每個(gè)值。

黑盒測試

執(zhí)行它是為了測試程序的功能,它也被稱為“行為”測試。在這種情況下,測試儀具有一組輸入值和相應(yīng)的期望結(jié)果。在提供輸入時(shí),如果輸出與期望的結(jié)果匹配,則程序被測試為“OK”,否則就會(huì)出現(xiàn)問題。

在這種測試方法中,測試人員不知道代碼的設(shè)計(jì)和結(jié)構(gòu),測試工程師和最終用戶對軟件進(jìn)行這種測試。

黑盒測試技術(shù):

  • 等價(jià)類?- 輸入被分成類似的類。如果一個(gè)類中的一個(gè)元件通過了測試,則假定所有類都通過了。
  • 邊界值?- 輸入被分為較高端值和較低端值。如果這些值通過測試,則假定它們之間的所有值也可以通過。
  • 因果圖?- 在之前的兩種方法中,一次只測試一個(gè)輸入值。原因(輸入) - 效果(輸出)是一種測試技術(shù),其中以系統(tǒng)的方式測試輸入值的組合。
  • 成對測試?- 軟件的行為取決于多個(gè)參數(shù)。在成對測試中,對多個(gè)參數(shù)的不同值進(jìn)行成對測試。
  • 基于狀態(tài)的測試?- 系統(tǒng)在提供輸入時(shí)改變狀態(tài)。這些系統(tǒng)根據(jù)它們的狀態(tài)和輸入進(jìn)行測試。

白盒測試

它用于測試程序及其實(shí)現(xiàn),以提高代碼效率或結(jié)構(gòu)。它也被稱為“結(jié)構(gòu)”測試。

在這種測試方法中,測試人員知道代碼的設(shè)計(jì)和結(jié)構(gòu)。代碼的程序員對代碼進(jìn)行此測試。

以下是一些白盒測試技術(shù):

  • 控制流測試?- 控制流測試的目的建立涵蓋所有語句和分支條件的測試用例。測試分支條件的真假,以便覆蓋所有語句。
  • 數(shù)據(jù)流測試?- 這種測試技術(shù)強(qiáng)調(diào)覆蓋程序中包含的所有程序變量。它測試變量的聲明和定義位置以及它們被使用或更改的位置。

測試級(jí)別

測試本身可以在 SDLC 的各個(gè)級(jí)別進(jìn)行定義。測試過程與軟件開發(fā)并行運(yùn)行。在進(jìn)入下一階段之前,需要對一個(gè)階段進(jìn)行測試、驗(yàn)證和確認(rèn)。

單獨(dú)進(jìn)行測試只是為了確保軟件中沒有隱藏的錯(cuò)誤或問題。軟件在不同級(jí)別上進(jìn)行測試:

單元測試

在編碼時(shí),程序員對該程序單元執(zhí)行一些測試以了解它是否沒有錯(cuò)誤。測試是在白盒測試方法下進(jìn)行的。單元測試幫助開發(fā)人員確定程序的各個(gè)單元是否按要求工作并且沒有錯(cuò)誤。

集成測試

即使軟件單元單獨(dú)運(yùn)行良好,也需要確定這些單元如果集成在一起是否也能正常工作。例如,參數(shù)傳遞和數(shù)據(jù)更新等。

系統(tǒng)測試

軟件被編譯為產(chǎn)品,然后作為一個(gè)整體進(jìn)行測試。這可以使用以下一項(xiàng)或多項(xiàng)測試來完成:

  • 功能測試?- 根據(jù)要求測試軟件的所有功能。
  • 性能測試?- 該測試證明了該軟件的效率。它測試軟件完成所需任務(wù)的有效性和平均時(shí)間。性能測試通過負(fù)載測試和壓力測試來完成,其中軟件在各種環(huán)境條件下處于高用戶和數(shù)據(jù)負(fù)載下。
  • 安全性和便攜性?- 這些測試是在軟件要在各種平臺(tái)上運(yùn)行并由多人訪問時(shí)完成的。

驗(yàn)收測試

當(dāng)軟件準(zhǔn)備交給客戶就必須經(jīng)過測試,它是用戶交互和響應(yīng)測試的最后階段。這是很重要的,因?yàn)榧词管浖纤杏脩粢?,并且如果用戶不喜歡它的外觀和工作方式,它也可能被拒絕。

  • Alpha測試?- 開發(fā)團(tuán)隊(duì)自己通過使用系統(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ā)者期望用戶在這個(gè)階段會(huì)帶來細(xì)微的問題,這些問題被跳過了。

回歸測試

每當(dāng)使用新代碼、特性或功能更新軟件產(chǎn)品時(shí),都會(huì)對其進(jìn)行徹底測試,以檢測添加的代碼是否有任何負(fù)面影響。這稱為回歸測試。

測試文檔

測試文檔在不同階段準(zhǔn)備:

測試前

測試從測試用例生成開始,需要以下文件作為參考:

  • SRS文檔?- 功能需求文檔。
  • 測試策略文檔?- 這描述了在發(fā)布產(chǎn)品之前應(yīng)該進(jìn)行多遠(yuǎn)的測試。
  • 測試戰(zhàn)略文檔?- 這提到了測試團(tuán)隊(duì)、責(zé)任矩陣以及測試經(jīng)理和測試工程師的權(quán)利、責(zé)任的細(xì)節(jié)方面。
  • 可追溯矩陣文檔?- 這是 SDLC 文檔,與需求收集過程相關(guān)。隨著新需求的出現(xiàn),它們被添加到這個(gè)矩陣中。這些矩陣幫助測試人員了解需求的來源。它們可以向前和向后追溯。

在接受測試時(shí)

在開始和進(jìn)行測試時(shí)可能需要以下文檔:

  • 測試案例文檔?- 本文檔包含需要進(jìn)行的測試列表。它包括單元測試計(jì)劃、集成測試計(jì)劃、系統(tǒng)測試計(jì)劃和驗(yàn)收測試計(jì)劃。
  • 測試說明?- 本文檔詳細(xì)描述了所有測試用例和執(zhí)行它們的過程。
  • 測試案例報(bào)告?- 本文檔包含作為測試結(jié)果的測試用例報(bào)告。
  • 測試日志?- 本文檔包含每個(gè)測試用例報(bào)告的測試日志。

測試后

測試后可能會(huì)生成以下文件:

  • 測試總結(jié)?- 此測試總結(jié)是對所有測試報(bào)告和日志的集體分析。它總結(jié)并推斷了軟件是否準(zhǔn)備好啟動(dòng)。如果準(zhǔn)備好啟動(dòng),該軟件將在版本控制系統(tǒng)下發(fā)布。

測試與質(zhì)量控制,質(zhì)量保證和審計(jì)

我們需要了解軟件測試不同于軟件質(zhì)量保證、軟件質(zhì)量控制和軟件審計(jì)。

  • 軟件質(zhì)量保證?- 這些是軟件開發(fā)過程監(jiān)控手段,通過它可以確保所有措施都按照組織標(biāo)準(zhǔn)采取。進(jìn)行這種監(jiān)視是為了確保遵循正確的軟件開發(fā)方法。
  • 軟件質(zhì)量控制?- 這是一個(gè)維護(hù)軟件產(chǎn)品質(zhì)量的系統(tǒng)。它可能包括軟件產(chǎn)品的功能性和非功能性方面,從而增強(qiáng)組織的商譽(yù)。該系統(tǒng)確保客戶收到符合其要求的優(yōu)質(zhì)產(chǎn)品,并且產(chǎn)品被認(rèn)證為“適合使用”。
  • 軟件審計(jì)?- 這是對組織用于開發(fā)軟件的程序的審計(jì)。獨(dú)立于開發(fā)團(tuán)隊(duì)的審計(jì)員團(tuán)隊(duì)檢查 SDLC 的軟件過程、程序、要求和其他方面。軟件審計(jì)的目的是檢查軟件及其開發(fā)過程是否符合標(biāo)準(zhǔn)、規(guī)則和規(guī)定。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)