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