測(cè)試是一場(chǎng)競(jìng)爭(zhēng),而數(shù)據(jù)每次都會(huì)獲得勝利
本文首先將討論sprint測(cè)試和開發(fā)中的一些長(zhǎng)期障礙,然后尋找一個(gè)可行的辦法,以在短時(shí)間內(nèi)交付經(jīng)過嚴(yán)格測(cè)試的系統(tǒng)。
這種方法的兩大因素是數(shù)據(jù)和自動(dòng)化,它們協(xié)同工作,將有關(guān)需要測(cè)試的見解轉(zhuǎn)化為嚴(yán)格的自動(dòng)化測(cè)試。但首先,讓我們來思考一下為什么在sprint中設(shè)計(jì)、開發(fā)和測(cè)試仍然如此具有挑戰(zhàn)性。
20 年后,獨(dú)立組織仍然是軟件交付方面的挑戰(zhàn)。
盡管敏捷宣言已發(fā)布20年,軟件交付生命周期仍然充滿了獨(dú)立組織。這些獨(dú)立組織不僅造成耗時(shí)的錯(cuò)誤溝通,還擴(kuò)大了人工的工作量。每次信息從一個(gè)移動(dòng)組織轉(zhuǎn)移到另一個(gè)移動(dòng)組織時(shí),都需要將其從一種格式轉(zhuǎn)換為另一種格式:
這些"信息躍點(diǎn)"延遲發(fā)布并引入缺陷,因?yàn)檎`解在每個(gè)階段都出現(xiàn)。現(xiàn)在,讓我們更詳細(xì)地查看每個(gè)獨(dú)立組織。
設(shè)計(jì)
從測(cè)試和開發(fā)的角度來看,在基于文本的文檔和不同的圖表中收集需求根本不適合使用。零碎的書面用戶情景和文檔與需要開發(fā)的確切邏輯很不一。同時(shí),基于文本的格式和靜態(tài)關(guān)系圖之間通常很少或沒有正式的依賴關(guān)系映射。
發(fā)展
因此,軟件設(shè)計(jì)在轉(zhuǎn)換為源代碼時(shí)會(huì)引入錯(cuò)誤,進(jìn)而產(chǎn)生耗時(shí)的返工。事實(shí)上,多項(xiàng)研究估計(jì),需求造成了一半以上的缺陷,而進(jìn)一步的研究估計(jì),開發(fā)人員花了一半的時(shí)間修復(fù)錯(cuò)誤。因此,設(shè)計(jì)缺陷占用了開發(fā)新功能的大量時(shí)間。
測(cè)試
需求的靜態(tài)特性進(jìn)一步增加了測(cè)試中的人工工作量。“平面”文檔和圖表還沒有為自動(dòng)化做好準(zhǔn)備,測(cè)試人員常常被迫手動(dòng)將設(shè)計(jì)轉(zhuǎn)換為測(cè)試用例、數(shù)據(jù)和腳本。
除了浪費(fèi)時(shí)間,這些手動(dòng)流程還會(huì)降低質(zhì)量。如今,一個(gè)簡(jiǎn)單的系統(tǒng)可能需要數(shù)千次測(cè)試才能發(fā)布。面對(duì)非正式和不完整的要求,測(cè)試人員無法系統(tǒng)或自動(dòng)識(shí)別和創(chuàng)建在發(fā)布前需要執(zhí)行的測(cè)試。
相反,手動(dòng)測(cè)試設(shè)計(jì)幾乎完全側(cè)重于"快樂路徑"方案,過度測(cè)試這些方案,而犧牲了最有可能導(dǎo)致Bug 的方案。同時(shí),過期和無效的測(cè)試堆積起來,導(dǎo)致測(cè)試失敗,使測(cè)試進(jìn)一步落后于版本。
自動(dòng)化可以提供幫助——但只有當(dāng)它擴(kuò)展到測(cè)試執(zhí)行之外時(shí)。
當(dāng)然,自動(dòng)化可以加速許多手動(dòng)流程。然而,到目前為止,"測(cè)試自動(dòng)化"幾乎完全集中在一個(gè)任務(wù)上,即執(zhí)行測(cè)試。在這樣做的過程中,它引入了大量手動(dòng)流程,而忽略了關(guān)鍵的質(zhì)量問題。
在許多情況下,測(cè)試自動(dòng)化引入了一個(gè)新的獨(dú)立組織,以及與之相關(guān)的所有時(shí)間和精力。測(cè)試自動(dòng)化引入的手動(dòng)過程包括大量測(cè)試腳本以及大量腳本維護(hù)。同時(shí),測(cè)試執(zhí)行的速度和數(shù)量會(huì)增加數(shù)據(jù)供應(yīng)瓶頸,而過時(shí)或不一致的數(shù)據(jù)會(huì)導(dǎo)致耗時(shí)的測(cè)試失敗。
進(jìn)一步自動(dòng)化測(cè)試執(zhí)行對(duì)提高測(cè)試質(zhì)量沒有任何幫助,也無助于識(shí)別要運(yùn)行的測(cè)試。測(cè)試設(shè)計(jì)人員和自動(dòng)化工程師仍然面臨著擁有比在sprint中執(zhí)行更多的系統(tǒng)邏輯的挑戰(zhàn)。
對(duì)錯(cuò)誤測(cè)試進(jìn)行優(yōu)先級(jí)排序不僅會(huì)浪費(fèi)測(cè)試腳本中的額外時(shí)間,還會(huì)使關(guān)鍵系統(tǒng)面臨破壞性的生產(chǎn)缺陷。因此,測(cè)試執(zhí)行自動(dòng)化是sprint測(cè)試的關(guān)鍵組件,但它本身并不是解決方案。
"數(shù)據(jù)驅(qū)動(dòng)"測(cè)試,但不是你所知道的那樣。
幸運(yùn)的是,一個(gè)解決方案正在出現(xiàn)。它在于數(shù)據(jù),以及可以將自動(dòng)化應(yīng)用于當(dāng)今廣泛可用的數(shù)據(jù)的方法。這為在sprint中準(zhǔn)確自動(dòng)地劃分測(cè)試優(yōu)先級(jí)打開了大門,在下一個(gè)版本之前生成所需的測(cè)試。
DevOps工具鏈中(自動(dòng))技術(shù)的激增導(dǎo)致了相關(guān)的數(shù)據(jù)激增。此外,這些數(shù)據(jù)現(xiàn)在以可捕獲和分析的格式輸出。
如果將這些數(shù)據(jù)與自動(dòng)分析和測(cè)試生成相結(jié)合,就可以開始將最新的測(cè)試人工項(xiàng)目填充到收集數(shù)據(jù)的相同工具中。然后創(chuàng)建一個(gè)閉合反饋循環(huán),收集和分析更多數(shù)據(jù),以推動(dòng)sprint中的嚴(yán)格測(cè)試。
現(xiàn)在來看看這個(gè)“數(shù)據(jù)驅(qū)動(dòng)”的sprint測(cè)試方法的組件。
連接
此方法的第一個(gè)先決條件是跨應(yīng)用程序交付生命周期的技術(shù)之間的連接。如果不同的工具不能在彼此之間傳遞信息,則獨(dú)立組織將持續(xù)存在。這將沒有足夠的數(shù)據(jù)進(jìn)行分析,也不可能跨工具填充測(cè)試套件。
因此,技術(shù)之間的連通性至關(guān)重要,在sprint中,技術(shù)必須建立在開放技術(shù)之上。幸運(yùn)的是,機(jī)器人流程自動(dòng)化和DevOps編排工具可以幫助快速集成不同的技術(shù)。
基線數(shù)據(jù)
此外,還必須收集這些不同工具產(chǎn)生的數(shù)據(jù),為收集數(shù)據(jù)提供基線。然后可以應(yīng)用工具從這個(gè)單一的真相來源中獲取見解,告知測(cè)試人員sprint中需要測(cè)試的內(nèi)容。分析工具包括但不限于基于AI和ML的技術(shù)。
sprint測(cè)試和數(shù)據(jù)生成
此時(shí),已經(jīng)收集和分析了數(shù)據(jù),指出了sprint中需要測(cè)試的內(nèi)容。但是,如何構(gòu)建和執(zhí)行對(duì)這些信息進(jìn)行操作所需的測(cè)試呢?
第一部分是自動(dòng)化測(cè)試生成,將此生成與基線數(shù)據(jù)分析聯(lián)系起來。第二部分在于根據(jù)已生成的測(cè)試自動(dòng)生成和分配數(shù)據(jù)。這可以通過在測(cè)試運(yùn)行時(shí)查找和生成數(shù)據(jù)的工具實(shí)現(xiàn),為每次測(cè)試提供豐富且兼容的數(shù)據(jù)。
開放測(cè)試平臺(tái)
如果你擁有所有這些組件,那么就有了所謂的開放測(cè)試平臺(tái)。一個(gè)開放的測(cè)試平臺(tái)可以管理整個(gè)應(yīng)用程序開發(fā)生態(tài)系統(tǒng)的數(shù)據(jù),準(zhǔn)確地確定在sprint中需要測(cè)試的內(nèi)容。它還構(gòu)建了運(yùn)行這些測(cè)試所需的測(cè)試和數(shù)據(jù),使用數(shù)據(jù)驅(qū)動(dòng)的洞察來實(shí)現(xiàn)sprint測(cè)試自動(dòng)化。
開放式測(cè)試平臺(tái)不是從系統(tǒng)需求和一系列獨(dú)立組織出發(fā),而是分析整個(gè)開發(fā)生態(tài)系統(tǒng)中的數(shù)據(jù)。因此,它會(huì)隨著需求或環(huán)境的變化來通知和更新測(cè)試,而不是玩一個(gè)不斷的追趕游戲。
簡(jiǎn)而言之,開放測(cè)試平臺(tái)支持sprint測(cè)試自動(dòng)化。