先說結(jié)論:一定要會一門語言!

接下來分別從以下幾個(gè)方面進(jìn)行討論和交流。

一、自動(dòng)化測試的學(xué)習(xí)思路;

二、如何成為一名優(yōu)秀的軟件測試工程師;

三、自動(dòng)化測試學(xué)習(xí)資料分享。

首先咱們先說第一個(gè),自動(dòng)化測試的學(xué)習(xí)思路

因?yàn)榍懊嬖蹅円惨呀?jīng)說過,要做自動(dòng)化測試,是一定要會語言的,為什么呢,因?yàn)樽詣?dòng)化測試是建立在腳本的基礎(chǔ)上的。那么說,具體的學(xué)習(xí)思路是什么樣的呢?

1、學(xué)習(xí)編程語言(java或者Python,建議Python)

2、學(xué)習(xí)Web基礎(chǔ)(HTML,HTTP,CSS,DOM,Java)

3、學(xué)習(xí)自動(dòng)化測試工具

4、學(xué)習(xí)自動(dòng)化測試框架

5、 實(shí)現(xiàn)自動(dòng)化測試用例

6、開發(fā)自動(dòng)化測試工具

7、開發(fā)自動(dòng)化測試框架

首先的,要學(xué)會Python基礎(chǔ)語法、函數(shù)、類與對象、單元測試、日志模塊、SMTP等。

如果你不是零基礎(chǔ),這個(gè)需要學(xué)習(xí),為你之后自己動(dòng)手寫框架奠定好的代碼基礎(chǔ)。

如果你是零基礎(chǔ),這個(gè)更需要學(xué)習(xí),沒有這些基礎(chǔ),你的自動(dòng)化框架也會搭建的不穩(wěn)固!

其次,要學(xué)會接口自動(dòng)化、DDT、Jenkins平臺搭建以及接口自動(dòng)化Jenkins集成平臺等。

最后呢,要掌握WEB自動(dòng)化、selenium、Pageobject、RobotFramework、Jenkins集成平臺等。

簡單的說了如果從自動(dòng)化的思路去成為一個(gè)優(yōu)秀的軟件測試人員,具體自動(dòng)化該怎樣去學(xué)習(xí),在這里就不贅述了,其他問題下我會回復(fù)這個(gè)問題。下面咱們聊一聊怎么才能從一個(gè)小白成長為一個(gè)優(yōu)秀的測試人員。

二、如何成為一名優(yōu)秀的軟件測試工程師

首先要說,做軟件測試不難,難的是做好軟件測試。

結(jié)合自己8年的工作經(jīng)驗(yàn),自己也總結(jié)出來8各方面的能力,可能有些方面感覺要求暫時(shí)還達(dá)不到,但這些確實(shí)是做軟件測試工作所必備的能力,掌握了這8個(gè)方面的能力,你就成為了一名優(yōu)秀的軟件測試工程師!

(一)、業(yè)務(wù)分析能力

1.分析整體業(yè)務(wù)流程

不了解整個(gè)公司的業(yè)務(wù),根本就沒辦法進(jìn)行測試

2.分析被測業(yè)務(wù)數(shù)據(jù)

了解整個(gè)業(yè)務(wù)里面所需的數(shù)據(jù)有哪些?哪些是需要用戶提供的?哪些是自己提供的?有哪些可以是假數(shù)據(jù)?有哪些必須是真數(shù)據(jù)?添加數(shù)據(jù)的時(shí)候可以用哪個(gè)庫?

明白了整個(gè)軟件的數(shù)據(jù)庫架構(gòu),才能知道哪一個(gè)數(shù)據(jù)是從哪一個(gè)表里頭帶出來的,它的邏輯是什么,有沒有連帶關(guān)系。

3.分析被測系統(tǒng)架構(gòu)

用什么語言開發(fā)的?用的是什么服務(wù)器?測試它的話需要用什么樣的環(huán)境進(jìn)行測試?整體的測試環(huán)境是什么樣的?

如果缺少了,需要進(jìn)行環(huán)境搭建,架構(gòu)搭建。一般去一家新公司之后,架構(gòu)是搭建好的,了解它即可,熟悉之前的這些老員工們使用什么樣的架構(gòu)去做的。

4.分析被測業(yè)務(wù)模塊

整個(gè)軟件有哪些模塊,比如說首頁面、注冊頁面、登錄頁面、會員頁面、商品詳情頁面、優(yōu)惠券頁面等等

明白有多少個(gè)模塊需要測試,每個(gè)模塊之間的連帶關(guān)系,進(jìn)而怎樣進(jìn)行人員分工

5.分析測試所需資源

我需要幾臺計(jì)算機(jī),需要幾部手機(jī),手機(jī)需要什么樣的系統(tǒng),什么樣的型號。

比如測一個(gè)網(wǎng)站的性能的時(shí)候,電腦的配置達(dá)不到測試并發(fā)5000人的標(biāo)準(zhǔn),要么升級電腦的硬件配置,要么多機(jī)聯(lián)合,多機(jī)聯(lián)合時(shí)需要幾臺電腦,都需要提前籌劃。

6.分析測試完成目標(biāo)

我的性能目標(biāo)是什么樣的?我的功能目標(biāo)是什么樣的?我要上線達(dá)到的上線標(biāo)準(zhǔn)是什么樣的?

性能目標(biāo),比如我要達(dá)到并發(fā)5000人的時(shí)候,CPU占用率不能高于70%,內(nèi)存占用率不能高于60%,響應(yīng)時(shí)間不能超過5秒

功能目標(biāo),比如整體的業(yè)務(wù)流程都跑通,所有的分支流程都沒有問題,所有的接口都能夠互相調(diào)用,整體的UI界面沒有問題,兼容性沒有問題等

把這些問題都弄清楚,測試的思路會非常的清晰

(二)、缺陷洞察能力

1.一般缺陷的發(fā)現(xiàn)能力

至少你要滿足一般缺陷的發(fā)現(xiàn)能力,這個(gè)是最基本的,如果要連最簡單的一般的缺陷都發(fā)現(xiàn)不了的話,別說優(yōu)秀測試工程師了,你說你是測試我都不信

2.隱性問題的發(fā)現(xiàn)能力

在軟件的測試過程當(dāng)中有一些缺陷藏的比較深,有的是性能方面的問題,有的是功能方面的問題,它需要有一些設(shè)定特定的條件的情況下才會出現(xiàn)這樣的問題。

比如說買雙鞋必須選擇的是什么品牌,必須選擇是紅顏色,必須選擇44號,而且必須選擇用特定的支付方式才會出現(xiàn)這樣的bug的時(shí)候,那么這種就屬于特別隱性的bug,對于這樣的問題的發(fā)現(xiàn)能力一定要比別人更強(qiáng),要找到一些別人可能發(fā)現(xiàn)不了的bug

3.發(fā)現(xiàn)連帶問題的能力

當(dāng)發(fā)現(xiàn)了一個(gè)缺陷之后,能夠想到通過這個(gè)缺陷可能會引發(fā)其他哪個(gè)地方出現(xiàn)問題,這就叫做連帶的問題。而不是說發(fā)現(xiàn)這一個(gè)bug之后提了這一個(gè)就算完了,一定要有一個(gè)察覺,可能其他地方也存在這樣的問題。

4.發(fā)現(xiàn)問題隱患的能力

有些軟件里邊可能有一些操作模塊,或者是代碼寫的接口,表面上沒有什么問題,但是它是有隱患的,比如說這個(gè)接口寫的不穩(wěn)定,當(dāng)他傳的數(shù)據(jù)有一些問題的時(shí)候,可能它最后返回的結(jié)果就是報(bào)錯(cuò)就是報(bào)404或者報(bào)亂碼。

5.盡早發(fā)現(xiàn)問題的能力

如果你只能停留在界面級別的話,那你根本就沒有辦法達(dá)到盡早發(fā)現(xiàn)問題的這個(gè)能力

你必須要等到前端人員把每個(gè)界面都做好了之后才能進(jìn)入測試,而我能比你早一個(gè)月進(jìn)入測試了,然后我比你結(jié)束測試時(shí)間快一個(gè)月,而你又比我晚一個(gè)月,那么咱倆的薪資一下就拉開了

6.發(fā)現(xiàn)問題根源的能力

需要知道這個(gè)缺陷它到底是由什么原因產(chǎn)生的,是屬于什么類型的缺陷,是ui前端人員做的問題,還是后臺接口人員做的問題?

不僅要找到這個(gè)bug,還要知道這個(gè)bug產(chǎn)生的原因,這樣的測試人員是非常棒的,而且很是受人尊敬,提bug的方式也就不一樣了

(三)、團(tuán)隊(duì)協(xié)作能力

1.合理進(jìn)行人員分工

合理的進(jìn)行人員分工是提高效率的重要保證

2.協(xié)助組員解決問題

比如說測試在趕進(jìn)度,或者這個(gè)軟件項(xiàng)目的質(zhì)量把控是一個(gè)團(tuán)隊(duì)來把控的,協(xié)助組員解決問題就顯得尤為關(guān)鍵

3.配合完成測試任務(wù)

一個(gè)團(tuán)隊(duì)里邊的人員分工,他們的任務(wù)都是不一樣的,這就是咱們說的配合。你的東西做完了,要輪到我了,我的性能測完了之后該輪到你了,所以整個(gè)的一個(gè)流程下來之后,大家應(yīng)該是各司其職,配合得非常緊密的一個(gè)過程

4.配合開發(fā)重現(xiàn)缺陷

我給你提bug,你改我的bug,咱們的目的只有一個(gè),就是讓這個(gè)軟件變得更好,所以在這樣的情況下,咱們就一定要配合開發(fā)

5.督促項(xiàng)目整體進(jìn)度

既然是一個(gè)團(tuán)隊(duì)協(xié)作的過程,就一定要互相的去督促對方,包括督促開發(fā)去改bug,因?yàn)殚_發(fā)人員他們有時(shí)候工作很忙,他們不知道要先改哪些問題,要后改哪些問題,但是往往有一些缺陷,它影響了測試的這個(gè)時(shí)間,影響了測試的進(jìn)度,那么這個(gè)時(shí)候就需要測試員去督促開發(fā)人員,讓他盡快的去解決你棘手的問題。這個(gè)東西能夠提高咱們的測試效率

6.出現(xiàn)問題勇于承擔(dān)

愿意背鍋的最后都成為了領(lǐng)導(dǎo),不愿意背鍋的最后依然是員工

(四)、專業(yè)技術(shù)能力

1.掌握測試基礎(chǔ)知識

基礎(chǔ)知識就是根基,根基打好了,你才能夠更有效地往后期發(fā)展,也就是為了以后的學(xué)習(xí)做一個(gè)鋪墊。如果根基都沒打好,功能測試不會,就想直接學(xué)性能,那性能是做不好的

2.嫻熟運(yùn)用測試工具

熟悉工具和熟練使用工具完全是兩個(gè)概念,熟悉工具基本上等同于不會,遇到過很多簡歷上寫會使用什么什么工具,都沒有實(shí)際能力。比如loadrunner只會一個(gè)簡單的錄制,增強(qiáng)一下腳本,覺得會用了,那知識會用了1/5,其他4/5 都不會。

3.了解工具操作原理

它是怎么樣給服務(wù)器發(fā)送請求的,是用什么樣的方式去發(fā)送請的,是用什么樣的方式去監(jiān)控的,它的操作原理是什么樣的,咱們要把這件事情搞清楚,這樣的話能有助于更好的去使用這些東西。包括一些請求的協(xié)議,每個(gè)協(xié)議代表什么意思,它是用來干什么的。

4.自主完成測試任務(wù)

一定要能夠自己完成一個(gè)獨(dú)立的內(nèi)容,獨(dú)立的工作,這件事情領(lǐng)導(dǎo)你交給我好了,放心我能給你搞定,要的是這樣的人

5.找出問題出現(xiàn)原因

找出缺陷的時(shí)候,不僅要看它的表面,還要看它的本質(zhì)

6.提供問題解決方案

發(fā)現(xiàn)問題不是能力,發(fā)現(xiàn)問題并提出解決方案才是真的能力

7.提供完整測試報(bào)告

測試報(bào)告能夠說明你表達(dá)的清不清楚?領(lǐng)導(dǎo)能不能看懂?還有就是能不能夠把你整個(gè)測試的過程給它梳理得非常詳細(xì),人家能夠通過你的報(bào)告,能夠了解到整個(gè)的項(xiàng)目的情況,而不是只了解一個(gè)片面的情況

8.了解相關(guān)技術(shù)領(lǐng)域

觸類旁通

(五)、邏輯思考能力

1.判斷邏輯的正確性

面試官也經(jīng)常會給測試人去出一些邏輯題,邏輯題能夠分析出來你這個(gè)人思維有沒有?活躍不活躍?還有他的維度,包括他想的問題的全面性,都能夠判斷得出來。

比如說去買一樣商品,它的里邊邏輯就會經(jīng)常會出現(xiàn)很多問題,比如說它的會員的級別,什么樣的級別去買什么樣的商品,它的價(jià)格不一樣,什么情況下會給優(yōu)惠券,什么樣的情況下不給優(yōu)惠券?達(dá)到多少錢的情況下才能夠使用優(yōu)惠券?如果說這里邊的邏輯出現(xiàn)了問題的話,那么整個(gè)的業(yè)務(wù)不用再測了

2.對可行性邏輯分析

要去測一個(gè)網(wǎng)站的邏輯的時(shí)候,一定要先思考這一個(gè)業(yè)務(wù)流程可能會涉及到哪些邏輯,這些邏輯哪些是可行的,有些是正向邏輯,有些是逆向邏輯,都要考慮全面,而不是說只是把正向的邏輯測試全面了,逆向邏輯不考慮。其實(shí)往往更容易出錯(cuò)的地方就是逆向邏輯

3.思維導(dǎo)圖梳理思路

思維導(dǎo)圖工具能夠起到什么作用,能夠讓你更有效的進(jìn)行測試,能夠讓你的思路更清晰

4.站在客觀角度思考

去測試的時(shí)候,不要僅僅只是站在測試人員的角度上去對整個(gè)網(wǎng)站進(jìn)行測試,還更多的要站在用戶的角度,要替用戶考慮

(六)、問題解決能力

1.技術(shù)上的問題

把自己的個(gè)人能力提升起來,多跟別人虛心請教,多去自己想辦法解決問題

2.工作中的問題

在任何的企業(yè)里邊去工作,肯定會遇到一些工作當(dāng)中的一些不愉快的事情,而不是什么事情都會讓你很順心。所以要去處理工作上的一些不順心的事情,不要把它帶到你的工作上,或者是你的生活上,盡可能的去跟別人溝通,去解決這個(gè)工作上遇到的麻煩

3.同事間的問題

在工作當(dāng)中可能會涉及到跟開發(fā)人員的溝通,跟產(chǎn)品人員的溝通,跟ui人員的溝通,跟這三方的人員去溝通的時(shí)候,就要用不同的溝通方式

4.領(lǐng)導(dǎo)層的問題

如果你覺得你的領(lǐng)導(dǎo)不好,或者說你覺得對你的領(lǐng)導(dǎo)一些建議,不要的去跟同事之間去說他壞話或者怎么樣的,領(lǐng)導(dǎo)需要的是解決問題的人,而不是制造問題的人

(七)、溝通表達(dá)能力

1.和技術(shù)人員的溝通

跟開發(fā)人員闡述缺陷時(shí)要簡潔明了、清晰易懂。當(dāng)發(fā)現(xiàn)嚴(yán)重缺陷時(shí),也不要大驚小怪,要站在開發(fā)人員的角度思考如何解決問題。而不是踩在開發(fā)頭上,炫耀自己發(fā)現(xiàn)問題的能力。

2.和產(chǎn)品人員的溝通

當(dāng)對產(chǎn)品提出意見時(shí),要站在用戶的角度去說明自己的想法,而不要主觀認(rèn)為不好而要求產(chǎn)品進(jìn)行修改。

3.和上級領(lǐng)導(dǎo)的溝通

跟領(lǐng)導(dǎo)溝通時(shí)要有大局觀,不能只考慮自己部門的情況。并且與領(lǐng)導(dǎo)溝通時(shí),盡量直奔主題,不要拐彎抹角,當(dāng)與領(lǐng)導(dǎo)意見不一致時(shí),也不要直接反駁,應(yīng)該先給予認(rèn)可,再闡述自己的想法。

4.在集體會議中溝通

在集體會議中不要一味的突出自己的個(gè)人能力,不要當(dāng)話癆,也不要默默無聞。適當(dāng)?shù)奶岢鲆恍┳约旱囊娊?,有助于讓大家更加重視你的存在。切記不要在多人會議中,去指責(zé)別人和推卸問題。各個(gè)部門的同事,都要面子~

5.與下級員工的溝通

與下級溝通時(shí)不要擺高姿態(tài),不要讓下級產(chǎn)生畏懼感,應(yīng)該更多的為下級解決問題。服務(wù)好部門的同事,才能更好的產(chǎn)生凝聚力。

(八)、宏觀把控能力

1.有效控制測試時(shí)間

測試周期的時(shí)間控制,應(yīng)當(dāng)采取多種方法去衡量,例如人員能力,人員數(shù)量,項(xiàng)目復(fù)雜程度,同類項(xiàng)目的測試經(jīng)驗(yàn)等多方面去衡量。

2.有效控制測試成本

測試成本指的是人員成本跟時(shí)間成本,不要浪費(fèi)每個(gè)人的時(shí)間跟勞動(dòng)力,要讓每個(gè)人充分發(fā)揮最大的價(jià)值。

3.有效制定測試計(jì)劃

測試計(jì)劃對于一個(gè)項(xiàng)目是核心關(guān)鍵,它的存在為了讓測試進(jìn)行中有依據(jù)可查。所以測試計(jì)劃,一定要切合實(shí)際情況,要經(jīng)過思考和衡量最后得出計(jì)劃安排。

4.有效控制組員情緒

組員的情緒可以直接影響測試進(jìn)度跟測試的質(zhì)量,當(dāng)有組員出現(xiàn)思想問題時(shí),應(yīng)當(dāng)及時(shí)溝通,采取一些必要的措施去解決問題。而不能裝看不見。

5.有效進(jìn)行風(fēng)險(xiǎn)評估

任何項(xiàng)目在進(jìn)行期間都存在許多潛在的風(fēng)險(xiǎn),例如,人員離職,生病請假,業(yè)務(wù)變更,需求變更,服務(wù)器或其他組件故障等。應(yīng)當(dāng)提前做出相應(yīng)的解決方案,以免到時(shí)候手忙腳亂。

6.有效控制測試方向

測試的方向是指測試的目標(biāo)和測試的范圍,很多項(xiàng)目的測試是有針對性的,例如性能測試,所以在測試中,一定要隨時(shí)清楚測試的目標(biāo)和目的是什么,以免把時(shí)間浪費(fèi)在無關(guān)緊要的業(yè)務(wù)上。