敏捷和自動(dòng)化測(cè)試
中華傳統(tǒng)文化源于《易》,成于孝,孝為德之本。孝順:孝則順,不孝則不順。
?
不久前,參加Thoughtworks組織的一場(chǎng)自動(dòng)化測(cè)試的分享,同事由于出差國(guó)外不能參加,特意囑托我提問(wèn)兩個(gè)問(wèn)題:
在互聯(lián)網(wǎng)這個(gè)將“敏捷”與“持續(xù)集成”進(jìn)行積極實(shí)踐的環(huán)境里,“敏捷測(cè)試”與“自動(dòng)化測(cè)試”成了一個(gè)大家經(jīng)常探討的話題,
那么自動(dòng)化測(cè)試最佳的實(shí)行時(shí)間是在什么時(shí)候?如何推行最有效的自動(dòng)化測(cè)試?
以下謹(jǐn)代表個(gè)人觀點(diǎn):
個(gè)人整理了一些測(cè)試最佳實(shí)踐并參考查閱了一些測(cè)試?yán)碚摰臅志C合了個(gè)人工作經(jīng)歷的一些經(jīng)驗(yàn),總結(jié)了以下幾點(diǎn):
1、測(cè)試人員盡可能早的進(jìn)入產(chǎn)品或項(xiàng)目的相關(guān)工作(這里指的產(chǎn)品或項(xiàng)目,指的都是從頭開(kāi)始的),從產(chǎn)品的計(jì)劃、需求調(diào)研、評(píng)審工作的開(kāi)始測(cè)試人員就進(jìn)行參與,這么做的目的有如下幾點(diǎn):a.讓測(cè)試人員盡可能多的了解需求、了解業(yè)務(wù),積極的提出問(wèn)題,b.在下一步系統(tǒng)架構(gòu)和接口設(shè)計(jì)之后,測(cè)試人員可以進(jìn)行盡早設(shè)計(jì)系統(tǒng)的接口測(cè)試用例,c.還可以為下一步編碼工作的單元測(cè)試做一個(gè)良好的鋪墊,在后期設(shè)計(jì)單元測(cè)試用例的同時(shí),懂代碼的測(cè)試人員可以直接的檢查開(kāi)發(fā)人員的代碼邏輯和業(yè)務(wù)邏輯是否符合要求,這也就實(shí)現(xiàn)了用最少成本“雙人編程”。
2、綜合一些實(shí)際情況考慮:根據(jù)一些實(shí)際調(diào)研,一般開(kāi)發(fā)與測(cè)試的比例在1:6--1:10左右,能達(dá)到1:6的已經(jīng)很不容易了,暫時(shí)不去討論這個(gè)比例問(wèn)題,因?yàn)檫@個(gè)需要根據(jù)項(xiàng)目的實(shí)際情況來(lái)看,個(gè)人看來(lái):一些大型的互聯(lián)網(wǎng)公司是不差錢的,所以他們會(huì)盡可能的在測(cè)試方面多投入或者說(shuō)投入較高的,還有一些公司是不愿意在測(cè)試方面多投入但是又想多做測(cè)試的,還有一些就是盡可能少投入的,其實(shí)這些都可以調(diào)整,調(diào)整的依據(jù)是兩個(gè)方面:一是確保公司對(duì)這個(gè)項(xiàng)目的重視和公司是真正的做測(cè)試,如果沒(méi)有領(lǐng)導(dǎo)的支持,準(zhǔn)確的說(shuō)沒(méi)有大領(lǐng)導(dǎo)的支持,測(cè)試工作是很難有效推進(jìn)的,二是有效的安排測(cè)試人員,就是在項(xiàng)目的不同階段安排不同測(cè)試人員,在測(cè)試不是很多是時(shí)候,可以使用半個(gè)人或者更少的測(cè)試人員,實(shí)現(xiàn)這一點(diǎn)的方法就是讓一個(gè)測(cè)試人員去服務(wù)多個(gè)項(xiàng)目即可,當(dāng)然這個(gè)多個(gè)也是有數(shù)量限制的,因?yàn)橐粋€(gè)人的精力也是有限。
3、從第前2條提出來(lái)的一個(gè)疑問(wèn):作者一直提倡讓測(cè)試人員盡可能早的接觸產(chǎn)品和項(xiàng)目,這樣能讓測(cè)試人員充分了解項(xiàng)目,那么如何讓一個(gè)人服務(wù)于多個(gè)測(cè)試項(xiàng)目?首先:明確一點(diǎn),不是測(cè)試人員不從項(xiàng)目的開(kāi)始就介入,測(cè)試人員就不能了解需求、不會(huì)測(cè)試。對(duì)于一個(gè)有經(jīng)驗(yàn)的測(cè)試人員來(lái)說(shuō),快速的熟悉項(xiàng)目的需求并不是一件難事,如果說(shuō)項(xiàng)目的各種邏輯真的是很復(fù)雜,項(xiàng)目經(jīng)理也可以根據(jù)用戶故事或者進(jìn)行一些更為細(xì)致的安排來(lái)讓這些協(xié)調(diào)過(guò)來(lái)的測(cè)試人員開(kāi)展測(cè)試工作。一人服務(wù)于多個(gè)項(xiàng)目,這種事情在國(guó)內(nèi)應(yīng)該是屢見(jiàn)不鮮的。
4、如何安排人員也是一個(gè)如何花錢的問(wèn)題:這種體會(huì)最深的就應(yīng)該是外包公司,是先花錢還是后花錢還是超支還是項(xiàng)目失敗,想必外包公司對(duì)這方面算的是最細(xì)的了。早期發(fā)現(xiàn)問(wèn)題早解決問(wèn)題,后面的壓力就會(huì)小,不能早期的發(fā)現(xiàn)的問(wèn)題,后面的團(tuán)隊(duì)壓力就會(huì)像滾雪球一下越來(lái)越大。早期的測(cè)試投入看成一份成本的話,用這一份成本,來(lái)提早的發(fā)現(xiàn)問(wèn)題的降低風(fēng)險(xiǎn),后期才開(kāi)始投入測(cè)試的話,也算是用一份成本,但是如果發(fā)現(xiàn)問(wèn)題,開(kāi)發(fā)人員就追蹤、修改的成本是要遠(yuǎn)遠(yuǎn)大于初期的,項(xiàng)目的龐大和不穩(wěn)定是讓開(kāi)發(fā)人員準(zhǔn)確定位問(wèn)題最大的困擾,還有測(cè)試人員做測(cè)試驗(yàn)證、回歸測(cè)試、自動(dòng)化腳本的修改這一切成本。
5、在項(xiàng)目的中后期如何做好自動(dòng)化測(cè)試工作?在項(xiàng)目中期的時(shí)候,問(wèn)題會(huì)逐漸積累,測(cè)試的東西也會(huì)越來(lái)越多,開(kāi)發(fā)和維護(hù)的東西越來(lái)越多,維護(hù)是指測(cè)試人員測(cè)試出來(lái)的bug需要修復(fù),但是又不能因?yàn)樾迯?fù)bug就停止項(xiàng)目開(kāi)發(fā)工作。隨著項(xiàng)目的推進(jìn),測(cè)試的效率保證是一個(gè)關(guān)鍵問(wèn)題,這個(gè)時(shí)候自動(dòng)化的推進(jìn)和效率卻成了一個(gè)矛盾的問(wèn)題。原因有三:1.自動(dòng)化代碼需要編寫和調(diào)試 2.自動(dòng)化代碼測(cè)試結(jié)果需要和手動(dòng)測(cè)試結(jié)果進(jìn)行比對(duì) (自動(dòng)化測(cè)試結(jié)果和手動(dòng)測(cè)試結(jié)果不一致會(huì)有發(fā)生)3.自動(dòng)化測(cè)試代碼需要維護(hù),尤其是在需求變更和設(shè)計(jì)變更的時(shí)候,手動(dòng)測(cè)試只需要肉眼對(duì)比,而自動(dòng)化測(cè)試可能會(huì)將代碼進(jìn)行較大改動(dòng)。這三個(gè)問(wèn)題大大降低了測(cè)試效率,這是手動(dòng)測(cè)試必須成為項(xiàng)目的主導(dǎo)。解決這一問(wèn)題的辦法就是在項(xiàng)目測(cè)試集中的階段調(diào)整手動(dòng)和自動(dòng)測(cè)試人員的比例,自動(dòng)化人員測(cè)試的范圍需要有一個(gè)合理的規(guī)劃,必須定時(shí)的提交自動(dòng)化測(cè)試代碼,在手動(dòng)測(cè)試完成后必須盡快的補(bǔ)充自動(dòng)化測(cè)試代碼,在完成測(cè)試工作的同時(shí)也自然的與手動(dòng)測(cè)試的結(jié)果進(jìn)行了比較,相當(dāng)于進(jìn)行了1次回歸測(cè)試。也就說(shuō)還是全部由手動(dòng)測(cè)試人員進(jìn)行第一輪全面覆蓋的測(cè)試。
6、在“敏捷”開(kāi)發(fā)過(guò)程中,自動(dòng)化工程師先對(duì)哪一部分功能進(jìn)行優(yōu)先的用例實(shí)現(xiàn):可以從以下幾個(gè)方面進(jìn)行考慮:1.優(yōu)先考慮數(shù)據(jù)對(duì)比類型的功能,這種功能人工操作比較費(fèi)眼力和時(shí)間 2.優(yōu)先考慮已經(jīng)測(cè)試出問(wèn)題的功能,這樣可以有效的對(duì)bug的功能進(jìn)行回歸檢查 3.
用戶使用比較頻繁的功能
?4.項(xiàng)目?jī)?yōu)先級(jí)比較高,比較核心的功能
7.強(qiáng)調(diào)一點(diǎn):手動(dòng)測(cè)試和自動(dòng)化測(cè)試對(duì)于項(xiàng)目來(lái)說(shuō)同等重要,不存在自動(dòng)化測(cè)試人員高級(jí)于手動(dòng)測(cè)試人員。如果說(shuō)一定要說(shuō)哪個(gè)最重要的話,只能是看項(xiàng)目的不同階段,在項(xiàng)目前中期的時(shí)候的時(shí)候,手動(dòng)測(cè)試占據(jù)了核心地位,在后期的時(shí)候,自動(dòng)化的全面覆蓋保證了回歸測(cè)試的有效進(jìn)行。
8.總結(jié):關(guān)于敏捷開(kāi)發(fā)和敏捷測(cè)試的一點(diǎn)心得:敏捷現(xiàn)在已經(jīng)被推向了一個(gè)高潮,何為敏捷?太多人有不同的見(jiàn)解,說(shuō)到最后與敏捷最分不開(kāi)的一詞就應(yīng)該是“實(shí)踐”,敏捷是實(shí)踐出來(lái)的,不是效仿出來(lái)的,現(xiàn)在太多的公司和團(tuán)隊(duì)在盲目的追求敏捷,拿scrum來(lái)說(shuō),有多少公司在做的只是scrum最最表象的一些東西,安排站會(huì),制定sprint,總結(jié)會(huì)等等,但是這些真的給你的團(tuán)隊(duì)帶來(lái)了改善了嗎?想必答案只有他們自己清楚。我心中的敏捷:敏捷---敏-結(jié),敏就是敏捷,簡(jiǎn)單的說(shuō)就是要一個(gè)高效率,結(jié):是指項(xiàng)目團(tuán)隊(duì)的協(xié)作和內(nèi)部團(tuán)結(jié),這一點(diǎn)非常重要。看那些成功實(shí)施敏捷的團(tuán)隊(duì)和諸多的最佳實(shí)踐團(tuán)隊(duì)他們都是團(tuán)結(jié)一心的,整個(gè)項(xiàng)目團(tuán)隊(duì)都有一個(gè)共同的目標(biāo)和追求,而不是每天項(xiàng)目經(jīng)理在驅(qū)使著大家在前進(jìn),每個(gè)人都積極上進(jìn)學(xué)習(xí),遇到不懂的問(wèn)題去總結(jié)、去學(xué)習(xí),去突破,再去分享,而不是說(shuō),“這個(gè)問(wèn)題太難了,這個(gè)技術(shù)太難了,這個(gè)。。。我可做不了”,如果每個(gè)成員都采用這種排斥的心里,那么這個(gè)團(tuán)隊(duì)就永遠(yuǎn)都敏捷不起來(lái),還有就是在需要協(xié)作的時(shí)候,兩個(gè)項(xiàng)目組不要互相“踢皮球”,而是要勇于承擔(dān)責(zé)任,最普遍的現(xiàn)象就是項(xiàng)目出現(xiàn)了問(wèn)題,然后大家在會(huì)上開(kāi)始掐架。這時(shí)候有人會(huì)問(wèn),自己出來(lái)?yè)?dān)責(zé)任不是傻嗎?其實(shí)不然,一個(gè)明智的老板當(dāng)然看的懂到底是誰(shuí)的責(zé)任,是否真正的需要人來(lái)承擔(dān)責(zé)任。如果這都做不到,證明這個(gè)老板也就。。。再談實(shí)踐,筆者看來(lái),很難有一個(gè)很細(xì)致的又可以公用的敏捷方法,即使現(xiàn)在最流行的scrum,也是一個(gè)非常抽象的概念,所以才有諸多屢實(shí)施又不見(jiàn)成效的團(tuán)隊(duì),最好的推進(jìn)敏捷的方法就是實(shí)踐,只有實(shí)踐才能發(fā)現(xiàn)問(wèn)題,才能解決問(wèn)題,最好找到一個(gè)適合自己的敏捷方法。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
