發(fā)布時(shí)間:2021-12-27 11:10:31來(lái)源:轉(zhuǎn)載
技術(shù)新人如何學(xué)習(xí)自動(dòng)化測(cè)試?傳統(tǒng)軟件使用較多的是瀑布模型。測(cè)試人員的活動(dòng)區(qū)域是有限的,活動(dòng)的時(shí)間區(qū)域主要是提測(cè)至上線前。傳統(tǒng)瀑布模型中,QA發(fā)揮的空間比較有限,質(zhì)量壓力都集中在測(cè)試階段。隨著軟件規(guī)模的擴(kuò)大、部門(mén)職能的劃分、敏捷迭代模式的發(fā)展,互聯(lián)網(wǎng)或者大型軟件項(xiàng)目絕大部分演變成了DevOps:
DevOps是軟件文化上的一次飛躍,它強(qiáng)調(diào)產(chǎn)品、開(kāi)發(fā)、測(cè)試、交付、運(yùn)維各個(gè)環(huán)節(jié)的溝通合作,將敏捷的方式延伸到整個(gè)產(chǎn)品。從QA的角度也有了測(cè)試左移和測(cè)試右移的概念。
測(cè)試左移:
測(cè)試左移的思想是需求階段、開(kāi)發(fā)架構(gòu)設(shè)計(jì)階段或是未到系統(tǒng)測(cè)試或集成測(cè)試前就進(jìn)行測(cè)試,目標(biāo)是降低時(shí)間成本、減少風(fēng)險(xiǎn),從用戶角度描述產(chǎn)品行為、從技術(shù)角度建立好開(kāi)發(fā)與產(chǎn)品需求的連接,防止產(chǎn)品設(shè)計(jì)上的雷或缺陷。這有利于減少無(wú)效代碼的開(kāi)發(fā)、以投入更好的時(shí)間在正確的產(chǎn)品上。也可以在代碼編寫(xiě)階段進(jìn)行單元測(cè)試或覆蓋率統(tǒng)計(jì)。
日常工作中,QA都期望只對(duì)修改的代碼或受連帶影響功能/需求進(jìn)行測(cè)試,從而減少重復(fù)回歸的工作量,即“精準(zhǔn)測(cè)試”。但是實(shí)際上,往往得到開(kāi)發(fā)同學(xué)的回復(fù)要么是“較好全回歸或者核心流程全回歸”,要么“是沒(méi)關(guān)系的,就回歸下A功能就好”(實(shí)際可能已經(jīng)帶雷上線了)。設(shè)想如果能夠有個(gè)工具能夠幫我們將需求與相關(guān)的代碼調(diào)用棧聯(lián)系起來(lái),在相關(guān)代碼依賴變動(dòng)時(shí)都能夠自動(dòng)評(píng)估有效回歸范圍,可能是“精準(zhǔn)測(cè)試”實(shí)現(xiàn)的一個(gè)方向(我相信業(yè)界應(yīng)該已經(jīng)有人在做了)。
測(cè)試右移:
測(cè)試右移簡(jiǎn)單來(lái)說(shuō)是指產(chǎn)品上線以后開(kāi)展的一系列質(zhì)量活動(dòng)。事實(shí)證明,在迭代以及產(chǎn)品復(fù)雜化、多樣化的今天,幾乎不可能做到0缺陷上線,當(dāng)然,對(duì)硬件產(chǎn)品或涉及資金的產(chǎn)品而言,存在缺陷可能意味著產(chǎn)品召回或是資損,會(huì)給公司帶來(lái)巨大損失,對(duì)于某些互聯(lián)網(wǎng)產(chǎn)品而言,由于產(chǎn)品發(fā)布的天然優(yōu)勢(shì),一般具備熱修復(fù)、熱發(fā)布能力,因此在時(shí)間和產(chǎn)品質(zhì)量維度,可能會(huì)更強(qiáng)調(diào)上線,比如facebook就提倡灰度上線。因而如何監(jiān)控產(chǎn)品的穩(wěn)定性、第一時(shí)間發(fā)現(xiàn)線上用戶問(wèn)題、用戶反饋并使問(wèn)題及時(shí)得到解決、如何了解更好的用戶需求(如AB測(cè)試)變成了QA在測(cè)試右移活動(dòng)中的關(guān)注點(diǎn)。期間也有大量自動(dòng)化測(cè)試可發(fā)揮的空間。
QA做自動(dòng)化測(cè)試應(yīng)該掌握哪些技術(shù)?
說(shuō)到具體的技術(shù),其它回復(fù)也有提到,感覺(jué)整體太散了,初學(xué)者可能有點(diǎn)摸不到邊,不知從哪里開(kāi)始,個(gè)人建議順序是這樣的:
軟件工程&測(cè)試?yán)碚摶A(chǔ)
各個(gè)公司產(chǎn)品形態(tài)迥異,因此也制定了不同的軟件研發(fā)流程。大多數(shù)大公司都設(shè)置有運(yùn)營(yíng)、產(chǎn)品、視覺(jué)/交互、開(kāi)發(fā)、測(cè)試、運(yùn)維、技術(shù)支持、客服等崗位,應(yīng)當(dāng)明白各個(gè)角色的職責(zé),以及了解整個(gè)產(chǎn)品運(yùn)轉(zhuǎn)的邏輯。至少應(yīng)該了解所在公司的研發(fā)流程以及當(dāng)前主流的研發(fā)流程(如敏捷開(kāi)發(fā)Scrum),并在項(xiàng)目過(guò)程中積極思考,形成自身的軟件意識(shí)與理念。在校的同學(xué)可以多在網(wǎng)上找找資料,有個(gè)大概了解。個(gè)人理解,軟件工程本身是一個(gè)浩大的工程,也在日新月異不斷地向前發(fā)展,它需要長(zhǎng)期積累、不斷修煉內(nèi)功,并在實(shí)際項(xiàng)目中實(shí)踐驅(qū)動(dòng),從業(yè)2年、5年、10年、20年都會(huì)有不同層次/深度的理解,自動(dòng)化測(cè)試亦是如此。
關(guān)于測(cè)試?yán)碚摶A(chǔ)這里不贅述了,網(wǎng)上資料一大把,搜白盒/黑盒、等價(jià)類(lèi)、邊界值等關(guān)鍵字就可以找到。
通用計(jì)算機(jī)基礎(chǔ)(其實(shí)就是計(jì)算機(jī)專(zhuān)業(yè)相關(guān)的大學(xué)課程)
建議至少掌握一門(mén)編程語(yǔ)言(C/C++/Java/Python,推薦Python,學(xué)習(xí)成本相對(duì)更簡(jiǎn)單一些)。相比于特定需求/領(lǐng)域的開(kāi)發(fā)人員來(lái)說(shuō),測(cè)試人員對(duì)編碼技術(shù)要求相對(duì)會(huì)弱化一些(當(dāng)然并不意味著不需要極客精神、架構(gòu)思想)。涉及到Web、桌面GUI、Android/iOS的可以到具體應(yīng)用再學(xué)習(xí)相應(yīng)的框架。
掌握基本的數(shù)據(jù)結(jié)構(gòu)以及在具體程序語(yǔ)言中的應(yīng)用,例如:list、map。
掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想。
掌握一種代碼管理工具,如git、svn。
掌握Linux的使用及基本命令使用,如:cp、grep、vi/vim等。
掌握關(guān)系數(shù)據(jù)庫(kù)的基本理論和關(guān)系數(shù)據(jù)庫(kù)(如MySQL)SQL基本使用、NoSQL(如Redis)的基本使用。
掌握基礎(chǔ)的計(jì)算機(jī)網(wǎng)絡(luò)理論,如TCP/UDP協(xié)議、IP劃分。
更多培訓(xùn)課程: 無(wú)錫軟件測(cè)試 更多學(xué)校信息: 無(wú)錫新區(qū)寶龍達(dá)內(nèi)IT教育培訓(xùn) 咨詢電話: