什么是自動(dòng)化測(cè)試?
明確一下自動(dòng)化測(cè)試不是什么。自動(dòng)化測(cè)試不是指自動(dòng)化生成測(cè)試代碼,而是自動(dòng)化地執(zhí)行由開(kāi)發(fā)人員或測(cè)試人員編寫(xiě)的測(cè)試代碼。正如下面這句諺語(yǔ):“絕不要手工去做任何可以被自動(dòng)化處理的事情?!狢urt Hibbs”
之前是由人工點(diǎn)擊頁(yè)面上的按鈕進(jìn)行功能測(cè)試,人工設(shè)置不同的性能參數(shù)進(jìn)行性能測(cè)試,都可以通過(guò)腳本或測(cè)試平臺(tái)自動(dòng)化執(zhí)行。這類測(cè)試包含單元測(cè)試、組件測(cè)試、集成測(cè)試和驗(yàn)收測(cè)試。也包含一些非功能性測(cè)試,如安全測(cè)試和性能測(cè)試。但有些測(cè)試還是需要人工介入,比如用戶體驗(yàn)測(cè)試、探索性測(cè)試等。本課時(shí)介紹的自動(dòng)化測(cè)試只包含能夠被自動(dòng)化執(zhí)行的測(cè)試。
為什么要自動(dòng)化測(cè)試?
? 節(jié)約時(shí)間和降低執(zhí)行成本:在軟件開(kāi)發(fā)全生命周期中,測(cè)試是一個(gè)非常頻繁且重復(fù)的活動(dòng)。每次提交代碼之后,都需要進(jìn)行測(cè)試以確保新的代碼變動(dòng)不會(huì)受到影響。在每次軟件發(fā)版之前,也需要進(jìn)行系統(tǒng)的回歸測(cè)試。一旦自動(dòng)化測(cè)試建設(shè)完成,就可以做到無(wú)人值守運(yùn)行,甚至可以在多臺(tái)機(jī)器上并行執(zhí)行。自動(dòng)化測(cè)試大大縮短了測(cè)試的時(shí)間。
? 減少出錯(cuò)概率,提高準(zhǔn)確性:自動(dòng)化測(cè)試每次執(zhí)行時(shí)都會(huì)執(zhí)行相同的步驟,并且每次都會(huì)生成詳細(xì)的測(cè)試報(bào)告。這些測(cè)試報(bào)告不受“人”的因素影響。手工測(cè)試容易受個(gè)人經(jīng)驗(yàn)和情緒的影響,容易出錯(cuò),人員的流動(dòng)又使得測(cè)試知識(shí)無(wú)法沉淀。因此,自動(dòng)化測(cè)試可以減少出錯(cuò)率,提高準(zhǔn)確性。
? 提升測(cè)試覆蓋度:自動(dòng)化測(cè)試可以增加測(cè)試的深度和范圍,從而提高軟件質(zhì)量。比如,由于自動(dòng)化測(cè)試的速度很快,可以在很短的時(shí)間里執(zhí)行數(shù)千個(gè)測(cè)試用例,從而提高測(cè)試的覆蓋度。
? 加快反饋效率:自動(dòng)化測(cè)試在每次提交代碼之后自動(dòng)觸發(fā),并將測(cè)試結(jié)果通知到團(tuán)隊(duì)中的開(kāi)發(fā)人員,大大縮短了開(kāi)發(fā)人員獲得反饋的時(shí)間。
? 模擬手工無(wú)法測(cè)試的場(chǎng)景:自動(dòng)化測(cè)試可以模擬成千上萬(wàn)用戶并發(fā)訪問(wèn)的場(chǎng)景,這樣的測(cè)試場(chǎng)景是手工測(cè)試無(wú)法模擬的。
因此,自動(dòng)化測(cè)試通過(guò)快速的批量執(zhí)行測(cè)試用例,減少測(cè)試的時(shí)間,加速反饋回路,提升軟件的質(zhì)量。另外,使用自動(dòng)化測(cè)試執(zhí)行那些重復(fù)性較強(qiáng)的工作,可以讓團(tuán)隊(duì)成員有更多的時(shí)間研究更有挑戰(zhàn)性和更有價(jià)值的活動(dòng),提高團(tuán)隊(duì)工作效率。
如何實(shí)現(xiàn)自動(dòng)化測(cè)試?
1、定義自動(dòng)化測(cè)試的范圍
在實(shí)施自動(dòng)化測(cè)試之前,先確定哪些類型的測(cè)試可以被自動(dòng)化。根據(jù) Brian Marick 提出的敏捷測(cè)試四象限,不同類型的測(cè)試可以分為下圖幾種。
2、定義自動(dòng)化測(cè)試的層次
敏捷專家 Mike Cohn 在 2003 年提出的測(cè)試分層金字塔。該測(cè)試金字塔分為三層:底層是單元測(cè)試,中間層是服務(wù)測(cè)試,上層是 UI 測(cè)試。這底層的單元測(cè)試需要做最多的測(cè)試工作,越往上的單元,測(cè)試工作越少。根據(jù)《谷歌軟件測(cè)試之道》的經(jīng)驗(yàn),這三個(gè)層次對(duì)于精力投入的比例是:70% 的精力放在單元測(cè)試,20% 放在服務(wù)測(cè)試,而剩下 10% 放在 UI 測(cè)試,如圖中紅框部分。
但從整個(gè)測(cè)試的過(guò)程來(lái)看,自動(dòng)化測(cè)試不僅僅是跟代碼相關(guān)的測(cè)試,不僅僅是測(cè)試執(zhí)行過(guò)程的自動(dòng)化,還應(yīng)該包含測(cè)試數(shù)據(jù)和測(cè)試環(huán)境的自動(dòng)化,這里統(tǒng)一稱為基礎(chǔ)設(shè)施的測(cè)試。根據(jù)經(jīng)驗(yàn)來(lái)看,測(cè)試數(shù)據(jù)和測(cè)試環(huán)境的準(zhǔn)備時(shí)間占據(jù)了整個(gè)測(cè)試過(guò)程的將近一半的時(shí)間。所以可以通過(guò)自動(dòng)化的方式提高基礎(chǔ)設(shè)施準(zhǔn)備的效率。
3、與持續(xù)集成流水線集成
前面兩個(gè)步驟確定了自動(dòng)化測(cè)試的范圍、分層以及需要使用的工具。第三步就是要搭建自動(dòng)化測(cè)試平臺(tái)并與持續(xù)集成流水線進(jìn)行集成,自動(dòng)化測(cè)試是實(shí)施持續(xù)集成實(shí)踐的重要組成部分,是提交后的代碼是否可工作的重要保障。下圖是持續(xù)集成流水線及自動(dòng)化測(cè)試相關(guān)的流程圖,其中有些平臺(tái)在之前的課時(shí)中也有講過(guò),如 API 管理平臺(tái)和環(huán)境部署平臺(tái)。
上圖主要涉及的測(cè)試流程是:
開(kāi)發(fā)人員提交代碼到 Git 倉(cāng)庫(kù)或進(jìn)行分支合并操作。
持續(xù)集成服務(wù)器接收到合并事件后,觸發(fā)編譯構(gòu)建、單元測(cè)試等檢查,并將測(cè)試結(jié)果通知給開(kāi)發(fā)人員。
上述檢查通過(guò)后,部署到 SIT 測(cè)試環(huán)境中。該環(huán)境為集成環(huán)境,部署了該服務(wù)所依賴的其他組件。當(dāng)服務(wù)部署時(shí)即可將 API 接口注冊(cè)到 API 管理平臺(tái),并執(zhí)行服務(wù)之間的 API 接口測(cè)試,驗(yàn)證服務(wù)集成是否有問(wèn)題,隨后將測(cè)試結(jié)果通知給開(kāi)發(fā)人員。
SIT 測(cè)試環(huán)境完成測(cè)試并達(dá)到進(jìn)階要求時(shí),即可進(jìn)入 UAT 測(cè)試環(huán)境進(jìn)行用戶驗(yàn)收測(cè)試。該環(huán)境測(cè)試主要通過(guò)自動(dòng)化測(cè)試平臺(tái)完成該服務(wù)的功能測(cè)試。自動(dòng)化測(cè)試平臺(tái)包含了測(cè)試用例管理和測(cè)試數(shù)據(jù)管理。該步驟可以進(jìn)行精細(xì)化地測(cè)試策略管理,可以根據(jù)代碼關(guān)聯(lián)的需求完成該需求相關(guān)的測(cè)試用例的測(cè)試,可以每天晚上執(zhí)行全量的回歸測(cè)試。
SIT 環(huán)境和 UAT 環(huán)境等基礎(chǔ)設(shè)施的管理可以通過(guò)環(huán)境部署平臺(tái)完成。環(huán)境部署平臺(tái)可以根據(jù)自動(dòng)化測(cè)試的要求,進(jìn)行定制化的部署和優(yōu)化設(shè)置,并對(duì)基礎(chǔ)環(huán)境進(jìn)行先決條件檢查,確保自動(dòng)化測(cè)試執(zhí)行之前滿足環(huán)境的要求。
總結(jié)
通過(guò)自動(dòng)化測(cè)試代替手工測(cè)試,減少測(cè)試執(zhí)行的時(shí)間,提高了測(cè)試的效率。將自動(dòng)化測(cè)試集成到持續(xù)集成流水線中,可以在提交代碼后自動(dòng)觸發(fā)測(cè)試,從而保證了每次提交代碼后的質(zhì)量,使得軟件一直處于可工作狀態(tài)。
測(cè)試是軟件全生命周期中非常重要的一個(gè)階段。多年來(lái),軟件工程的測(cè)試專家們也一直在自動(dòng)化測(cè)試的路上不斷探索,每家企業(yè)也都在或多或少的嘗試自動(dòng)化測(cè)試。有的自研了這套工具,有的只是通過(guò)腳本來(lái)實(shí)現(xiàn)。
最后感謝每一個(gè)認(rèn)真閱讀我文章的人,禮尚往來(lái)總是要有的,雖然不是什么很值錢(qián)的東西,如果你用得到的話可以直接拿走:
軟件測(cè)試面試小程序
被百萬(wàn)人刷爆的軟件測(cè)試題庫(kù)?。。≌l(shuí)用誰(shuí)知道?。?!全網(wǎng)最全面試刷題小程序,手機(jī)就可以刷題,地鐵上公交上,卷起來(lái)!
涵蓋以下這些面試題板塊:
1、軟件測(cè)試基礎(chǔ)理論 ,2、web,app,接口功能測(cè)試 ,3、網(wǎng)絡(luò) ,4、數(shù)據(jù)庫(kù)?,5、linux
6、web,app,接口自動(dòng)化 ,7、性能測(cè)試?,8、編程基礎(chǔ),9、hr面試題 ,10、開(kāi)放性測(cè)試題,11、安全測(cè)試,12、計(jì)算機(jī)基礎(chǔ)
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-693338.html
這些資料,對(duì)于【軟件測(cè)試】的朋友來(lái)說(shuō)應(yīng)該是最全面最完整的備戰(zhàn)倉(cāng)庫(kù),這個(gè)倉(cāng)庫(kù)也陪伴上萬(wàn)個(gè)測(cè)試工程師們走過(guò)最艱難的路程,希望也能幫助到你!???文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-693338.html
到了這里,關(guān)于DevOps之自動(dòng)化測(cè)試的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!