?左移測(cè)試教程:最佳實(shí)踐綜合指南
譯文譯者 | 李睿
審校 | 重樓
“本指南探討了左移測(cè)試方法,以及如何使用這種方法提高軟件產(chǎn)品的質(zhì)量?!?nbsp;
左移測(cè)試方法包括將測(cè)試活動(dòng)“左移”或在開(kāi)發(fā)周期中相對(duì)早期地移動(dòng)。因此,測(cè)試人員在軟件開(kāi)發(fā)生命周期中參與得越早,使他們能夠在更早的階段識(shí)別缺陷和瓶頸。除了提高代碼質(zhì)量和減少完成周期所需的時(shí)間之外,它還有助于確保在生產(chǎn)中引入更少的缺陷。
很多企業(yè)不斷面臨著在敏捷環(huán)境中更快行動(dòng)的挑戰(zhàn)。通常情況下,這需要縮短交付時(shí)間,同時(shí)以更低的成本提高每個(gè)后續(xù)版本的質(zhì)量。
敏捷開(kāi)發(fā)計(jì)劃優(yōu)先考慮更短的sprints,并計(jì)劃盡可能快地將客戶反饋合并到功能中。然而,這樣的進(jìn)步如果遇到了嚴(yán)重的質(zhì)量問(wèn)題,將讓客戶感到不滿。在此之后,測(cè)試和質(zhì)量出現(xiàn)了漂移,“快速移動(dòng)和突破”不再可持續(xù),測(cè)試成為了一個(gè)重要的絆腳石。
在傳統(tǒng)模式中,測(cè)試人員通常在開(kāi)發(fā)之后開(kāi)始測(cè)試。為此,出現(xiàn)了一種被稱為左移測(cè)試的質(zhì)量保證技術(shù),它具有諸如節(jié)省成本和提前檢測(cè)缺陷等優(yōu)點(diǎn)。
一、左移測(cè)試的由來(lái)
左移方法促使人們重新思考如何處理軟件質(zhì)量改進(jìn)。早些時(shí)候,在瀑布方法中,開(kāi)發(fā)人員和質(zhì)量保證專家在具有不同角色和職責(zé)的團(tuán)隊(duì)中工作。即使在敏捷方法中,測(cè)試也通常排在最后。
左移測(cè)試的思想旨在將測(cè)試階段引入軟件開(kāi)發(fā)生命周期(SDLC)的早期階段。因此,團(tuán)隊(duì)可以更有效地協(xié)同工作,并定期相互溝通。因此,左移是早期將測(cè)試和開(kāi)發(fā)結(jié)合在一起的常見(jiàn)術(shù)語(yǔ)。
可以考慮一個(gè)一切都是由開(kāi)發(fā)人員完成的這樣一個(gè)場(chǎng)景。他們將工作移交給測(cè)試團(tuán)隊(duì),從系統(tǒng)測(cè)試開(kāi)始,然后開(kāi)發(fā)團(tuán)隊(duì)開(kāi)始開(kāi)發(fā)新的項(xiàng)目。在質(zhì)量保證(QA)測(cè)試期間,測(cè)試中出現(xiàn)的錯(cuò)誤必須在發(fā)布到生產(chǎn)環(huán)境之前加以修復(fù)。在這種情況下,開(kāi)發(fā)人員繼續(xù)完成當(dāng)前的任務(wù),并集中精力修復(fù)上一個(gè)項(xiàng)目中的缺陷和錯(cuò)誤,以緩解最后交付期限,否則部署將不得不等到新的發(fā)布周期。而這是額外的時(shí)間投資!
左移方法旨在通過(guò)在生命周期的早期將任務(wù)移到左邊來(lái)提高質(zhì)量。它在軟件開(kāi)發(fā)生命周期的早期通過(guò)重復(fù)測(cè)試和檢測(cè)問(wèn)題以及早期最小化風(fēng)險(xiǎn)來(lái)整合測(cè)試。因此,與在開(kāi)發(fā)結(jié)束時(shí)開(kāi)始測(cè)試的典型測(cè)試方法相比,測(cè)試可能是一種更現(xiàn)實(shí)的檢測(cè)產(chǎn)品缺陷的方法。
二、SDLC后期測(cè)試的影響
在生命周期后期發(fā)現(xiàn)的缺陷更為復(fù)雜且修復(fù)成本更高。這就是在瀑布式方法結(jié)束時(shí)將測(cè)試視為一個(gè)順序階段被認(rèn)為是軟件測(cè)試的一個(gè)主要陷阱的原因。
以下是開(kāi)發(fā)周期進(jìn)行后期測(cè)試的影響:
?測(cè)試人員可能較少參與初始計(jì)劃,導(dǎo)致分配的測(cè)試資源不足。
?許多需求、架構(gòu)和設(shè)計(jì)缺陷直到在實(shí)施上花費(fèi)了大量精力才被發(fā)現(xiàn)和糾正。
?隨著越來(lái)越多的軟件被創(chuàng)建和集成,調(diào)試變得越來(lái)越困難。
?測(cè)試自動(dòng)化的時(shí)間更短,這最終會(huì)導(dǎo)致缺陷回歸。
?封裝使得白盒測(cè)試和在測(cè)試期間實(shí)現(xiàn)高水平的代碼覆蓋率變得更加困難。
?修復(fù)在測(cè)試中發(fā)現(xiàn)的缺陷的時(shí)間更少,增加了在以后的系統(tǒng)升級(jí)中被推遲的可能性。
?延遲測(cè)試影響開(kāi)發(fā)和維護(hù)成本,導(dǎo)致錯(cuò)過(guò)最后期限和項(xiàng)目延遲,并由于殘留缺陷而降低質(zhì)量。
?由于軟件存在缺陷,客戶最終用戶體驗(yàn)不佳。
三、為什么進(jìn)行左移測(cè)試
在傳統(tǒng)的瀑布模型中,在開(kāi)發(fā)周期結(jié)束時(shí)進(jìn)行測(cè)試,一些嚴(yán)重的缺陷經(jīng)常被忽略。在開(kāi)發(fā)流程結(jié)束時(shí)修復(fù)這些關(guān)鍵的缺陷是困難和昂貴的。隨著漏洞的發(fā)現(xiàn),修復(fù)它們的成本呈指數(shù)級(jí)增長(zhǎng)。
然而,通過(guò)讓測(cè)試人員更早地參與到開(kāi)發(fā)周期中進(jìn)行左測(cè)試有助于減少與發(fā)現(xiàn)和修復(fù)缺陷相關(guān)的成本。因此,對(duì)項(xiàng)目的可交付成果沒(méi)有延遲或影響,并且提高了客戶滿意度。
以下是導(dǎo)致左移快速發(fā)展的一些因素:
?通過(guò)將編碼和測(cè)試結(jié)合起來(lái),左移方法減少了代碼的不安全性。同時(shí)也提高了工程師的工作效率。
?左移方法使工程師能夠通過(guò)持續(xù)集成(CI)和測(cè)試自動(dòng)化來(lái)快速測(cè)試代碼。這允許團(tuán)隊(duì)朝著持續(xù)測(cè)試和CI/CD管道開(kāi)發(fā)他們的軟件開(kāi)發(fā)生命周期(SDLC)。
?在產(chǎn)品開(kāi)發(fā)生命周期中幾乎立即發(fā)現(xiàn)缺陷。
?通過(guò)幾乎立即識(shí)別缺陷來(lái)減少處理缺陷的成本。
?在產(chǎn)品開(kāi)發(fā)生命周期中幾乎立即發(fā)現(xiàn)缺陷。
?DevOps中的左移測(cè)試帶來(lái)了一個(gè)更重要的項(xiàng)目。這就建立了消費(fèi)者的忠誠(chéng)度并提高了業(yè)務(wù)成果。
?由于代碼包含較少的缺陷修復(fù)和代碼修復(fù),因此可以獲得更重要的項(xiàng)目。
?減少項(xiàng)目超出事件評(píng)估過(guò)程的可能性。
?由于代碼穩(wěn)定并在財(cái)務(wù)計(jì)劃中傳達(dá),因此提高了消費(fèi)者忠誠(chéng)度。
?保持更大的代碼庫(kù)。
?通過(guò)在開(kāi)發(fā)周期之前的測(cè)試,團(tuán)隊(duì)可以更快地發(fā)現(xiàn)代價(jià)昂貴的問(wèn)題。這樣可以節(jié)省時(shí)間和成本。
?左移方法允許團(tuán)隊(duì)更有可能為他們的企業(yè)設(shè)計(jì)整個(gè)測(cè)試擴(kuò)展。
四、在測(cè)試中左移的好處
左移不僅能更早地找到缺陷,它還可以幫助團(tuán)隊(duì)更好地與所有利益相關(guān)者合作,提高集體能力,并制作更現(xiàn)實(shí)的測(cè)試用例,以確保無(wú)缺陷的交付。左移測(cè)試帶來(lái)了一些企業(yè)文化上的好處,因?yàn)樗鼜?qiáng)調(diào)了敏捷宣言中眾所周知的原則:
?根據(jù)計(jì)劃應(yīng)對(duì)變化。
?客戶協(xié)作優(yōu)先于合同談判。
?工作軟件勝過(guò)全面的文檔。
?流程和測(cè)試工具之上的交互和個(gè)體。
以下是左移測(cè)試的幾個(gè)顯著優(yōu)點(diǎn):
?改進(jìn)了客戶和用戶體驗(yàn):左移促進(jìn)高質(zhì)量的代碼和按時(shí)交付,減少修復(fù)缺陷,創(chuàng)建一個(gè)更集中的以客戶需求為中心的環(huán)境,從而帶來(lái)更好的產(chǎn)品設(shè)計(jì)和用戶體驗(yàn)。
?早期缺陷檢測(cè):早期的、漸進(jìn)的、持續(xù)的測(cè)試可以在缺陷導(dǎo)致生產(chǎn)問(wèn)題之前減少它們的數(shù)量。
?增強(qiáng)覆蓋范圍:左移測(cè)試的額外優(yōu)勢(shì)是增加了測(cè)試覆蓋范圍。如果有更多的人更頻繁地創(chuàng)建測(cè)試并更早地開(kāi)始,那么測(cè)試將對(duì)軟件進(jìn)行更大比例的評(píng)估。
?顯著的成本節(jié)約:早期檢測(cè)顯著地提高了效率,減少了技術(shù)債務(wù),降低了修復(fù)缺陷所需的工作量、時(shí)間和成本。
?改進(jìn)了軟件團(tuán)隊(duì)文化、能力、士氣和員工忠誠(chéng)度:讓交付團(tuán)隊(duì)中的每個(gè)人都參與測(cè)試活動(dòng)需要左移。企業(yè)團(tuán)隊(duì)不再在發(fā)布前的最后一刻匆忙討論和執(zhí)行測(cè)試。
?幫助重塑產(chǎn)品開(kāi)發(fā):測(cè)試中的左移并不意味著沒(méi)有在生產(chǎn)中進(jìn)行測(cè)試,也不意味著測(cè)試完全轉(zhuǎn)移到軟件開(kāi)發(fā)生命周期的設(shè)計(jì)階段。左移將測(cè)試注入到每個(gè)sprint中。一些測(cè)試仍然應(yīng)該在最后進(jìn)行,但應(yīng)該是剩余的一些。
五、當(dāng)左移時(shí)會(huì)發(fā)生什么?
在左移方法中,測(cè)試人員直接了解測(cè)試版本的最終標(biāo)準(zhǔn)。例如,測(cè)試人員可能會(huì)意識(shí)到,當(dāng)他們了解產(chǎn)品規(guī)格說(shuō)明時(shí),與組件和系統(tǒng)開(kāi)發(fā)人員密切合作會(huì)更有效。他們可以提出探索性的問(wèn)題,與API開(kāi)發(fā)人員溝通,并為新服務(wù)創(chuàng)建測(cè)試存根。當(dāng)測(cè)試人員積極參與這些早期階段時(shí),他們最終會(huì)“向左移動(dòng)”。
以下看看當(dāng)在測(cè)試中采用左移方法時(shí)會(huì)發(fā)生什么。
1.設(shè)計(jì)階段
傳統(tǒng)上,產(chǎn)品設(shè)計(jì)團(tuán)隊(duì)會(huì)等到他們有了大量的新功能,然后開(kāi)始漫長(zhǎng)的設(shè)計(jì)過(guò)程。在此之前,測(cè)試人員可能對(duì)新功能正在進(jìn)行開(kāi)發(fā)的事實(shí)并不關(guān)心。在現(xiàn)代軟件開(kāi)發(fā)中,可以通過(guò)引入以下問(wèn)題來(lái)測(cè)試新的功能想法。
?該功能的用途是什么?它為客戶解決了哪些問(wèn)題?
?如何知道這個(gè)功能成功地滿足了客戶的需求?
?可以構(gòu)建并用作“學(xué)習(xí)版本”以確保其交付價(jià)值的功能的最小部分是什么?
?當(dāng)人們使用這個(gè)功能時(shí),最糟糕和最好的事情是什么?
2.持續(xù)使用測(cè)試來(lái)指導(dǎo)開(kāi)發(fā)
這是一個(gè)典型的“左移”場(chǎng)景:一家企業(yè)的團(tuán)隊(duì)決定構(gòu)建一個(gè)功能,并且正在與交付團(tuán)隊(duì)在計(jì)劃會(huì)議中進(jìn)行規(guī)范討論。只是問(wèn)“我們將如何測(cè)試這個(gè)?”這樣的問(wèn)題就會(huì)引發(fā)富有成效的討論,因?yàn)樗梢詭椭藗兝斫膺@一功能,并可能導(dǎo)致在單元、集成、系統(tǒng)級(jí)別/API、用戶界面(UI)或其他適用級(jí)別為這些故事進(jìn)行測(cè)試。
3.設(shè)計(jì)測(cè)試計(jì)劃
與正式的測(cè)試計(jì)劃不同,團(tuán)隊(duì)可以在創(chuàng)建每個(gè)故事時(shí)捕獲一些期望的和不希望的行為實(shí)例。然后,把它們變成測(cè)試。團(tuán)隊(duì)可以運(yùn)行它并幫助開(kāi)發(fā)。
這些測(cè)試將成為詳細(xì)的文檔,說(shuō)明該功能在生產(chǎn)環(huán)境中是如何工作的,自動(dòng)化的回歸測(cè)試可以確保未來(lái)的更改不會(huì)破壞它。增加團(tuán)隊(duì)準(zhǔn)確交付客戶所需的機(jī)會(huì)的一種方法是,在構(gòu)建每個(gè)功能時(shí),考慮更多的測(cè)試用例來(lái)自動(dòng)化或人工探索。
盡早且經(jīng)常進(jìn)行測(cè)試,盡早且經(jīng)常自動(dòng)執(zhí)行
敏捷開(kāi)發(fā)的好處是可以隨時(shí)實(shí)現(xiàn)自動(dòng)化??梢詾橐粋€(gè)功能編寫最基本的測(cè)試,即使還沒(méi)有完全開(kāi)發(fā)它。也可以為該功能向產(chǎn)品和測(cè)試代碼中添加增量測(cè)試??赡苄枰嗟姆倒?,更多的關(guān)于如何編寫可維護(hù)的測(cè)試的知識(shí),當(dāng)測(cè)試人員、開(kāi)發(fā)人員和其他團(tuán)隊(duì)成員協(xié)作在編碼過(guò)程中自動(dòng)化測(cè)試時(shí),需要等待更多的問(wèn)題得到回答,而這與瀑布過(guò)程的交接有很大的偏差。
4.不僅僅是與測(cè)試人員有關(guān)
左移方法是軟件團(tuán)隊(duì)都參與其中的一種技術(shù)。以下是每個(gè)角色需要做出的一些調(diào)整:
?測(cè)試人員:積極參與設(shè)計(jì)階段。要構(gòu)建測(cè)試,不應(yīng)該等待代碼。嘗試將這些代榪分成幾個(gè)可測(cè)試的小塊,以保證測(cè)試的成功。
?開(kāi)發(fā)人員:參與關(guān)于測(cè)試策略和計(jì)劃的討論。企業(yè)投入可能有助于減輕測(cè)試團(tuán)隊(duì)的負(fù)擔(dān),并降低技術(shù)債務(wù)。將企業(yè)的自動(dòng)化測(cè)試套件作為代碼庫(kù)的重要組成部分進(jìn)行維護(hù)。
?產(chǎn)品經(jīng)理:確保企業(yè)的團(tuán)隊(duì)能夠獲得合適的資源來(lái)進(jìn)行合作并獲得反饋。設(shè)定與左移策略相一致的目標(biāo)和期望。這可能需要為整個(gè)團(tuán)隊(duì)設(shè)定質(zhì)量目標(biāo),并減少每個(gè)sprint的功能工作。
基礎(chǔ)設(shè)施和部署團(tuán)隊(duì):企業(yè)的部署管道需要盡早可用,并且具有高容量,以便測(cè)試套件能夠快速運(yùn)行,因?yàn)闇y(cè)試需要頻繁和早期地發(fā)生。
六、左移測(cè)試的類型
有四種不同類型的左移方法,每種方法提供不同的價(jià)值。
1.傳統(tǒng)的方法
要理解傳統(tǒng)的左移方法,首先理解軟件開(kāi)發(fā)生命周期中的傳統(tǒng)V模型是很重要的。SDLC V-Model是基于每個(gè)開(kāi)發(fā)階段的測(cè)試階段的瀑布模型的擴(kuò)展。它也被稱為驗(yàn)證和確認(rèn)模型。下圖顯示了一個(gè)典型的V型模型。
傳統(tǒng)的左移方法減少了測(cè)試次數(shù),從而將其移到V型模型右側(cè)的左側(cè)。單元測(cè)試和集成測(cè)試是傳統(tǒng)左移方法的主要關(guān)注點(diǎn)。這種測(cè)試是使用API測(cè)試和Selenium完成的。然而,驗(yàn)收測(cè)試和系統(tǒng)測(cè)試并沒(méi)有得到高度重視。
2.增量方法
這種左移策略最適合開(kāi)發(fā)復(fù)雜和大型軟件系統(tǒng)的項(xiàng)目。同時(shí)管理所有任務(wù)和可交付成果有時(shí)變得很困難,因此它們被分成更小的塊。這些組件構(gòu)建在彼此之上,并且軟件隨每個(gè)增量一起交付給客戶。在每次交付之后,開(kāi)發(fā)和測(cè)試都被移到左邊。這有利于測(cè)試團(tuán)隊(duì)測(cè)試每個(gè)組件。
因此,它通過(guò)增量開(kāi)發(fā)周期來(lái)進(jìn)行增量測(cè)試。下圖顯示了該過(guò)程的一個(gè)示例。
3.敏捷/DevOps方法
這種左移測(cè)試方法通常在幾個(gè)sprint中執(zhí)行。它側(cè)重于通過(guò)由各種較小的sprint組成的進(jìn)化生命周期進(jìn)行持續(xù)測(cè)試。它主要用于開(kāi)發(fā)測(cè)試,而不是在系統(tǒng)操作化之后進(jìn)行的操作測(cè)試。
4.基于模型的方法
左移方法的主要目標(biāo)是盡早發(fā)現(xiàn)缺陷。然而,在上面討論的三個(gè)模型中,測(cè)試將在開(kāi)發(fā)周期的早期開(kāi)始。因此,在需求收集期間遺漏了一些關(guān)鍵問(wèn)題,這些問(wèn)題在開(kāi)發(fā)周期完成后才會(huì)被發(fā)現(xiàn)。
七、左移的關(guān)鍵策略
以下是一些可以實(shí)現(xiàn)的關(guān)鍵策略,以將軟件測(cè)試向左轉(zhuǎn)移。
?計(jì)劃:這是左移戰(zhàn)略的一個(gè)重要方面,因?yàn)樗菧y(cè)試生命周期任務(wù)的跳板。測(cè)試人員可以通過(guò)與管理層和運(yùn)營(yíng)利益相關(guān)者合作,更好地理解未來(lái)的需求。有了這種洞察力,就可以計(jì)劃并確認(rèn)預(yù)算、資源分配和測(cè)試策略。
?靜態(tài)測(cè)試:它在項(xiàng)目的早期階段完成,包括需求和設(shè)計(jì)驗(yàn)證。使用靜態(tài)測(cè)試,可以在項(xiàng)目生命周期的早期發(fā)現(xiàn)問(wèn)題,以免它們變得過(guò)于昂貴而無(wú)法修復(fù)。
?統(tǒng)一的測(cè)試策略:使用統(tǒng)一的測(cè)試策略,企業(yè)可以評(píng)估自動(dòng)化、存根、環(huán)境和測(cè)試數(shù)據(jù)上的限制,保證各自的團(tuán)隊(duì)能夠滿足需求。一般來(lái)說(shuō),這是端到端測(cè)試的高級(jí)方法,從單元測(cè)試到用戶驗(yàn)收測(cè)試(UAT),再到操作準(zhǔn)備測(cè)試(ORT)和部署后測(cè)試(PDT)。這一策略將涵蓋所有質(zhì)量保證(QA)職責(zé)和步驟。
?基于風(fēng)險(xiǎn)的分析:軟件風(fēng)險(xiǎn)分析決定了每個(gè)測(cè)試用例的結(jié)果和失敗的概率。功能測(cè)試、非功能測(cè)試和回歸測(cè)試都可以使用這種方法進(jìn)行。
八、如何實(shí)施左移戰(zhàn)略?
左移不僅僅是幫助測(cè)試團(tuán)隊(duì)盡早發(fā)現(xiàn)缺陷,現(xiàn)在了解他們需要做些什么來(lái)開(kāi)始左移測(cè)試:
1.確定并計(jì)劃測(cè)試生命周期
計(jì)劃是左移方法不可或缺的一部分。當(dāng)測(cè)試分析人員在實(shí)際開(kāi)發(fā)過(guò)程開(kāi)始之前確定并計(jì)劃整個(gè)測(cè)試生命周期時(shí),它的效果最好。這為測(cè)試生命周期中的所有活動(dòng)提供了一個(gè)強(qiáng)有力的起點(diǎn),并將幫助所有業(yè)務(wù)和運(yùn)營(yíng)利益相關(guān)者、開(kāi)發(fā)人員和測(cè)試人員理解項(xiàng)目的任務(wù)、目標(biāo)和預(yù)期結(jié)果。
這樣做的一種方法是從項(xiàng)目計(jì)劃和需求規(guī)范階段確定測(cè)試需求。測(cè)試計(jì)劃包括預(yù)算、資源、測(cè)試策略和其他項(xiàng)目需求。這有助于團(tuán)隊(duì)從項(xiàng)目的第一天開(kāi)始就關(guān)注質(zhì)量,而不是等到軟件開(kāi)發(fā)生命周期的后期才發(fā)現(xiàn)缺陷。
2.引入基于開(kāi)發(fā)人員的測(cè)試方法
開(kāi)發(fā)人員的主要角色是根據(jù)需求編寫新功能或增強(qiáng)功能。然而,測(cè)試不再是由測(cè)試人員完成的任務(wù)。
由于開(kāi)發(fā)人員最熟悉他們的代碼,他們可以嚴(yán)格測(cè)試自己編寫的代碼以排除任何缺陷,并檢查應(yīng)用程序的功能。確保新代碼在與應(yīng)用程序的現(xiàn)有功能集成時(shí)不會(huì)產(chǎn)生任何缺陷也是至關(guān)重要的。
因此,一旦開(kāi)發(fā)出代碼進(jìn)行測(cè)試,可以確保更快地識(shí)別缺陷。它加快了暴露和修復(fù)編碼錯(cuò)誤的速度。它有助于減少單元中的不確定性。開(kāi)發(fā)測(cè)試的目的是在代碼傳遞給質(zhì)量保證(QA)團(tuán)隊(duì)之前消除編碼錯(cuò)誤?;陂_(kāi)發(fā)人員的測(cè)試和基于質(zhì)量保證(QA)的測(cè)試的完美結(jié)合將確保輕松識(shí)別缺陷和發(fā)布高質(zhì)量的功能。
3.代碼評(píng)審質(zhì)量檢查
合作是成功的關(guān)鍵。為了確保更高的代碼質(zhì)量,所有開(kāi)發(fā)人員必須同意遵守相同的編碼標(biāo)準(zhǔn)。
隨著開(kāi)發(fā)人員為測(cè)試工作做出貢獻(xiàn),測(cè)試人員可以專注于為開(kāi)發(fā)人員的腳本定義質(zhì)量檢查,并專注于探索性、安全性和性能測(cè)試。
4.使用相同的工具
測(cè)試團(tuán)隊(duì)面臨的一個(gè)重要問(wèn)題是無(wú)法使用開(kāi)發(fā)人員使用的相同工具創(chuàng)建自動(dòng)化測(cè)試。這成為測(cè)試人員創(chuàng)建自動(dòng)化框架的障礙。最佳實(shí)踐是使用開(kāi)發(fā)人員使用的相同技術(shù)堆棧。
5.功能測(cè)試
它是對(duì)軟件進(jìn)行更改以添加新功能或修改現(xiàn)有功能的過(guò)程。測(cè)試這些功能是非常重要的,并且逐步交付軟件需要開(kāi)發(fā)和質(zhì)量保證(QA)團(tuán)隊(duì)協(xié)同工作來(lái)交付構(gòu)建。
在每次簽入之后,就可以知道系統(tǒng)在缺陷方面的實(shí)際狀態(tài)。通過(guò)嚴(yán)格的代碼質(zhì)量檢查,可以在早期階段檢測(cè)到缺陷,因此更容易修復(fù),從而提高每個(gè)功能的質(zhì)量。
6.采用測(cè)試自動(dòng)化技術(shù)
在這種DevOps驅(qū)動(dòng)的環(huán)境中,強(qiáng)烈建議采用測(cè)試自動(dòng)化技術(shù),以最大限度地提高左移測(cè)試的可用性。通過(guò)測(cè)試自動(dòng)化,開(kāi)發(fā)人員和測(cè)試人員可以在軟件開(kāi)發(fā)的所有階段自動(dòng)化整個(gè)從構(gòu)建到測(cè)試的過(guò)程。
為了降低測(cè)試成本,需要始終使用基于云的測(cè)試平臺(tái),以便企業(yè)的質(zhì)量保證(QA)團(tuán)隊(duì)可以訪問(wèn)不同的瀏覽器、設(shè)備和平臺(tái)。
九、左移測(cè)試的挑戰(zhàn)
正如人們所看到的,左移策略帶來(lái)了許多好處。然而,每件事都有它的挑戰(zhàn)。這是左移測(cè)試的一個(gè)限制。
1.文化認(rèn)可
清單上的第一個(gè)是認(rèn)可。左移測(cè)試需要企業(yè)文化的重大轉(zhuǎn)變。習(xí)慣于傳統(tǒng)工作流程的開(kāi)發(fā)人員和測(cè)試人員可能會(huì)發(fā)現(xiàn)左移是一個(gè)偏差。它可能會(huì)打亂工作、工具和所需技能的流程。如何克服? 內(nèi)化左移測(cè)試的重要性是很重要的。此外,倡導(dǎo)優(yōu)先事項(xiàng)的學(xué)習(xí)會(huì)議有助于確保順利過(guò)渡到新方法。
2.精力浪費(fèi)
只有一些內(nèi)容可以盡早測(cè)試。如果仍然需要打下基礎(chǔ),左移測(cè)試可能需要投入大量的精力和時(shí)間。在開(kāi)發(fā)圖形用戶界面(GUI)之前編寫測(cè)試的情況下,圖形用戶界面(GUI)功能很有可能在完全開(kāi)發(fā)時(shí)需要更多的增強(qiáng),因此大部分精力都被浪費(fèi)了。
如何克服?如果需要在早期測(cè)試特定的測(cè)試,則必須更早完成開(kāi)發(fā)。例如,如果API測(cè)試對(duì)企業(yè)的項(xiàng)目至關(guān)重要,并且正試圖進(jìn)行左移測(cè)試,那么需要盡早開(kāi)發(fā)API。
3.測(cè)試范圍
測(cè)試范圍都涵蓋了嗎?需要多少自動(dòng)化?準(zhǔn)備好全套服務(wù)了嗎?回答這些問(wèn)題的答案可能會(huì)讓人頭疼。
定義智能測(cè)試策略是自動(dòng)化測(cè)試成功的關(guān)鍵。以下是可以幫助確定是否應(yīng)該自動(dòng)化測(cè)試用例的因素列表。
?自動(dòng)化的復(fù)雜性
?平均腳本創(chuàng)建時(shí)間
?期望的回歸速度
?發(fā)布的頻率
?構(gòu)建的穩(wěn)定性
?測(cè)試用例的變更/增加率
十、左移測(cè)試的最佳實(shí)踐
本節(jié)將討論在實(shí)現(xiàn)左移方法時(shí)應(yīng)該遵循的一些最佳實(shí)踐:
提供持續(xù)的反饋
持續(xù)的反饋可以快速地修正誤差和間隙。此外,它可以更好地了解每個(gè)參與者,并改進(jìn)未來(lái)的項(xiàng)目。
為了實(shí)現(xiàn)有效的持續(xù)反饋循環(huán),應(yīng)該:
?為會(huì)議設(shè)定目標(biāo)。
?詳細(xì)記錄反饋。
?確保有效的溝通渠道。
1.早期測(cè)試
早期的測(cè)試不應(yīng)該意味著測(cè)試不會(huì)發(fā)生在軟件開(kāi)發(fā)生命周期(SDLC)的后期階段。早期測(cè)試本質(zhì)上允許通過(guò)早期缺陷檢測(cè)來(lái)降低風(fēng)險(xiǎn)。這并不意味著缺陷不能在后期出現(xiàn)。因此,質(zhì)量保證(QA)專家和項(xiàng)目經(jīng)理應(yīng)該準(zhǔn)備好并利用持續(xù)測(cè)試。
質(zhì)量保證(QA)專家應(yīng)該列出代碼預(yù)期的價(jià)值、執(zhí)行和操作成就的程度,以便運(yùn)行測(cè)試的開(kāi)發(fā)人員了解應(yīng)該搜索哪些缺陷。
2.自動(dòng)化測(cè)試
每次更新、發(fā)布、定制和集成都會(huì)對(duì)系統(tǒng)的整體質(zhì)量造成新的威脅。另外,人工測(cè)試不能滿足更快、更高質(zhì)量的軟件開(kāi)發(fā)的需求。 一個(gè)可行的方法是使用測(cè)試自動(dòng)化,這為測(cè)試人員節(jié)省了大量的時(shí)間。
3.靜態(tài)代碼分析
靜態(tài)代碼分析是在不執(zhí)行代碼的情況下分析代碼。它檢查了基本的代碼結(jié)構(gòu),并保證代碼與各種規(guī)范和規(guī)則保持一致。在這一分析中,將根據(jù)指導(dǎo)方針和標(biāo)準(zhǔn)檢查代碼。靜態(tài)代碼分析的另一個(gè)好處是可以實(shí)現(xiàn)自動(dòng)化。但是應(yīng)該在軟件開(kāi)發(fā)生命周期(SDLC)的早期做這樣的分析。
十一、結(jié)論
在持續(xù)開(kāi)發(fā)周期的所有階段都參與測(cè)試可能會(huì)讓人望而生畏。盡管如此,來(lái)自測(cè)試社區(qū)的許多成功案例表明,無(wú)論成為什么角色,這都是可能的。
一些專家表示,向開(kāi)發(fā)人員展示如何進(jìn)行測(cè)試的最佳方式是成為一名具有測(cè)試經(jīng)驗(yàn)的開(kāi)發(fā)人員。也有人說(shuō)在項(xiàng)目的每個(gè)階段都要“停下來(lái)思考和測(cè)試/審查”。如果有一些編碼經(jīng)驗(yàn)或?qū)W(xué)習(xí)感興趣,那么將其測(cè)試專業(yè)知識(shí)與實(shí)際開(kāi)發(fā)工作相結(jié)合是一個(gè)很好的選擇。
無(wú)可爭(zhēng)辯的是,測(cè)試人員都將負(fù)責(zé)創(chuàng)建高質(zhì)量的交付。如果企業(yè)的項(xiàng)目或團(tuán)隊(duì)正試圖左移,那么這一指南可能是一個(gè)很好的手冊(cè),可以幫助他們以更快的速度交付優(yōu)秀的產(chǎn)品。
原文標(biāo)題:
Shift Left Testing Tutorial: Comprehensive Guide With Best Practices,作者:Rhea Dube
原文鏈接:
https://dzone.com/articles/shift-left-testing-tutorial-comprehensive-guide-wi