【测试】优秀软件测试工程师必备的8个能力
?作為一名軟件工程師,需要的能力并不多,但是要成為一名優(yōu)秀的軟件測試工程師,需要的能力就比較多了。
一、業(yè)務(wù)分析能力
1、分析整體業(yè)務(wù)流程
????????不了解整個公司的業(yè)務(wù),根本就沒辦法進行測試。
2、分析被測業(yè)務(wù)數(shù)據(jù)
了解整個業(yè)務(wù)里面所需的數(shù)據(jù)有哪些?哪些是需要用戶提供的?哪些是自己提供的?有哪些可以是假數(shù)據(jù)?有哪些必須是真數(shù)據(jù)?添加數(shù)據(jù)的時候可以用哪個庫?
明白了整個軟件的數(shù)據(jù)庫架構(gòu),才能知道哪一個數(shù)據(jù)是從哪一個表里頭帶出來的,它的邏輯是什么,有沒有連帶關(guān)系。
3、分析被測系統(tǒng)架構(gòu)
用什么語言開發(fā)的?用的是什么服務(wù)器?測試它的話需要用什么樣的環(huán)境進行測試?整體的測試環(huán)境是什么樣的?
如果缺少了,需要進行環(huán)境搭建,架構(gòu)搭建。一般去一家新公司之后,架構(gòu)是搭建好的,了解它即可,熟悉之前的這些老員工們使用什么樣的架構(gòu)去做的。
4、分析被測業(yè)務(wù)模塊
整個軟件有哪些模塊,比如說首頁面、注冊頁面、登錄頁面、會員頁面、商品詳情頁面、優(yōu)惠券頁面等等。
明白有多少個模塊需要測試,每個模塊之間的連帶關(guān)系,進而怎樣進行人員分工。
5、分析測試所需資源
我需要幾臺計算機,需要幾部手機,手機需要什么樣的系統(tǒng),什么樣的型號。
比如測一個網(wǎng)站的性能時,電腦的配置達(dá)不到測試并發(fā)5000人的標(biāo)準(zhǔn),要么升級電腦的硬件配置,要么多機聯(lián)合,多機聯(lián)合時需要幾臺電腦,都需要提前籌劃。
6、分析測試完成目標(biāo)
我的性能目標(biāo)是什么樣的?我的功能目標(biāo)是什么樣的?我要上線達(dá)到的上線標(biāo)準(zhǔn)是什么樣的?
性能目標(biāo),比如我要達(dá)到并發(fā)5000人的時候,CPU占用率不能高于70%,內(nèi)存占用率不能高于60%,響應(yīng)時間不能超過5秒。
功能目標(biāo),比如整體的業(yè)務(wù)流程都跑通,所有的分支流程都沒有問題,所有的接口都能夠互相調(diào)用,整體的UI界面沒有問題,兼容性沒有問題等。
把這些問題都弄清楚,測試的思路會非常清晰。
二、缺陷洞察能力
1、一般缺陷的發(fā)現(xiàn)能力
至少你要滿足一般缺陷的發(fā)現(xiàn)能力,這個是最基本的,如果要連最簡單的一般的缺陷都發(fā)現(xiàn)不了的話,別說優(yōu)秀測試工程師了,你說你是測試我都不信。
2、隱性問題的發(fā)現(xiàn)能力
在軟件的測試過程當(dāng)中有一些缺陷藏的比較深,有的是性能方面的問題,有的是功能方面的問題,它需要有一些設(shè)定特定的條件的情況下才會出現(xiàn)這樣的問題。
比如說買雙鞋必須選擇的是什么品牌,必須選擇是紅顏色,必須選擇44號,而且必須選擇用特定的支付方式才會出現(xiàn)這樣的bug的時候,那么這種就屬于特別隱性的bug,對于這樣的問題的發(fā)現(xiàn)能力一定要比別人更強,要找到一些別人可能發(fā)現(xiàn)不了的bug。
3、發(fā)現(xiàn)連帶問題的能力
當(dāng)發(fā)現(xiàn)了一個缺陷之后,能夠想到通過這個缺陷可能會引發(fā)其它哪個地方出現(xiàn)問題,這就叫做連帶的問題。而不是說發(fā)現(xiàn)這一個bug之后提了,這一個就算完了,一定要有一個察覺,可能其它地方也存在這樣的問題。
4、發(fā)現(xiàn)問題隱患的能力
有些軟件里邊可能有一些操作模塊,或者是代碼寫的接口,表面上沒有什么問題,但是它是有隱患的,比如說這個接口寫的不穩(wěn)定,當(dāng)他傳的數(shù)據(jù)有一些問題的時候,可能它最后返回的結(jié)果就是報錯,就是報404或者報亂碼。
5、盡早發(fā)現(xiàn)問題的能力
如果你只能停留在界面級別的話,那你根本就沒有辦法達(dá)到盡早發(fā)現(xiàn)問題的這個能力。
你必須要等到前端人員把每個界面都做好了之后才能進入測試,而我能比你早一個月進入測試了,然后我比你結(jié)束測試時間快一個月,而你又比我晚一個月,那么咱倆的薪資一下就拉開了。
6、發(fā)現(xiàn)問題根源的能力
需要知道這個缺陷它到底是由什么原因產(chǎn)生的,是屬于什么類型的缺陷,是UI前端人員做的問題,還是后臺接口人員做的問題?
不僅要找到這個bug,還要知道這個bug產(chǎn)生的原因,這樣的測試人員是非常棒的,而且很是受人尊敬,提bug的方式也就不一樣了。
三、團隊協(xié)作能力
1、合理進行人員分工
合理的進行人員分工是提高效率的重要保證。
2、協(xié)助組員解決問題
比如說測試在趕進度,或者這個軟件項目的質(zhì)量把控是一個團隊來把控的,協(xié)助組員解決問題就顯得尤為關(guān)鍵。
3、配合完成測試任務(wù)
一個團隊里邊的人員分工,他們的任務(wù)都是不一樣的,這就是咱們說的配合。你的東西做完了,要輪到我了,我的性能測完了之后該輪到你了,所以整個的一個流程下來之后,大家應(yīng)該是各司其職,配合得非常緊密的一個過程。
4、配合開發(fā)重現(xiàn)缺陷
我給你提bug,你改我的bug,咱們的目的只有一個,就是讓這個軟件變得更好,所以在這樣的情況下,咱們就一定要配合開發(fā)。
5、督促項目整體進度
既然是一個團隊協(xié)作的過程,就一定要互相督促對方,包括督促開發(fā)去改bug,因為開發(fā)人員有時候工作很忙,他們不知道要先改哪些問題,要后改哪些問題,但是往往有一些缺陷,它影響了測試的這個時間,影響了測試的進度,那么這個時候就需要測試員去督促開發(fā)人員,讓他盡快去解決你棘手的問題。這個東西能夠提高咱們的測試效率。
6、出現(xiàn)問題勇于承擔(dān)
愿意背鍋的最后都成為了領(lǐng)導(dǎo),不愿意背鍋的最后依然是員工。
四、專業(yè)技術(shù)能力
1、掌握測試基礎(chǔ)知識
基礎(chǔ)知識就是根基,根基打好了,你才能夠更有效地往后期發(fā)展,也就是為了以后的學(xué)習(xí)做一個鋪墊。如果根基都沒打好,功能測試不會,就想直接學(xué)性能,那性能是做不好的。
2、嫻熟運用測試工具
熟悉工具和熟練使用工具完全是兩個概念。熟悉工具基本上等同于不會,遇到過很多簡歷上寫會使用什么什么工具,都沒有實際能力。比如loadrunner只會一個簡單的錄制,增強一下腳本,覺得會用了,那知識會用了1/5,其它4/5 都不會。
3、了解工具操作原理
它是怎么樣給服務(wù)器發(fā)送請求的,是用什么樣的方式去發(fā)送請求的,是用什么樣的方式去監(jiān)控的,它的操作原理是什么樣的,咱們要把這件事情搞清楚,這樣的話能有助于更好地去使用這些東西。包括一些請求的協(xié)議,每個協(xié)議代表什么意思,它是用來干什么的。
4、自主完成測試任務(wù)
一定要能夠自己完成一個獨立的內(nèi)容,獨立的工作,這件事情領(lǐng)導(dǎo)交給你,就放心了。
5、找出問題出現(xiàn)原因
找出缺陷的時候,不僅要看它的表面,還要看它的本質(zhì)。
6、提供問題解決方案
發(fā)現(xiàn)問題不是能力,發(fā)現(xiàn)問題并提出解決方案才是真的能力。
7、提供完整測試報告
測試報告能夠說明你表達(dá)的清楚與否?領(lǐng)導(dǎo)能不能看懂?能不能把你整個測試的過程給他梳理得非常詳細(xì),人家能夠通過你的報告,能夠了解到整個項目的情況,而不是只了解一個片面的情況。
8、了解相關(guān)技術(shù)領(lǐng)域
觸類旁通。
五、邏輯思考能力
1、判斷邏輯的正確性
面試官也經(jīng)常會給測試人員出一些邏輯題,邏輯題能夠分析出來你這個人思維有沒有?活躍不活躍?還有你的維度,包括你想的問題的全面性,都能夠判斷出來。
比如說去買一樣商品,它里邊的邏輯就會經(jīng)常出現(xiàn)很多問題,會員的級別,什么樣的級別去買什么樣的商品,價格不一樣,什么情況下會給優(yōu)惠券,什么樣的情況下不給優(yōu)惠券?達(dá)到多少錢的情況下才能夠使用優(yōu)惠券?如果說這里邊的邏輯出現(xiàn)問題的話,那么整個的業(yè)務(wù)不用再測了。
2、對可行性邏輯分析
要去測一個網(wǎng)站的邏輯,一定要先思考這一個業(yè)務(wù)流程可能會涉及到哪些邏輯,這些邏輯哪些是可行的,有些是正向邏輯,有些是逆向邏輯,都要考慮全面,而不是說只是把正向的邏輯測試全面了,逆向邏輯不考慮。其實往往更容易出錯的地方就是逆向邏輯。
3、思維導(dǎo)圖梳理思路
思維導(dǎo)圖工具能夠起到什么作用?能夠讓你更有效的進行測試,能夠讓你的思路更清晰。? ??
4、站在客觀角度思考
去測試的時候,不要僅僅只是站在測試人員的角度上去對整個網(wǎng)站進行測試,還更多的要站在用戶的角度,要替用戶考慮。
六、問題解決能力
1、技術(shù)上的問題
把自己的個人能力提升起來,多跟別人虛心請教,多去自己想辦法解決問題。
2、工作中的問題
在任何企業(yè)里工作,肯定會遇到一些工作當(dāng)中的一些不愉快的事情,而不是什么事情都會讓你很順心。所以要去處理工作上的一些不順心的事情,不要把它帶到你的工作上,或者是你的生活上,盡可能去跟別人溝通,去解決這個工作上遇到的麻煩。
3、同事間的問題
在工作中可能會涉及到跟開發(fā)人員的溝通,跟產(chǎn)品人員的溝通,跟UI人員的溝通,跟這三方的人員去溝通的時候,就要用不同的溝通方式。
4、領(lǐng)導(dǎo)層的問題
如果你覺得你的領(lǐng)導(dǎo)不好,或者說你覺得對你的領(lǐng)導(dǎo)一些建議,不要跟同事說他的壞話或者怎么樣的,領(lǐng)導(dǎo)需要的是解決問題的人,而不是制造問題的人。
七、溝通表達(dá)能力
1、和技術(shù)人員的溝通
跟開發(fā)人員闡述缺陷時要簡潔明了、清晰易懂。當(dāng)發(fā)現(xiàn)嚴(yán)重缺陷時,也不要大驚小怪,要站在開發(fā)人員的角度思考如何解決問題。而不是踩在開發(fā)頭上,炫耀自己發(fā)現(xiàn)問題的能力。
2、和產(chǎn)品人員的溝通
當(dāng)對產(chǎn)品提出意見時,要站在用戶的角度去說明自己的想法,而不要主觀認(rèn)為不好而要求產(chǎn)品進行修改。
3、和上級領(lǐng)導(dǎo)的溝通
跟領(lǐng)導(dǎo)溝通時要有大局觀,不能只考慮自己部門的情況。并且與領(lǐng)導(dǎo)溝通時,盡量直奔主題,不要拐彎抹角,當(dāng)與領(lǐng)導(dǎo)意見不一致時,也不要直接反駁,應(yīng)該先給予認(rèn)可,再闡述自己的想法。
4、在集體會議中溝通
在集體會議中不要一味突出自己的個人能力,不要當(dāng)話癆,也不要默默無聞。適當(dāng)提出一些自己的見解,有助于讓大家更加重視你的存在。切記不要在多人會議中,去指責(zé)別人和推卸問題。各個部門的同事,都要面子~
5、與下級員工的溝通
與下級溝通時不要擺高姿態(tài),不要讓下級產(chǎn)生畏懼感,應(yīng)該更多地為下級解決問題。服務(wù)好部門的同事,才能更好地產(chǎn)生凝聚力。
八、宏觀把控能力
1、有效控制測試時間
測試周期的時間控制,應(yīng)當(dāng)采取多種方法去衡量,例如人員能力,人員數(shù)量,項目復(fù)雜程度,同類項目的測試經(jīng)驗等多方面去衡量。
2、有效控制測試成本
測試成本指的是人員成本跟時間成本,不要浪費每個人的時間和勞動力,要讓每個人充分發(fā)揮最大的價值。
3、有效制定測試計劃
測試計劃對于一個項目是核心關(guān)鍵,它的存在為了讓測試進行中有依據(jù)可查。所以測試計劃,一定要切合實際情況,要經(jīng)過思考和衡量最后得出計劃安排。
4、有效控制組員情緒
組員的情緒可以直接影響測試進度和測試的質(zhì)量,當(dāng)有組員出現(xiàn)思想問題時,應(yīng)當(dāng)及時溝通,采取一些必要的措施去解決問題。而不能裝看不見。
5、有效進行風(fēng)險評估
任何項目在進行期間都存在許多潛在的風(fēng)險,例如,人員離職,生病請假,業(yè)務(wù)變更,需求變更,服務(wù)器或其它組件故障等。應(yīng)當(dāng)提前做出相應(yīng)的解決方案,以免到時候手忙腳亂。
6、有效控制測試方向
測試的方向是指測試的目標(biāo)和測試的范圍,很多項目的測試是有針對性的,例如性能測試,所以在測試中,一定要隨時清楚測試的目標(biāo)和目的是什么,以免把時間浪費在無關(guān)緊要的業(yè)務(wù)上。
總結(jié)
以上是生活随笔為你收集整理的【测试】优秀软件测试工程师必备的8个能力的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 代码审计——你是如何发现那些有缺陷的代码
- 下一篇: 遗传算法 - 简单介绍