三番四次看見(jiàn)有人在俱樂(lè)部里提及,所以找來(lái)看看。翻開(kāi)introduction,不由大笑。因?yàn)槲乙膊恢挂淮翁徇^(guò),現(xiàn)存的測(cè)試方法,不適合于系統(tǒng)測(cè)試(system testing)。在我每年兩次的system testing時(shí),每次我都復(fù)習(xí)之前用過(guò)的方法,并加以改進(jìn)。自己也試著把經(jīng)歷寫(xiě)成博客。點(diǎn)我。所以看到RE也跳出來(lái)寫(xiě),覺(jué)得頗為親切,于是看了下去。順便寫(xiě)些閱讀手記,給不?磿(shū)的tester們一點(diǎn)提示,看軟件測(cè)試書(shū)籍,要帶著詢問(wèn),思考,回答,聯(lián)想的方式閱讀,而萬(wàn)不能一目十行。

  注:Q為問(wèn)題代號(hào),即在閱讀時(shí),由于作者描述不清,產(chǎn)生的問(wèn)題,我會(huì)在Q后,試圖在文中尋找答案。

  1、標(biāo)題

  作為一個(gè)的tester,首先我們要發(fā)問(wèn):這是一本關(guān)于什么的書(shū)。標(biāo)題是:the little black book on test design。

  Q1.1為什么叫l(wèi)ittle?因?yàn)楸緯?shū)只有32頁(yè)。

  Q1.2black book,為啥叫魔法書(shū)?

  Q1.3test design,哪一部分的test,unit test,component test,還是integration或system test,抑或全部包括?

  僅從標(biāo)題,我們還無(wú)法得到答案。

  2、縱覽目錄,結(jié)構(gòu)及方向

  RE將本書(shū)分為:介紹,靈感,分析,點(diǎn)子,執(zhí)行,終曲,及參考書(shū)目這幾個(gè)部分。

  3、簡(jiǎn)介

  簡(jiǎn)介里,通常會(huì)告訴我們,作者為什么會(huì)寫(xiě)這本書(shū),寫(xiě)了給誰(shuí)看。RE說(shuō):本書(shū)是講述system testing的。這回答了問(wèn)題1.3。如果我們只做unit test,卻忽略了這句話,讀完了才開(kāi)始罵街,那要冤枉RE了。但是注意,RE在此處提到了一個(gè)新詞:ambitious,野心。

  Q3.1什么叫有野心的進(jìn)行system testing呢?

  RE說(shuō):十年來(lái)常覺(jué)得現(xiàn)存測(cè)試方法之不足,現(xiàn)將坊間實(shí)用方法記錄如下,以供諸位品鑒。實(shí)用方法包括:測(cè)試策略,分析,設(shè)計(jì),和執(zhí)行。此處,RE提供了一條新的線索,即:本書(shū)所謂的測(cè)試設(shè)計(jì),不止包括設(shè)計(jì),更包括其他一切。因?yàn)樵诂F(xiàn)實(shí)中,這些任務(wù)彼此互相聯(lián)系,很難徹底分開(kāi)。由于測(cè)試的抽樣區(qū)間過(guò)分巨大(即連一個(gè)計(jì)算器都有無(wú)窮多種組合的輸入),因此,從中選出重要區(qū)域才是關(guān)鍵。手動(dòng)進(jìn)行system testing的人,如何抽樣重要區(qū)域更為重要。此處,勉強(qiáng)算是Q1.2的解答,因?yàn)樵谡鎸?shí)環(huán)境中,現(xiàn)存方法并不實(shí)用,因此,才將實(shí)用方法總結(jié)分享,稱之為black book。

  我們更可以替作者做出總結(jié):本書(shū)是針對(duì)系統(tǒng)測(cè)試(system testing)的實(shí)用方法的總結(jié)歸納(用于找到測(cè)試的重要區(qū)域),尤其適用于手動(dòng)測(cè)試。

  3.1 要素

  RE說(shuō):tester應(yīng)該收集盡可能多的信息(需求,說(shuō)明,雛形,代碼,缺陷,技術(shù)支持,用戶故事,用戶預(yù)期,技術(shù),工具,模型,系統(tǒng),質(zhì)量標(biāo)準(zhǔn),質(zhì)量特點(diǎn),測(cè)試技術(shù),測(cè)試點(diǎn)子,交談,風(fēng)險(xiǎn),可能性),將所有這些整理起來(lái),而后發(fā)揮創(chuàng)造力,找到重要區(qū)域。但是,這個(gè)方法只適合于ambitious projects,即有野心的項(xiàng)目。若是你的項(xiàng)目,資源緊缺(說(shuō)白了是沒(méi)啥經(jīng)費(fèi),沒(méi)啥牛人),別扯這個(gè)。即:ambitious project needs ambitious testers and ambitious testing。(有野心的項(xiàng)目,才需要有野心的tester和有野心的testing)。此處,對(duì)Q3.1,ambitious有了解答。

  RE又說(shuō):若是有野心之人,那么可以采用下面四步:1,搜尋靈感,2,分析重點(diǎn)區(qū)域,3,合成測(cè)試點(diǎn)子,4執(zhí)行。我們留意到,這四步,正是接下來(lái)四章的標(biāo)題。

  3.2 基礎(chǔ)理論

  RE以社會(huì)學(xué)研究為例:科學(xué)家總是收集被研究對(duì)象的所有信息,加以分類,試圖從中發(fā)現(xiàn)一些理論。直到收集來(lái)的信息穩(wěn)定下來(lái),再不更改,此時(shí),理論才成型。整個(gè)過(guò)程中,沒(méi)有前提,沒(méi)有假設(shè),若是我們開(kāi)始自許已經(jīng)將重要問(wèn)題都一網(wǎng)打盡,那是非常危險(xiǎn)的事情。RE將基礎(chǔ)理論的形成與testing進(jìn)行類比;A(chǔ)理論是要從社會(huì)中收集信息,包括面談,背景資料等,相比對(duì)于testing如何收集信息,3.1中的要素中已經(jīng)列舉過(guò)了。

  3.3 測(cè)試設(shè)計(jì)理論

  RE說(shuō):測(cè)試的策略、分析、設(shè)計(jì)與執(zhí)行不應(yīng)分離,而應(yīng)結(jié)合在一起。因?yàn)樗鼈冎g互相影響,更不要一開(kāi)始定下strategy,讓它慢慢隨著情形演變。此處RE的理念,開(kāi)始與敏捷共鳴。越是晚下決定,對(duì)客戶越有利。那么是不是不應(yīng)該有strategy呢?RE說(shuō),高層的策略可以有,但不要具體。底層的測(cè)試策略,則應(yīng)該在學(xué)習(xí)的同時(shí),逐漸成型。

  RE說(shuō):為什么測(cè)試分析不常被提及?因?yàn)椤耙獪y(cè)什么”早已在需求中說(shuō)清楚了。市面上大部分的書(shū),都在講述單元測(cè)試或模塊測(cè)試的方法,而比之更重要的system testing,以及如何選擇重要區(qū)域(important things)這個(gè)問(wèn)題,卻被忽略了。好在,探索性測(cè)試比較關(guān)注于此。RE更感興趣的,不是設(shè)計(jì)測(cè)試用例,而是設(shè)計(jì)測(cè)試點(diǎn)子。此處,與基礎(chǔ)理論相對(duì)應(yīng),RE認(rèn)為,他的工作是搜集相關(guān)信息,分析,針對(duì)性的進(jìn)行選擇策略與工具。

  Q3.3.1:我們已經(jīng)聽(tīng)RE提到過(guò)數(shù)次,重要區(qū)域了,到底什么是重要的?

  3.4 重要區(qū)域(important things)

  終于來(lái)解答Q4.3.1這個(gè)問(wèn)題了。RE列舉了如下若干可以為重點(diǎn)區(qū)域提供參考的信息來(lái)源:1需求,2業(yè)界知識(shí),3用戶情況,4想象力,5批判性,6技術(shù),7測(cè)試人的思維。從上述來(lái)源中選去重點(diǎn),需要對(duì)價(jià)值觀的判斷,而計(jì)算機(jī),在這一點(diǎn)上,遠(yuǎn)遠(yuǎn)不如人類。此處,提到需要用到價(jià)值判斷(value judgement),來(lái)選擇重點(diǎn)區(qū)域。相信這個(gè)詞,在之后會(huì)頻繁出現(xiàn)。