基于風(fēng)險(xiǎn)的測(cè)試,幾乎每個(gè)測(cè)試人員或多或少在測(cè)試實(shí)踐中運(yùn)用它。對(duì)于基于風(fēng)險(xiǎn)的測(cè)試設(shè)計(jì),測(cè)試人員首先需要考慮的是風(fēng)險(xiǎn)在哪里?即識(shí)別和分析測(cè)試對(duì)象中的風(fēng)險(xiǎn)是進(jìn)行基于風(fēng)險(xiǎn)的測(cè)試設(shè)計(jì)的前提條件。

  基于風(fēng)險(xiǎn)的測(cè)試設(shè)計(jì)可以采用的技術(shù)包括啟發(fā)式分析方法、攻擊,以及失效模式和影響分析FMEA,其中啟發(fā)式分析方法由從內(nèi)到外的啟發(fā)式分析方法INSIDE-OUT和從外到內(nèi)的啟發(fā)式分析方法OUTSIDE-IN組成。本文將對(duì)INSIDE-OUT分析方法進(jìn)行簡(jiǎn)單的描述。

  INSIDE-OUT的基本思路是從具體分析測(cè)試對(duì)象的詳細(xì)信息和背景信息入手,識(shí)別與之相關(guān)的風(fēng)險(xiǎn)。采用該方法,測(cè)試人員在學(xué)習(xí)測(cè)試對(duì)象時(shí)需要不斷地提出這樣的問題“這里可能會(huì)存在什么樣的風(fēng)險(xiǎn)”。更加正確地說,針對(duì)測(cè)試對(duì)象的每個(gè)部分,測(cè)試人員需要回答下面3個(gè)問題。

  ● 弱點(diǎn)Vulnerabilities:測(cè)試對(duì)象有何種弱點(diǎn)或者可能的失效?

  ● 原由Treats:測(cè)試對(duì)象在何種輸入或者情況下會(huì)導(dǎo)致出現(xiàn)缺陷和弱點(diǎn),并且觸發(fā)測(cè)試對(duì)象出現(xiàn)失效?

  ● 影響者Victims:弱點(diǎn)或者失效的影響對(duì)象是誰?其影響程度有多大?

  INSIDE-OUT分析方法需要測(cè)試人員深入了解測(cè)試對(duì)象,例如:深刻理解測(cè)試對(duì)象的具體技術(shù)實(shí)現(xiàn)。INSIDE-OUT并不一定只是局限于測(cè)試團(tuán)隊(duì)內(nèi)部,也可以和開發(fā)人員合作進(jìn)行。其常用過程可以是在帶有黑板/白板的會(huì)議室中測(cè)試人員詢問開發(fā)人員相關(guān)的問題(如這個(gè)功能是如何實(shí)現(xiàn)的?);開發(fā)人員在黑板/白板上畫出相應(yīng)的原理圖,并講解測(cè)試對(duì)象的內(nèi)部工作過程;同時(shí)測(cè)試人員在開發(fā)人員畫原理圖時(shí),快速地思考一些問題。

  INSIDE-OUT通過這樣的一個(gè)過程,測(cè)試人員和開發(fā)人員之間可以很快的在測(cè)試對(duì)象工作原理方面有相當(dāng)?shù)恼J(rèn)同。在測(cè)試人員存在疑慮或者不清楚時(shí)可以立即詢問開發(fā)人員。在了解測(cè)試對(duì)象的工作原理之后,測(cè)試人員即可開始查找其中的弱點(diǎn)或者可能的失效。下面是測(cè)試實(shí)踐過程中對(duì)INSIDE-OUT分析方法的模擬應(yīng)用。

  下面是開發(fā)人員和測(cè)試人員進(jìn)行INSIDE-OUT的一個(gè)模擬場(chǎng)景,測(cè)試人員提出有關(guān)問題,開發(fā)人員解釋或者思考每個(gè)問題:

 。1)測(cè)試人員指著測(cè)試對(duì)象原理圖中的一個(gè)模塊問道:“如果這個(gè)功能失效,會(huì)發(fā)生什么現(xiàn)象?”

 。2)這個(gè)功能模塊會(huì)不會(huì)在不恰當(dāng)時(shí)被調(diào)用?

  (3)測(cè)試人員指著原理圖中的某個(gè)部分問道:“ 這里有沒有相關(guān)的錯(cuò)誤檢查功能?”

 。4)測(cè)試人員指著原理圖中的某個(gè)箭頭問道:“ 該箭頭的具體含義是什么?如果這個(gè)箭頭的通路不通,后果是什么?”

 。5)測(cè)試人員指著原理圖中的某個(gè)數(shù)據(jù)流問道:“ 如果這個(gè)數(shù)據(jù)流出現(xiàn)中斷,如何發(fā)現(xiàn)這個(gè)問題?如果沒有發(fā)現(xiàn)這個(gè)問題,會(huì)出現(xiàn)什么后果?”

 。6)這個(gè)功能能夠處理的大并發(fā)用戶數(shù)是多少?具體的性能如何?

 。7)這個(gè)功能和其他功能之間是否存在交互?

  (8)對(duì)這個(gè)功能沒有把握的部分是什么?從開發(fā)人員的角度應(yīng)該如何測(cè)試?

  上面的場(chǎng)景并不是一個(gè)完整的INSIDE-OUT方法,因此測(cè)試人員得到的也不是一個(gè)完整的問題列表,但是以這種方式開始溝通和交流是測(cè)試工作的一個(gè)好的開端。在開發(fā)人員回答相關(guān)問題時(shí),測(cè)試人員可以了解開發(fā)人員的關(guān)注點(diǎn),以及在哪些地方存在不確定或者猶豫不決。從而可以判斷開發(fā)人員在哪些地方可能沒有完全理解需求或者設(shè)計(jì)要求,而這通常是測(cè)試對(duì)象的風(fēng)險(xiǎn)所在。在識(shí)別風(fēng)險(xiǎn)的過程中,測(cè)試人員通常也會(huì)考慮如何測(cè)試并評(píng)估和管理這樣的風(fēng)險(xiǎn)。

  通常這樣的討論會(huì)持續(xù)時(shí)間在一個(gè)小時(shí)左右,經(jīng)過討論測(cè)試人員通常能夠更加清楚地了解測(cè)試對(duì)象。并且對(duì)可能的風(fēng)險(xiǎn)有一個(gè)初步的印象,從而可以幫助確定后續(xù)風(fēng)險(xiǎn)列表和測(cè)試策略。

  INSIDE-OUT方法的優(yōu)點(diǎn)很明顯,但是該方法的高效應(yīng)用需要測(cè)試人員和開發(fā)人員之間具備很強(qiáng)的溝通能力和良好的合作關(guān)系。當(dāng)然測(cè)試人員也可以針對(duì)測(cè)試對(duì)象單獨(dú)識(shí)別風(fēng)險(xiǎn)。不過,這樣會(huì)導(dǎo)致測(cè)試工作量的增加和效率的降低,因?yàn)闇y(cè)試人員需要獨(dú)立地學(xué)習(xí)、理解和分析測(cè)試對(duì)象。