BATJ這些大廠,高級資深專家級別的測試工程師面試都在問!
文章首發(fā)于微信公眾號:程序員一凡
如何提高軟件測試思維是我們今天的主題!

其實更準確的說,我們作為一個軟件測試工程師,不僅僅要提高自己的測試思維,還有開發(fā)思維。(準確定義來說:測試開發(fā)思維)
為什么說要有開發(fā)思維呢?
做軟件測試和開發(fā)溝通得非?!坝H密”,那么那些代碼,數據庫的結構,這些對你做測試肯定是有很大幫助。
而且我們自己去寫自動化腳本,去寫框架,也需要用到開發(fā)思維。很多小伙伴可能有一些測試思維,但是沒有開發(fā)思維。
測試開發(fā)思維都有,才是你以后在這條路上走得更遠,更高層次。
那如何來提高?一凡給大家總結一下。
不管你現在是不是做測試,你以后想做什么類型的測試,你想做高級自動化、性能、安全等等,那么最重要的是什么?
功能測試業(yè)務!最基礎的我們不要忘了,這個是很重要的。
1.用戶場景,需求分析如何理解?(面試題)
功能測試業(yè)務里面,我覺得最重要的一塊,就是針對于需求分析,比如說我現在是面試官,我問你一個問題。
你對這個用戶場景怎么看?用戶場景是什么意思?
真實的用戶給到我們公司的需求,這個專業(yè)術語就是用戶場景。對于這個場景,你做為一個測試的職責是什么?你怎么去看待,怎么去理解?所以說對于需求分析你是如何理解的。
分析:這個問題就是面試官在考驗你對于測試的認知,思維的認知。我們需要從哪些方面去分析?
如果以后面試官問到你,需求分析想關的問題,別小看這些問題。不管你是去面試BATJ這些大廠,高級資深專家級別的測試工程師,都會問到這一類問題的。因為作為測試,你對這些基礎的東西你沒有一個很強的邏輯,思維你都不清晰,你如何去做好哪些高級的事情?
這里一凡給大家總結一下。
怎么去理解,怎么去面對這些需求,面對用戶提出的需求,那我們作為軟件測試工程師,我們也是有必要去做的一個事情
a.了解需求的商業(yè)價值。只有明白這個需求有什么商業(yè)價值,我們才能更加的明確我們該站在用戶的角度去判斷。
b.站在用戶的角度。比如說我們的用戶、產品提出來的需求,你是一個普通的用戶角度去判斷這個需求
c.站在產品的角度
顯性需求
隱性需求
功能性需求
非功能性需求
舉例說明顯性與隱形需求
【1.登錄大家很好理解】
顯性需求:
輸入正常的用戶名和密碼,能登錄
隱性需求
用戶名、密碼長度是否可以為空,密碼字符串,驗證碼是否可以為空。已經使用過的驗證碼能不能再次使用。用戶名和密碼它輸入了多少次,你會把我的賬號凍結,想這些產品經理沒考慮到的,我們就需要去考慮這些隱性需求(已登錄的用戶是否可以再次登錄,兩個賬號同一個瀏覽器等等……像這些都是我們需要去考慮的)
【2.下單付款】
再比如你下訂單付款,然后顯性需求,你如果超過半個小時就不能付款了,訂單已過期
那我們的隱性需求,下訂單超過多長時間,是否可以在該訂單重復性付款,下單過程中如果我下單的時候網絡差,如果我下單的過程中來了一個電話,是不是自動刷新等等,像這類就是隱形需求。? ??
功能性需求:基本上顯性+隱形就等于功能性需求
非功能性需求:那么什么叫非功能性需求呢?就是用戶的體驗感,比如性能,可靠性,安全性,易用性,可維護性,還有繼承性
繼承性:就比如說我現在使用微信,如果微信改版了,現在微信出了8.0版本,你一下改得大家都不會玩了,這就是繼承性不好。
再舉一個例子,大家平時有玩王者榮耀、英雄聯盟之類的游戲。改版后,新的裝備突然大家都不認識了,在心里罵這個產品是不是ZZ,改得太大了,突然一個版本。
所以這些東西我們測試也是需要去考慮的,我們測試是在產品和開發(fā)的中間人。
所以我們作為軟件測試工程師,在需求會議用戶場景的時候,我們一定要站出來,多發(fā)表自己的想法,這個時候如果你擔任了這樣一個角色,你在公司的地位一定很高,然后你很容易轉到做管理。
產品經理,研發(fā)經理都覺得,對奧~這個測試比較重要。所以不管你做什么級別,高級、自動化等等,這些基本的思維我們需要有。
產品的需求是不是分得比較細,是不是可以再拆遷一下,是不是存在什么風險,從項目的角度,這些需求是不是應該提在下一個版本呢?
非功能需求,當然也包括了安全性,性能需求。能支持多少并發(fā),所以你看所有的性能測試、自動化測試都是基于這些基本的東西業(yè)務之上的,所以你為什么要做性能測試,為什么要做自動化,都是有這個目的的,有一定的原因。
所以這些非功能性需求,我就要去做性能壓測,這個項目同時支持多少用戶在并發(fā),同時搶購商品。
當然,除了功能測試,我們現在要涉及到很多的自動化?,F在去面試,想要漲工資,自動化絕對是一把利器!
所以說自動化也是現在的一個必備技能了,自動化測試現在(不說前面15、16……年)那個時候你不會做自動化測試,你一樣過得很好。也沒人說你菜。
現在如果你做為一個測試人,你不會點技術,好像總覺得自己做錯了什么,有沒有這種感覺?在評論區(qū)說一下你的想法感受。
你做為一個測試,我不懂自動化我不懂性能,就是各種鄙視鏈,做安全的看不起做性能的,做測開的看不起做自動化的,做自動化的看不起做功能的,等等等等,當然各種行業(yè)都有鄙視鏈。
如果你還是一個非測試人員,或者你現在是開發(fā)想轉測試。
功能測試百分之百不會被淘汰掉,就是說你只會功能測試,找工作不是問題。只是說你想做得更好,你想有自己的競爭力,想做一把手,想獨當一面,就不能僅僅會功能測試。
第二點,我們要從自動化測試去下手,那自動化測試我們就分為,接口和UI,所以你也不要去管我要做什么自動化,這兩個都是要做的。
自動化測試思維(接口自動化/UI自動化)
測試開發(fā)思維
寫框架:實現一個功能
寫工具:后端,開發(fā)接口,寫前端
文章篇幅有限,實戰(zhàn)講解可能更加直觀感受,公眾號程序員一凡主頁點擊領取學習資源,(如何提高自動化測試開發(fā)思維)免費領取視頻教程。