敏捷(Agile)是一種軟件開(kāi)發(fā)模式童番,用限制時(shí)間段的方式,滾動(dòng)周期地交付可用的軟件境输,旨在靈活地應(yīng)對(duì)改變,包括需求的改變嘁扼、依賴(lài)的改變趁啸、計(jì)劃的改變不傅、團(tuán)隊(duì)的改變等等辞友。敏捷開(kāi)發(fā)模式相較于傳統(tǒng)的瀑布模式而言称龙,具有更高的靈活性鲫尊,以交付價(jià)值驅(qū)動(dòng)開(kāi)發(fā),而不是傳統(tǒng)瀑布模式的以計(jì)劃驅(qū)動(dòng)開(kāi)發(fā)豪嚎。
在敏捷開(kāi)發(fā)模式下工作的團(tuán)隊(duì)我們稱(chēng)之為敏捷團(tuán)隊(duì)舌涨,敏捷團(tuán)隊(duì)中測(cè)試人員和開(kāi)發(fā)人員聯(lián)系緊密扔字,通常是同步工作的,注重即時(shí)溝通和質(zhì)量?jī)?nèi)建,保證交付質(zhì)量是每個(gè)人的責(zé)任蜓堕。面對(duì)軟件的缺陷俩滥,敏捷團(tuán)隊(duì)抱有更開(kāi)放的態(tài)度。
敏捷測(cè)試
由于團(tuán)隊(duì)的工作模式和業(yè)務(wù)交付模式都不同挂据,敏捷開(kāi)發(fā)模式下的軟件測(cè)試與傳統(tǒng)軟件開(kāi)發(fā)模式下的測(cè)試也有所不同。
敏捷測(cè)試的核心是質(zhì)量?jī)?nèi)建眉孩,簡(jiǎn)而言之就是軟件的質(zhì)量不是測(cè)試人員測(cè)出來(lái)的巴柿,而是全團(tuán)隊(duì)共同創(chuàng)建出來(lái)的广恢。所以在軟件開(kāi)發(fā)的全過(guò)程都應(yīng)該有提高質(zhì)量的思想和行動(dòng)钉迷,包括在需求階段和生產(chǎn)階段糠聪,都需要質(zhì)量?jī)?nèi)建的思想。
測(cè)試在軟件開(kāi)發(fā)前期的介入叫測(cè)試左移,包括對(duì)需求的評(píng)審隔缀、預(yù)IPM猾瘸、IPM牵触,甚至單元測(cè)試揽思、集成測(cè)試等羹令。
測(cè)試在生產(chǎn)階段的介入叫做測(cè)試右移福侈,也叫做生產(chǎn)環(huán)境的QA(QA in Production),主要包括三個(gè)方面:生產(chǎn)環(huán)境的測(cè)試辽社、監(jiān)控告警远荠、用戶反饋譬淳。
將測(cè)試左移、敏捷測(cè)試绎秒、測(cè)試右移結(jié)合剂娄,并在軟件開(kāi)發(fā)過(guò)程中和二,注重測(cè)試人員與開(kāi)發(fā)人員的溝通協(xié)作惯吕,合理管理缺陷废登,就是DevOps堡距,也是全程軟件測(cè)試(朱少民老師的《全程軟件測(cè)試》)吏颖。
測(cè)試分層
分層測(cè)試體系也叫做測(cè)試金字塔,一共將測(cè)試分為三層,每一程的面積代表了建議該種測(cè)試的量养晋。
最底層绳泉,也是建議最大量來(lái)做的是單元測(cè)試冒嫡。由于單元測(cè)試的運(yùn)行速度快孝凌,修復(fù)成本低瓣赂,在CI中單元測(cè)試是代碼合并強(qiáng)有力的質(zhì)量保障關(guān)卡煌集,所以單元測(cè)試的覆蓋率越高,越能把多數(shù)缺陷扼殺在最初放钦,用最低的成本修復(fù)。
中層褂策,服務(wù)測(cè)試”楦悖“服務(wù)測(cè)試”這個(gè)名稱(chēng)不太表意溪猿,測(cè)試金字塔的中層目前有很多人進(jìn)行了各個(gè)方面的解讀诊县,最常見(jiàn)的是說(shuō)中層包含了集成API測(cè)試依痊、web API測(cè)試等。中層的測(cè)試種類(lèi)非常多,界定也不用太糾結(jié)衔沼,往往根據(jù)軟件系統(tǒng)的需要菩佑,將需要團(tuán)隊(duì)較大量來(lái)維護(hù)的測(cè)試放在這一層稍坯。
上層瞧哟,包含UI測(cè)試勤揩、探索性測(cè)試或手動(dòng)測(cè)試陨亡。目前UI測(cè)試工具發(fā)展已經(jīng)可以做到UI測(cè)試的持續(xù)維護(hù),所以也有很多人不認(rèn)同UI測(cè)試?yán)^續(xù)處于測(cè)試金字塔頂層。金字塔頂層主要是指發(fā)現(xiàn)缺陷修復(fù)成本高叠赐、測(cè)試執(zhí)行慢敬惦、結(jié)果反饋慢以及大多數(shù)需要手動(dòng)操作的測(cè)試俄删。敏捷測(cè)試建議盡量減少這種測(cè)試,依靠增加底層和中層的測(cè)試來(lái)減小缺陷的修復(fù)成本鸽粉,加快測(cè)試反饋時(shí)間帚戳。
敏捷測(cè)試四象限
Q1: 包含單元測(cè)試、組件測(cè)試位他、集成測(cè)試等。一般要求采用自動(dòng)化方式窿冯,并且根據(jù)測(cè)試分層的理念重归,應(yīng)該是要覆蓋面最廣鼻吮,運(yùn)行頻率最高椎木。
Q2: 包含功能測(cè)試漱竖、用戶故事測(cè)試等。主要基于實(shí)例玛界,并且采用手動(dòng)+自動(dòng)的方式,保證迭代交付業(yè)務(wù)的功能運(yùn)行正常良狈。
Q3: 包含探索性測(cè)試笨枯、可用性測(cè)試薪丁,以及用戶驗(yàn)收測(cè)試等。主要采用手動(dòng)的方式努溃,關(guān)注產(chǎn)品在交付功能之外的其他表現(xiàn)阻问,注重產(chǎn)品是否完成了業(yè)務(wù)價(jià)值的交付。
Q4: 包含性能測(cè)試称近、安全測(cè)試以及其他的“非功能性”測(cè)試。一般需要采用專(zhuān)業(yè)的工具凳谦,對(duì)產(chǎn)品的功能性之外的方方面面進(jìn)行評(píng)估衡未,根據(jù)不同的產(chǎn)品有不同的要求。
Q1和Q4對(duì)執(zhí)行人員的技術(shù)能力要求比較高缓醋,需要一定的代碼能力、計(jì)算機(jī)網(wǎng)絡(luò)知識(shí)和底層實(shí)現(xiàn)理解褪贵。
Q2和Q3對(duì)軟件所交付的業(yè)務(wù)價(jià)值比較關(guān)注槽卫,也是軟件的Owner關(guān)注比較多的部分姊氓。
需要注意的是。敏捷測(cè)試的四象限并不是按照時(shí)間來(lái)排序的无切,并不是說(shuō)軟件交付的前期Q1的測(cè)試比較多籍嘹,后期Q4的測(cè)試比較多颂碘,而是根據(jù)產(chǎn)品的性質(zhì)和需求,在軟件開(kāi)發(fā)的各個(gè)階段都按需進(jìn)行澎胡。比如有一些產(chǎn)品的性能需求非常高稚伍,像一些電商網(wǎng)站垦搬,在支付米绕、下單等業(yè)務(wù)上捐祠,軟件的性能表現(xiàn)直接影響到功能星岗、業(yè)務(wù)寥掐,具有非常大的影響力污它,所以在開(kāi)發(fā)早期就要關(guān)注Q4的測(cè)試歇攻。
根據(jù)敏捷測(cè)試四象限制定測(cè)試策略
制定測(cè)試策略是測(cè)試人員職業(yè)生涯需要一直學(xué)習(xí)與精進(jìn)的技術(shù)贴捡,需要質(zhì)量維護(hù)源祈、缺陷檢查、保障功能交付和凝聚團(tuán)隊(duì)能力等等各方面的大局觀兽埃。
一般來(lái)說(shuō)售貌,測(cè)試策略主要圍繞三個(gè)問(wèn)題:what、how蹲诀、why矿微。即:
1塔次、測(cè)什么
2巾表、怎么測(cè)
3鞠苟、為什么測(cè)
其中what和how趾访,即測(cè)什么和怎么測(cè)這兩個(gè)問(wèn)題,會(huì)在測(cè)試策略中被重點(diǎn)關(guān)注。
敏捷測(cè)試的測(cè)試策略可以根據(jù)測(cè)試分層體系和測(cè)試四象限的指導(dǎo)來(lái)制定昏滴,測(cè)試人員可以借測(cè)試策略在產(chǎn)品開(kāi)發(fā)之初跟團(tuán)隊(duì)約定質(zhì)量?jī)?nèi)建的團(tuán)隊(duì)公約,由此來(lái)提高團(tuán)隊(duì)的質(zhì)量?jī)?nèi)建意識(shí),提高軟件交付質(zhì)量络拌。
簡(jiǎn)單的測(cè)試策略中應(yīng)包括以下測(cè)試級(jí)別:
1祥诽、單元測(cè)試(完成人绳姨、使用工具跪削、覆蓋面要求励背、運(yùn)行頻率要求)
2、接口測(cè)試(完成人鸳慈、使用工具、覆蓋面要求)
3绩郎、回歸測(cè)試(完成人翁逞、運(yùn)行時(shí)間、運(yùn)行頻率挖函、回歸測(cè)試列表維護(hù))
4、探索性測(cè)試(完成人怨喘、運(yùn)行環(huán)境、測(cè)試時(shí)間肉拓、覆蓋范圍)
5梳庆、驗(yàn)收測(cè)試(完成人、測(cè)試時(shí)間丧肴、通過(guò)標(biāo)準(zhǔn))
6胧后、性能測(cè)試(完成人、性能指標(biāo)壳快、工具、測(cè)試頻率)
7瘤旨、冒煙測(cè)試(完成人、測(cè)試運(yùn)行時(shí)長(zhǎng)存哲、通過(guò)標(biāo)準(zhǔn)、測(cè)試內(nèi)容)