- 授課品牌:
深圳達(dá)內(nèi)教育
- 機(jī)構(gòu)級(jí)別:代理會(huì)員
- 信譽(yù)等級(jí):
學(xué)校評(píng)價(jià)(我要提問(wèn)/點(diǎn)評(píng))
- 學(xué)校被點(diǎn)評(píng):0 次
- 好評(píng)(0%)
- 中評(píng)(0%)
- 差評(píng)(0%)
資料認(rèn)證
未通過(guò)身份證認(rèn)證
未通過(guò)辦學(xué)許可認(rèn)證
- 學(xué)校瀏覽人次:次
- 加盟時(shí)間:2020年11月05日
軟件測(cè)試需要具備的思維方式 你有嗎
首先,從需求,用戶及研發(fā)角度考慮,要想為產(chǎn)品貢獻(xiàn)最大的力量,就不能只專(zhuān)注于做好測(cè)試保證質(zhì)量這一個(gè)方面,而應(yīng)該是從多個(gè)角度全面衡量。
用戶思維
在工作中,一部分測(cè)試同行特別是初入者在對(duì)待需求時(shí)都過(guò)于被動(dòng),不太會(huì)把產(chǎn)品各個(gè)模塊的業(yè)務(wù)串聯(lián)起來(lái),成了因?yàn)樾枨髞?lái)了所以做需求,純粹看著需求文檔就開(kāi)始做測(cè)試用例的設(shè)計(jì)了,并沒(méi)有想著先把需求理順了想明白了再開(kāi)始著手。
其實(shí)這個(gè)階段也即是非常重要的需求分析及功能點(diǎn)拆解,即使說(shuō)這主要是產(chǎn)品經(jīng)理們的主要工作,但是他們也并非圣賢,對(duì)產(chǎn)品設(shè)計(jì)的細(xì)節(jié)考慮可能并不周全,甚至嚴(yán)重時(shí)會(huì)出現(xiàn)較大的需求漏洞,引發(fā)較嚴(yán)重的影響。而我們也應(yīng)該具備該項(xiàng)能力,如果不能站在公司戰(zhàn)略層面考慮該需求對(duì)業(yè)務(wù)上能帶來(lái)哪些促進(jìn),也至少能站在用戶的角度考慮能給用戶帶來(lái)什么價(jià)值,能滿足用戶哪方面的需求,同時(shí)能及時(shí)發(fā)現(xiàn)對(duì)于用戶操作過(guò)程中的體驗(yàn)問(wèn)題.
在糗事百科創(chuàng)始人著作的《結(jié)網(wǎng)》一書(shū)中,也提出了用戶體驗(yàn)的三大原則:別讓我等,別讓我想,別讓我煩。我覺(jué)得作為一名合格的QA是需要具備這方面能力的,但是在實(shí)際工作實(shí)操中還是需要具備溝通技巧,畢竟能對(duì)于用戶體驗(yàn)方面的改進(jìn)需要產(chǎn)品經(jīng)理拍板,如果的的確確非常明顯的體驗(yàn)問(wèn)題,是有必要堅(jiān)持真理說(shuō)服他們優(yōu)化的,否則還是把話語(yǔ)權(quán)留給他們,我們只是提供建議吧,不然工作中的**味一定會(huì)很濃。
架構(gòu)思維
要想設(shè)計(jì)一份有效的測(cè)試用例,就必須要對(duì)軟件開(kāi)發(fā)設(shè)計(jì)思路有深入的了解,我們也經(jīng)常有類(lèi)似的事情,業(yè)務(wù)需求未做任何改變,而架構(gòu)做了優(yōu)化,如果單純地拿著一份根據(jù)業(yè)務(wù)整理出的用例是無(wú)法準(zhǔn)確而有效的測(cè)試的,架構(gòu)的調(diào)整包括:底層數(shù)據(jù)結(jié)構(gòu)的調(diào)整如分庫(kù)分表,服務(wù)化(SOA),日志的收集處理以及容災(zāi)處理等等,另外,為了能有助于測(cè)試開(kāi)展,我們同樣需要了解開(kāi)發(fā)技術(shù),畢竟在測(cè)試環(huán)境的搭建及維護(hù),測(cè)試過(guò)程中各種場(chǎng)景的模擬特別是異常情況,以及自動(dòng)化測(cè)試,如果不借助于開(kāi)發(fā)技術(shù),自動(dòng)化工作也是很難開(kāi)展的。
比如被測(cè)系統(tǒng)依賴(lài)其他系統(tǒng)發(fā)的一條MQ消息而做相應(yīng)的處理,那自動(dòng)化代碼中為了驗(yàn)證該邏輯,就需要MOCK這條消息(即設(shè)置樁Stub)并且發(fā)送到某個(gè)管道中,讓被測(cè)應(yīng)用接受并處理它,如果連MQ是什么都不知道,也不知道如何在代碼中發(fā)送消息,那這個(gè)部分的自動(dòng)化測(cè)試是沒(méi)法開(kāi)展下去了。
上面只是舉了一個(gè)例子,總結(jié)一下,需要具備的架構(gòu)思維包括:
1)了解并熟悉開(kāi)發(fā)使用的技術(shù)及開(kāi)發(fā)框架,比如用到的Spring MVC,Mybatis,Redis,前端HTML,JS,相關(guān)協(xié)議等(視不同項(xiàng)目具體情況而有所不同);
2)理解研發(fā)設(shè)計(jì)的架構(gòu)及設(shè)計(jì)思路,并考察開(kāi)發(fā)設(shè)計(jì)是否滿足業(yè)務(wù)需求;
3)Review技術(shù)方案時(shí),考察是否滿足易維護(hù)性,易擴(kuò)展以及對(duì)性能和安全的要求,并且在關(guān)鍵業(yè)務(wù)出現(xiàn)異常時(shí)是否添加報(bào)警等,而這一點(diǎn)也是大多數(shù)從事功能測(cè)試的同學(xué)最易忽略的。
測(cè)試思維
如果要特意區(qū)分用戶思維和架構(gòu)思維的話,在測(cè)試過(guò)程中,就要額外關(guān)注:以嚴(yán)謹(jǐn)?shù)臏y(cè)試設(shè)計(jì)方法覆蓋需求功能點(diǎn)及代碼分支,具有場(chǎng)景思維和對(duì)異常情況的考察。對(duì)此我們可以細(xì)化總結(jié)為以下幾點(diǎn):
1.逆向思維
比如我們經(jīng)常需要對(duì)接口做測(cè)試,通過(guò)輸入驗(yàn)證輸出,如果我們使用各種輸入都無(wú)法得到接口設(shè)計(jì)中某一種輸出的情況時(shí),就需要從輸出來(lái)逆向推導(dǎo)輸入,另外比如驗(yàn)證一些異常情況,接口需要返回一些error code,使用正常手段是肯定不能得到的,就需要為了出現(xiàn)該error code借助環(huán)境及工具來(lái)模擬。另外,我們?cè)诜治龊芏鄦?wèn)題時(shí),同樣也離不開(kāi)逆向思維。
2. 組合思維
比如軟件在多用戶,多進(jìn)程,多次執(zhí)行等情況下,都可能出現(xiàn)意想不到的缺陷,甚至對(duì)于復(fù)雜的業(yè)務(wù)場(chǎng)景,在對(duì)同一份數(shù)據(jù)進(jìn)行操作時(shí),不同子業(yè)務(wù)并行執(zhí)行情況下,都有可能造成數(shù)據(jù)上的錯(cuò)誤,特別是對(duì)于與核心數(shù)據(jù)有關(guān)的業(yè)務(wù)上(如money),是否添加行級(jí)鎖都是需要測(cè)試到的,同時(shí),不同業(yè)務(wù)不同的操作順序,組合方式下,不同的維度等都有可能出現(xiàn)bug。
3. 全局思維
即能把握整個(gè)項(xiàng)目的多個(gè)方面,多個(gè)團(tuán)隊(duì)的任務(wù)及分工,整體的數(shù)據(jù)流及業(yè)務(wù)流,從全局思考是否滿足業(yè)務(wù)需求,這其實(shí)并不只是說(shuō)對(duì)于需求的評(píng)審,更多的是關(guān)注上下游相關(guān)聯(lián)的系統(tǒng)或接口等,凡是涉及跨團(tuán)隊(duì)開(kāi)展的工作,一定就需要更多的溝通協(xié)調(diào),很明顯的就體現(xiàn)在對(duì)業(yè)務(wù)理解不正確,接口定義有誤,具有全局思維的人更能在大型項(xiàng)目中游刃有余,體現(xiàn)其leader的潛質(zhì),畢竟做leader就需要關(guān)注本部門(mén)之外其他部門(mén)都在干些什么,以備能做出對(duì)大局有利的決定。
4. 兩極思維
即站在事情的兩個(gè)極端來(lái)考慮,比如數(shù)據(jù)上的無(wú)窮大與無(wú)窮小,在數(shù)據(jù)存儲(chǔ)上,數(shù)據(jù)庫(kù)層面字段設(shè)置為int與bigint所支持的數(shù)量級(jí)是不一樣的,基于業(yè)務(wù)數(shù)據(jù),如果存在超過(guò)int的長(zhǎng)度的數(shù)據(jù),那么在存儲(chǔ)上以及代碼中,都需要做相應(yīng)支持,否則就只會(huì)顯示到該類(lèi)型的最大值了,而且在業(yè)務(wù)層面也經(jīng)常有兩個(gè)極端的情況,比如商家入駐開(kāi)店,很多時(shí)候都只是考慮到開(kāi)店該怎么做,卻忽略關(guān)店的情況。其實(shí)在邊界值用例設(shè)計(jì)方法中也用到了兩極思維模式。
5. 簡(jiǎn)單思維
簡(jiǎn)單思維表現(xiàn)在很多方面,比如經(jīng)常非常嚴(yán)重的bug都可能是犯了一個(gè)很簡(jiǎn)單的錯(cuò)誤引起,在處理測(cè)試環(huán)境時(shí)經(jīng)常出現(xiàn)無(wú)法正常訪問(wèn),也許可能只是磁盤(pán)空間滿了而已或者一個(gè)簡(jiǎn)單的配置不正確引起,在日常工作中這樣的例子非常多,我們也要善于一層一層剝開(kāi)問(wèn)題的現(xiàn)象,找到其本質(zhì),就好比剝洋蔥一樣,不要一開(kāi)始就把問(wèn)題想的過(guò)于復(fù)雜,往往事情并沒(méi)有那么復(fù)雜。
6. 比較思維
比較思維其實(shí)貫穿在我們整個(gè)測(cè)試生涯中,測(cè)試本來(lái)也就是一種驗(yàn)證,根據(jù)實(shí)際結(jié)果跟預(yù)期結(jié)果對(duì)比。而且我們?cè)谄綍r(shí)工作排查問(wèn)題時(shí),也有非常多需要去對(duì)比的,比如配置文件的差異,環(huán)境的差異引起的不正常結(jié)果,此外,我們也通過(guò)svn中代碼diff的差異來(lái)明確改動(dòng)的范圍制定回歸策略。還比如在做一些前后兩個(gè)版本吐出的數(shù)據(jù)差異時(shí),頁(yè)面顯示差異時(shí),都可以使用diff的思想來(lái)開(kāi)展自動(dòng)化的工作,大大提高效率。其中,包括我很久之前寫(xiě)的《我在蘭亭這三年(九)之AutoDiff自動(dòng)化測(cè)試框架》也是基于比較的思維。
總之,用好了以上幾種思維方式,我想在以后的測(cè)試工作中,一定更加的游刃有余,有效且高效!