關(guān)于軟件測(cè)試的一切
在攻讀本科期間,我遇到了“軟件測(cè)試”一詞,我發(fā)現(xiàn)它很有趣,并開始尋找各種資源來(lái)獲取足夠的知識(shí)。在我的途中,我發(fā)現(xiàn)沒(méi)有特定的來(lái)源包含有關(guān)軟件測(cè)試基礎(chǔ)知識(shí)的所有概念。因此,本文總結(jié)了軟件測(cè)試的基本概念及其重要性。
什么是軟件測(cè)試?
根據(jù)技術(shù)定義,軟件測(cè)試是評(píng)估系統(tǒng)或其組件以確定其是否滿足指定要求的過(guò)程。它是“驗(yàn)證和確認(rèn)”的元素。軟件測(cè)試至關(guān)重要,因?yàn)樗砻髁塑浖馁|(zhì)量和可靠性,從而提高了客戶滿意度。
軟件可測(cè)試性
如果要發(fā)布無(wú)錯(cuò)誤的軟件,測(cè)試至關(guān)重要,但是并非所有軟件都易于測(cè)試。軟件支持測(cè)試的程度稱為軟件可測(cè)試性。軟件的可測(cè)試性取決于以下因素:
- 可分解性:可以單獨(dú)測(cè)試軟件的不同組件。
- 可觀察性:輸入的任何更改都會(huì)反映在軟件的輸出中。
- 可控制性:這是可以控制被測(cè)組件狀態(tài)的程度。
- 簡(jiǎn)單:軟件的每個(gè)組件都是不言自明的(記錄良好的)。
- 穩(wěn)定性:軟件更改很少,但是可以很好地控制。
良好測(cè)試的品質(zhì)
測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程。好的測(cè)試既不是太簡(jiǎn)單也不是太復(fù)雜,并且最有可能在測(cè)試組中發(fā)現(xiàn)一整類錯(cuò)誤。
在編寫測(cè)試時(shí),請(qǐng)嘗試回答以下問(wèn)題:一組特定的測(cè)試將如何充分覆蓋產(chǎn)品?
這將幫助您編寫該軟件的有效測(cè)試。
軟件測(cè)試生命周期(STLC)
它是在測(cè)試過(guò)程中進(jìn)行的一系列特定活動(dòng),以確保滿足軟件質(zhì)量目標(biāo)。STLC包括:
- 產(chǎn)品需求分析
- 測(cè)試計(jì)劃
- 測(cè)試用例開發(fā)
- 測(cè)試環(huán)境設(shè)置
- 執(zhí)行測(cè)試
- 評(píng)估結(jié)果
在整個(gè)測(cè)試過(guò)程中,最重要的任務(wù)是設(shè)計(jì)一個(gè)好的測(cè)試用例并采用合適的策略對(duì)軟件產(chǎn)品進(jìn)行測(cè)試。以下將進(jìn)一步解釋這兩個(gè)術(shù)語(yǔ):
> Software Testing Classification (Diagram by author)
測(cè)試用例設(shè)計(jì)方法
測(cè)試用例通常是單一步驟,或偶爾一系列步驟,以測(cè)試應(yīng)用程序的正確功能和特征。
成功的測(cè)試用例是一種可以檢測(cè)到尚未發(fā)現(xiàn)的錯(cuò)誤的案例。
測(cè)試用例設(shè)計(jì)是軟件測(cè)試的重要方面,因?yàn)樗鼮殚_發(fā)人員提供了系統(tǒng)的測(cè)試方法。任何工程產(chǎn)品都可以通過(guò)以下兩種方式之一進(jìn)行測(cè)試:
(1) 白盒測(cè)試(玻璃盒測(cè)試)
這是一種測(cè)試用例設(shè)計(jì)方法,其中包括對(duì)軟件內(nèi)部邏輯和結(jié)構(gòu)的詳細(xì)研究,即它可以發(fā)現(xiàn)軟件源代碼的邏輯和結(jié)構(gòu)中的錯(cuò)誤。它又分為兩類:
- 路徑測(cè)試:這是一種使測(cè)試用例設(shè)計(jì)人員能夠得出程序的邏輯復(fù)雜性度量的方法。在這種方法中,我們確保通過(guò)程序的每個(gè)路徑都已用最少的測(cè)試用例執(zhí)行了至少一次。
- 結(jié)構(gòu)測(cè)試:它與軟件的內(nèi)部設(shè)計(jì)和實(shí)現(xiàn)有關(guān)。它主要包括數(shù)據(jù)流測(cè)試(與數(shù)據(jù)流中的錯(cuò)誤有關(guān),即變量聲明和用法)和變異測(cè)試(通過(guò)確保程序使變異/編輯的源代碼失敗來(lái)確保程序的健壯性)。
(2) 黑匣子測(cè)試(行為測(cè)試)
這是一種測(cè)試用例設(shè)計(jì)方法,它專注于軟件的功能需求,而對(duì)軟件產(chǎn)品的內(nèi)部工作一無(wú)所知。這包括 :
- 等效類分區(qū):這是一種黑盒測(cè)試方法,它將程序的輸入域劃分為可從中導(dǎo)出測(cè)試用例的數(shù)據(jù)類。它定義了一個(gè)發(fā)現(xiàn)錯(cuò)誤類別的測(cè)試用例,從而減少了測(cè)試用例的總數(shù)。
- 邊界值分析:它是對(duì)等價(jià)類劃分的補(bǔ)充。與其選擇等效類的任何元素,不如在類的邊緣選擇測(cè)試用例。
- 決策表測(cè)試:一種系統(tǒng)方法,其中以表格形式捕獲各種輸入條件及其各自的系統(tǒng)行為。它涵蓋了所有可能的測(cè)試用例。(完整性屬性)
- 因果圖(魚骨圖):以圖形方式說(shuō)明給定結(jié)果與影響該結(jié)果(輸出/效果)的所有因素(輸入條件)之間的關(guān)系。
軟件測(cè)試策略
軟件測(cè)試策略將軟件測(cè)試用例設(shè)計(jì)方法學(xué)集成到精心計(jì)劃的一系列步驟中,從而成功構(gòu)建了軟件。軟件測(cè)試從組件級(jí)別開始,并逐步擴(kuò)展到整個(gè)基于計(jì)算機(jī)的系統(tǒng)的集成。這包括:
(1) 單元測(cè)試(組件測(cè)試)
在這種測(cè)試方法中,將測(cè)試軟件的各個(gè)單元(組件)。它是面向白盒的,由開發(fā)人員完成。
單元可以是單個(gè)功能,方法,模塊或?qū)ο蟆?/p>
(2) 集成測(cè)試
這是一種用于構(gòu)造程序結(jié)構(gòu),同時(shí)進(jìn)行測(cè)試以發(fā)現(xiàn)與軟件的不同單元之間的交互相關(guān)的錯(cuò)誤的系統(tǒng)技術(shù)。這包括 :
- 大爆炸集成:將所有組件一次性集成并作為一個(gè)單元進(jìn)行測(cè)試時(shí)
- 增量集成:兩個(gè)或兩個(gè)以上邏輯相關(guān)的組件進(jìn)行集成和測(cè)試時(shí)。它包括兩種方法,即自上而下(首先測(cè)試高級(jí)模塊時(shí))和自下而上(首先測(cè)試較低級(jí)模塊時(shí))。
- 回歸測(cè)試:進(jìn)行測(cè)試以確保最近的代碼更改不會(huì)對(duì)軟件的現(xiàn)有功能產(chǎn)生不利影響。
- 冒煙測(cè)試:確定軟件構(gòu)建是否穩(wěn)定的測(cè)試。
構(gòu)建包含實(shí)現(xiàn)一個(gè)或多個(gè)產(chǎn)品功能所需的所有數(shù)據(jù)文件,庫(kù)和模塊。
(3) 系統(tǒng)測(cè)試
這是一種黑箱測(cè)試技術(shù),旨在根據(jù)指定要求評(píng)估整個(gè)系統(tǒng)的合規(guī)性。這包括 :
- 恢復(fù)測(cè)試:驗(yàn)證萬(wàn)一發(fā)生故障,是否可以正確執(zhí)行軟件恢復(fù)。
- 安全測(cè)試:發(fā)現(xiàn)系統(tǒng)漏洞。
- 壓力測(cè)試:旨在應(yīng)對(duì)程序中的異常情況。
- 性能測(cè)試:用于測(cè)試程序的速度,穩(wěn)定性和可伸縮性。
(4) 用戶驗(yàn)收測(cè)試(UAT)
它由最終用戶(客戶端)執(zhí)行,以在將軟件移至生產(chǎn)環(huán)境之前對(duì)其進(jìn)行驗(yàn)證。這包括 :
- Alpha測(cè)試:由測(cè)試人員執(zhí)行,以通過(guò)執(zhí)行典型用戶可能執(zhí)行的任務(wù)來(lái)識(shí)別軟件中存在的所有可能的錯(cuò)誤。
- Beta測(cè)試:由真實(shí)用戶在真實(shí)環(huán)境中進(jìn)行。它包括將軟件發(fā)布給有限數(shù)量的用戶的過(guò)程,以獲得可以改進(jìn)產(chǎn)品的反饋。
結(jié)論
軟件測(cè)試是一個(gè)廣泛而多樣的領(lǐng)域,專注于交付給客戶的產(chǎn)品質(zhì)量。產(chǎn)品質(zhì)量?jī)?yōu)先考慮客戶滿意度,這使軟件測(cè)試成為IT行業(yè)最具挑戰(zhàn)性和滿意度的工作之一。本文介紹了軟件測(cè)試及其分類的基礎(chǔ)知識(shí),它們可以幫助您培養(yǎng)對(duì)該領(lǐng)域的興趣或完成大學(xué)作業(yè)!
原文鏈接:https://medium.com/nerd-for-tech/all-about-software-testing-a85f55d8263b