2年測(cè)開(kāi)的成長(zhǎng)歷程
前言先簡(jiǎn)單介紹一下自己,小編畢業(yè)后就直接入職搜狗,成為了一名測(cè)試開(kāi)發(fā)工程師。到目前為止在搜狗工作馬上2年啦,主要負(fù)責(zé)搜狗商城服務(wù)端的測(cè)試,見(jiàn)證了搜狗商城的從無(wú)到有,現(xiàn)在搜狗商城的技術(shù)、服務(wù)與產(chǎn)品逐漸完善并趨于穩(wěn)定(PS:搜狗商城的小程序名【搜狗有品】,買(mǎi)產(chǎn)品優(yōu)惠力度很大,有需要可以關(guān)注一下哦)。2018年10月10號(hào)加入“搜狗測(cè)試”公眾號(hào)大家庭,因個(gè)人原因,很快就要與搜狗say goodbye了。一直在思考,最后一篇發(fā)文要寫(xiě)點(diǎn)什么,思考良久,小編認(rèn)為應(yīng)該把這將近2年測(cè)試工作做個(gè)總結(jié)記錄下來(lái),如有描述不恰當(dāng)?shù)牡胤剑€請(qǐng)大家多多包涵指正。
01初識(shí)測(cè)試
18年7月份,通過(guò)校招入職搜狗,剛?cè)肼殨r(shí),主要負(fù)責(zé)搜狗瀏覽器相關(guān)的一些功能及兼容性測(cè)試,如:微門(mén)戶、搜狗理財(cái)、導(dǎo)航、信息流等。入職一個(gè)月,開(kāi)發(fā)了測(cè)試文章數(shù)據(jù)抓取功能,供組內(nèi)成員每日閱讀,同時(shí)也鍛煉了自己的編程能力,掌握了爬蟲(chóng)相關(guān)技能。入職2個(gè)月時(shí),逐漸適應(yīng)了項(xiàng)目的測(cè)試流程,包括需求評(píng)審、測(cè)試方案、測(cè)試用例編寫(xiě)、用例評(píng)審等等,接觸了jira、fiddler、git、jenkins等這些工具。
9月份搜狗商城需求的提出,為我提供了一個(gè)完整項(xiàng)目測(cè)試的機(jī)會(huì)。剛開(kāi)始測(cè)試時(shí),負(fù)責(zé)商城PC端測(cè)試,才發(fā)現(xiàn)自己用例設(shè)計(jì)覆蓋度不完善,特殊測(cè)試點(diǎn)不能夠充分考慮,一輪測(cè)試后,組織組內(nèi)成員進(jìn)行隨機(jī)測(cè)試,發(fā)現(xiàn)了許多bug,是設(shè)計(jì)用例時(shí)未思考到的點(diǎn),第一次負(fù)責(zé)功能如此多的完整項(xiàng)目,后續(xù)不斷積累總結(jié)測(cè)試點(diǎn),小編想提醒初入職的小伙伴,設(shè)計(jì)用例也需要總結(jié)積累的,可以參加他人的bug總結(jié),吸取經(jīng)驗(yàn),避免在我們自己的項(xiàng)目中漏測(cè)。
后續(xù)逐漸負(fù)責(zé)起商城的接口及服務(wù)端測(cè)試,接觸了postman、maven、Spring Boot框架、nginx等,轉(zhuǎn)為服務(wù)端測(cè)試后接觸的項(xiàng)目測(cè)試流程也更加完善,比如會(huì)關(guān)注代碼review、代碼質(zhì)量等等,也為之后獨(dú)立負(fù)責(zé)商城服務(wù)端測(cè)試做了鋪墊。
02接口自動(dòng)化測(cè)試實(shí)踐
為了提高測(cè)試效率,我們針對(duì)商城做了接口自動(dòng)化測(cè)試,采用的框架:Unittest + Requests + HTMLTestRunner,極大地節(jié)省了測(cè)試回歸時(shí)間,提高了版本迭代效率。后續(xù)因接口數(shù)量越來(lái)越多,case越來(lái)越多,所以我們基于Pytest框架,新開(kāi)發(fā)了一套支持并發(fā)執(zhí)行用例的框架:Pytest + Request + Yaml + Allure,以便提高case執(zhí)行效率。
此處提醒大家,做接口自動(dòng)化時(shí)需要依據(jù)具體項(xiàng)目,擇優(yōu)選擇。比如業(yè)務(wù)邏輯、case數(shù)量、執(zhí)行效率、編寫(xiě)難易度、可復(fù)用性等等進(jìn)行考慮。如果后續(xù)使用過(guò)程中再更換框架,會(huì)導(dǎo)致工作量增加,所以在最初選擇框架時(shí)盡可能選擇一套適合項(xiàng)目的框架。
03微服務(wù)測(cè)試的思考與實(shí)踐
商城最初開(kāi)發(fā)時(shí)為一個(gè)整體服務(wù),后續(xù)進(jìn)行了微服務(wù)的拆分,每個(gè)服務(wù)運(yùn)行在其獨(dú)立的進(jìn)程中,服務(wù)與服務(wù)之間采用輕量級(jí)的通信機(jī)制互相溝通(通常是基于 HTTP 的 Restful API)。針對(duì)商城微服務(wù)的拆分,我們做了調(diào)研,測(cè)試策略進(jìn)行了變更,針對(duì)各個(gè)服務(wù)內(nèi)部接口進(jìn)行了自動(dòng)化測(cè)試,測(cè)的更細(xì),了解的內(nèi)部邏輯也變得更多更全。
04持續(xù)集成實(shí)施與推動(dòng)
持續(xù)集成對(duì)于整個(gè)團(tuán)隊(duì)來(lái)說(shuō),好處與挑戰(zhàn)并行。頻繁部署、快速交付以及開(kāi)發(fā)測(cè)試流程自動(dòng)化都將成為未來(lái)軟件工程的重要組成部分。軟件個(gè)人開(kāi)發(fā)的部分和測(cè)試腳本部分向軟件整體部分交付,頻繁進(jìn)行集成以便更快地發(fā)現(xiàn)其中的錯(cuò)誤。我們的初衷,提高版本迭代效率,及時(shí)發(fā)現(xiàn)問(wèn)題,隨時(shí)隨地可交付。
在接口自動(dòng)化運(yùn)行比較穩(wěn)定的時(shí)候下,我們推進(jìn)了CI的實(shí)施,推動(dòng)開(kāi)發(fā)進(jìn)行單測(cè),將接口測(cè)試、代碼覆蓋率、代碼監(jiān)控引入CI中,代碼覆蓋率作為測(cè)試度量指標(biāo)之一,輔助我們進(jìn)行測(cè)試。后續(xù)計(jì)劃將增量代碼覆蓋率引進(jìn)來(lái)。我們的持續(xù)集成流程包括:代碼push、構(gòu)建、單測(cè)、靜態(tài)代碼掃描、部署、接口測(cè)試、郵件通知。
總結(jié)下CI需要具備:
全面的自動(dòng)化測(cè)試:這是實(shí)踐持續(xù)集成與持續(xù)部署的基礎(chǔ),同時(shí),選擇合適的自動(dòng)化測(cè)試工具也很重要;
版本控制工具:如 Git,SVN等;
自動(dòng)化的構(gòu)建和軟件發(fā)布流程的工具,如 Jenkins等;
反饋機(jī)制:如構(gòu)建/測(cè)試的失敗,可以快速地反饋到相關(guān)負(fù)責(zé)人,以盡快解決達(dá)到一個(gè)更穩(wěn)定的版本,目前我們是通過(guò)郵件進(jìn)行通知。
詳細(xì)可參考文章《服務(wù)端持續(xù)集成實(shí)戰(zhàn)》,或在搜狗測(cè)試公眾號(hào)中輸入相關(guān)內(nèi)容,獲取相關(guān)信息。
05總結(jié)
從我的角度出發(fā),總結(jié)了一下作為測(cè)試人員在日常工作中需要注意的事項(xiàng):
用例設(shè)計(jì):設(shè)計(jì)合理性,具有結(jié)構(gòu)化以及覆蓋完整性,在工作中可能會(huì)遇到用例設(shè)計(jì)后,他人來(lái)執(zhí)行的情況,所以要保證我們的測(cè)試用例是完整有效的。另外服務(wù)端的測(cè)試,對(duì)于產(chǎn)品需求及業(yè)務(wù)邏輯是需要極為熟悉的,這樣才能更有效的進(jìn)行相關(guān)測(cè)試。
bug提交和跟蹤:剛開(kāi)始提交bug時(shí),復(fù)現(xiàn)過(guò)程描述不完善,導(dǎo)致開(kāi)發(fā)總是來(lái)詢(xún)問(wèn),耽誤時(shí)間,所以在提交時(shí),要盡可能地將復(fù)現(xiàn)流程描述清楚,方便開(kāi)發(fā)進(jìn)行重現(xiàn)修復(fù)。
bug總結(jié):要善于進(jìn)行bug總結(jié),以及聽(tīng)取他人的bug總結(jié),吸取經(jīng)驗(yàn),盡可能避免后續(xù)測(cè)試過(guò)程中漏測(cè)情況的發(fā)生。
執(zhí)行力和反饋:有計(jì)劃的進(jìn)行測(cè)試,測(cè)試時(shí)間也需要預(yù)留一部分時(shí)間,防止突發(fā)情況的產(chǎn)生,如果覺(jué)得不能夠按時(shí)完成的一定要及時(shí)反饋給老大,方便協(xié)調(diào),否則可能會(huì)導(dǎo)致項(xiàng)目延期上線。在工作中,盡可能做到凡事有交代,件件有著落,事事有回音。
時(shí)間管理能力:每周將下一周的任務(wù)計(jì)劃好,每天將自己的時(shí)間安排好,然后按照計(jì)劃來(lái)做,每天下班前總結(jié)下今日的工作及學(xué)習(xí),如若完不成,分析原因和改進(jìn)。
溝通能力:與開(kāi)發(fā)、產(chǎn)品、設(shè)計(jì)、老大、同事等都需要溝通,有效的溝通往往會(huì)事半功倍,記得之前溝通過(guò)程中,理解錯(cuò)意思,也沒(méi)繼續(xù)詢(xún)問(wèn),產(chǎn)生了歧義,耽誤了后續(xù)任務(wù)的進(jìn)行,想說(shuō)的是,一定要溝通清楚,不能怕問(wèn),這樣才能更好的開(kāi)展工作。
學(xué)習(xí)能力:保持學(xué)習(xí)能力,不斷擴(kuò)大知識(shí)面,盡可能避免做一個(gè)只會(huì)點(diǎn)點(diǎn)點(diǎn)的測(cè)試。
不斷的總結(jié)和改進(jìn):工作中需要不斷總結(jié),然后分析原因和改進(jìn),這樣進(jìn)步的會(huì)特別快。
分享:分享的前提是學(xué)習(xí)、總結(jié),在分享時(shí)可能會(huì)得到一些極好的建議,同時(shí)也可能幫助他人解決困境,知識(shí)總是共享的。
思考力:多思考,這是我一直所欠缺的,總結(jié)了一下,除了自己知識(shí)匱乏,欠缺思考力。最近在看《麥肯錫思維》,其中很重要的一條原理叫做金字塔原理,它的核心是層次化思考、邏輯化思考、結(jié)構(gòu)化思考,懂得正確的思考方法,會(huì)讓你更有職場(chǎng)競(jìng)爭(zhēng)力。有需要的也可以看一下哦。
頁(yè):
[1]