為啥要寫(xiě)這篇文章呢场勤?因?yàn)槲抑肮ぷ鞯陌肽昃褪蔷褪亲鳛橐幻麥y(cè)試的婚瓜。國(guó)內(nèi)某不知名國(guó)企的一名測(cè)試。但是經(jīng)過(guò)自己的不懈斗爭(zhēng)我又成為了一名dev也搓。
首先我們來(lái)看一下QA的定義哈赏廓,有兩層含義,一是quality analyst傍妒,二是他的主要職責(zé)是quality assurance(質(zhì)量保障)幔摸。主要職責(zé)是: A QA engineer focuses on improving software development processes and preventing defects in production. 主要的職責(zé)使是加粗和斜體部分。
具體任務(wù):
1.檢查產(chǎn)品是否符合要求颤练,這里的主要工作就是驗(yàn)收產(chǎn)品既忆,聚焦在功能的實(shí)現(xiàn)上自己用戶的交互,不會(huì)關(guān)注太多的細(xì)節(jié)上嗦玖。
2.評(píng)估風(fēng)險(xiǎn)患雇,這個(gè)一般發(fā)生在功能開(kāi)始研發(fā)的前期,測(cè)試人員一般都會(huì)比較了解業(yè)務(wù)宇挫,能夠盤(pán)點(diǎn)出本次修改的影響范圍苛吱。如果影響的范圍過(guò)大的話,可能需要將功能進(jìn)行拆解劃分更為獨(dú)立的功能開(kāi)發(fā)器瘪,這樣就可以盡可能降低功能上線之后的風(fēng)險(xiǎn)翠储。
3.提高產(chǎn)品質(zhì)量的策劃思路绘雁,
4.規(guī)劃測(cè)試,按照測(cè)試金字塔劃定項(xiàng)目中測(cè)試的內(nèi)容占比彰亥,
5.分析測(cè)試結(jié)果咧七,根據(jù)我現(xiàn)在經(jīng)驗(yàn),需要分析的測(cè)試一般是journey test(又稱為integration test)和load test的結(jié)果任斋。前者主要注重的是從用戶角度出發(fā)模擬用戶的操作行為继阻,這里的結(jié)果主要是接口的contractor發(fā)生了變化導(dǎo)致前端沒(méi)有適配而發(fā)生的問(wèn)題,這里可以比較準(zhǔn)確的定位到是哪個(gè)接口出現(xiàn)了問(wèn)題废酷。后者主要是分析api調(diào)用鏈路上的接口反應(yīng)時(shí)間瘟檩,也就是接口的性能。之前呆的公司中有有過(guò)一個(gè)叫做Xsea工具澈蟆,該工具可以具體分析到每一行代碼的耗時(shí)墨辛,這樣如果有問(wèn)題的代碼塊就會(huì)在結(jié)果中一目了然。
QA的主要承擔(dān)的角色:1.測(cè)試分析師從事需求的靜態(tài)測(cè)試趴俘,并檢查它們的完整性和一致性(通俗的來(lái)說(shuō)就是手工按照測(cè)試樣例測(cè)試或者者編寫(xiě)對(duì)應(yīng)的測(cè)試腳本)睹簇。2.測(cè)試設(shè)計(jì)師根據(jù)需求創(chuàng)建一組測(cè)試,并計(jì)劃測(cè)試所需的配置(根據(jù)需求設(shè)計(jì)測(cè)試場(chǎng)景寥闪,可能不需要本人來(lái)測(cè)試)太惠。3.Test Executor執(zhí)行預(yù)先計(jì)劃的測(cè)試,描述并記錄發(fā)現(xiàn)的錯(cuò)誤疲憋,以及復(fù)制(或修復(fù))這些錯(cuò)誤的步驟凿渊。4.測(cè)試經(jīng)理計(jì)劃并監(jiān)控與測(cè)試相關(guān)的工作,如遵守截止日期缚柳、遵循時(shí)間表埃脏、控制測(cè)試需求、為團(tuán)隊(duì)成員設(shè)置任務(wù)秋忙,以及與涉眾溝通(寫(xiě)得很清楚了吧彩掐,就是站的角度更高了吧)。more details
然后翰绊,我來(lái)說(shuō)說(shuō)我自己的測(cè)試經(jīng)歷吧佩谷。
大家都說(shuō)測(cè)試是什么呢,最懂業(yè)務(wù)的技術(shù)监嗜。所以一開(kāi)始呢就是了解各種業(yè)務(wù),目前中國(guó)的互聯(lián)網(wǎng)呢就是用戶量大抡谐,業(yè)務(wù)復(fù)雜裁奇,系統(tǒng)龐大。業(yè)務(wù)驅(qū)動(dòng)測(cè)試吧麦撵,為什么這么說(shuō)呢刽肠,只會(huì)考慮業(yè)務(wù)溃肪,因?yàn)闇y(cè)試是產(chǎn)品上線前的最后一到關(guān)卡,只要業(yè)務(wù)流通了音五。那么你這個(gè)功能就算是完成了惫撰,主要以業(yè)務(wù)為導(dǎo)向的各個(gè)場(chǎng)景的測(cè)試,這樣的測(cè)試模式可以更好的了解產(chǎn)品對(duì)于一個(gè)剛開(kāi)始的新人來(lái)說(shuō)躺涝。
工作模式是怎么樣的呢厨钻,每?jī)蓚€(gè)禮拜一次迭代,一次上線坚嗜。提前了解需求夯膀,然后串講,反串講苍蔬,編寫(xiě)測(cè)試樣例诱建,與開(kāi)發(fā)和需求一起過(guò)樣例,開(kāi)發(fā)完成功能碟绑,jenkins測(cè)試環(huán)境部署衙傀,uat環(huán)境測(cè)試,預(yù)生產(chǎn)環(huán)境測(cè)試鼻听,生產(chǎn)測(cè)試殴俱。
痛點(diǎn)有什么呢,
1.代碼質(zhì)量編寫(xiě)的水平不高抓狭,導(dǎo)致問(wèn)題的bug需要測(cè)試走查代碼才能檢查出問(wèn)題伯病,這些問(wèn)題可能會(huì)出現(xiàn)在接口的rps時(shí)間較長(zhǎng),中間件被資源鎖死否过,隊(duì)列消息丟失等等午笛。原因是沒(méi)有單元測(cè)試去保護(hù)代碼的主要邏輯,大家也不重視單元測(cè)試的重要性苗桂。
2.未能夠有自動(dòng)化的工具药磺,或者流水線來(lái)構(gòu)建新的版本和測(cè)試?yán)系陌姹敬a,經(jīng)過(guò)開(kāi)發(fā)的簡(jiǎn)單測(cè)試就推上codebase煤伟。那么這會(huì)導(dǎo)致什么問(wèn)題呢癌佩,測(cè)試人員在測(cè)試新功能的同時(shí)還要回歸大量的已有功能,這無(wú)非是增加了一系列的測(cè)試成本和有可能導(dǎo)致系統(tǒng)上線的不穩(wěn)定便锨。這要主要原因就是缺乏有效的基礎(chǔ)設(shè)施围辙,大量的重復(fù)工作需要實(shí)施。
3.測(cè)試人員沒(méi)有編碼的意識(shí)的誤區(qū)放案,也讓大家對(duì)測(cè)試人員的工作內(nèi)容產(chǎn)生了誤解姚建。覺(jué)得測(cè)試就是在產(chǎn)品上點(diǎn)來(lái)點(diǎn)去。做一些很枯燥的工作吱殉,實(shí)則不然掸冤,我在一本書(shū)上《軟件測(cè)試的藝術(shù)》看到過(guò)厘托,測(cè)試其實(shí)是一件非常耗費(fèi)腦細(xì)胞和想象力的一分工作,為什么這么說(shuō)呢稿湿?一位好的測(cè)試铅匹,遠(yuǎn)比多位開(kāi)發(fā)重要。因?yàn)樵诠ぷ髦薪忍伲瑴y(cè)試需要設(shè)計(jì)好各種level的測(cè)試在整體項(xiàng)目中的占比包斑,然后在選出合適的實(shí)踐方式。搭好架子后策精,開(kāi)發(fā)就可以自由的玩耍了舰始。有了這些基礎(chǔ)設(shè)施的保障,代碼的健壯性又有了一層附加的保護(hù)咽袜。
4.測(cè)試人員和開(kāi)發(fā)人員總是站在對(duì)立面丸卷,在很多公司里,這兩個(gè)角色總是爭(zhēng)鋒相對(duì)的询刹。原因是什么呢谜嫉,開(kāi)發(fā)覺(jué)得我自己開(kāi)發(fā)的功能沒(méi)有問(wèn)題,為什么要被你測(cè)出問(wèn)題呢凹联。而測(cè)試覺(jué)得沐兰,你這里不符合需求或者實(shí)現(xiàn)出來(lái)的方式不對(duì)就是有問(wèn)題。尤其還有一點(diǎn)測(cè)試出來(lái)的缺陷很有可能和他們的績(jī)效掛鉤蔽挠。但是在一些有好的理念的公司中住闯,這兩者的關(guān)系是相輔相成的,你來(lái)設(shè)計(jì)出優(yōu)秀的實(shí)踐澳淑,我來(lái)幫你想象可能漏掉的場(chǎng)景(edge case)比原。這樣的思想一旦建立起來(lái)之后,團(tuán)隊(duì)的工作效率就會(huì)發(fā)生質(zhì)變杠巡,而不是想著出了問(wèn)題相互甩鍋量窘。
現(xiàn)在的dev工作讓我對(duì)QA的工作有一些其他的理解
1.QA不是單純的測(cè)試人員,QA應(yīng)該是質(zhì)量分析師氢拥,在業(yè)務(wù)的基礎(chǔ)上合理的分配各種測(cè)試的比重蚌铜,以此來(lái)保證系統(tǒng)的穩(wěn)定性。所以這樣的就對(duì)測(cè)試有了更高的要求嫩海,需要使用多種類型的測(cè)試框架和技術(shù)棧冬殃。因此測(cè)試人員在一個(gè)團(tuán)隊(duì)中的占比不需要很大,少而精叁怪。
2.Dev也有測(cè)試責(zé)任造壮,dev除了日常的開(kāi)發(fā),還有一些測(cè)試編寫(xiě)的編碼工作骂束。類似于一些集成測(cè)試耳璧,用于測(cè)試接口的穩(wěn)定性。ui測(cè)試展箱,主要集中在前端開(kāi)發(fā)者上旨枯,模擬用戶的主要操作流程。一旦這樣的代碼測(cè)試樣例有一定的規(guī)模之后混驰,對(duì)于系統(tǒng)來(lái)說(shuō)攀隔,這就是一本活的測(cè)試樣例。
3.兩個(gè)角色是唇齒相依的關(guān)系栖榨。在tw我看到一個(gè)團(tuán)隊(duì)中的兩個(gè)角色不再是矛與盾的關(guān)系昆汹,而是相輔相成的關(guān)系。都是為了feature的穩(wěn)定上線而努力的在一塊工作婴栽,QA幫助dev更好的理解開(kāi)發(fā)功能的場(chǎng)景满粗,dev幫助QA解決一些技術(shù)上的難點(diǎn)。
以上只代表個(gè)人觀點(diǎn)愚争,如有不正確映皆,請(qǐng)大佬指教。