該章最后,作者給予了十大測(cè)試原則:
⊙測(cè)試用例中一個(gè)必需部分是對(duì)預(yù)期輸出或結(jié)果的定義。
一個(gè)測(cè)試用例必需包括兩個(gè)部分:對(duì)程序的輸入數(shù)據(jù)的描述和對(duì)程序在上述輸入數(shù)據(jù)下的正確輸出結(jié)果的精確描述。
⊙程序員應(yīng)當(dāng)避免測(cè)試自己編寫的程序。
原因有三:
1.當(dāng)程序員“建設(shè)性”地設(shè)計(jì)和編寫完程序之后,很難讓他突然改變視角以一種“破壞性”的眼光來審查程序,即,他們無(wú)法改變思維方式來盡力暴露自己程序中的錯(cuò)誤;
2.程序員可能會(huì)下意識(shí)地避免找出錯(cuò)誤來,擔(dān)心受到同事、上司、客戶或正在開發(fā)的程序或系統(tǒng)的主管的懲罰;
3.由于程序員錯(cuò)誤地理解了疑難定義或規(guī)范,導(dǎo)致程序中存在錯(cuò)誤。如果是這種情況,程序員可能會(huì)帶著同樣的誤解來測(cè)試自己的程序。需要指出的是:“調(diào)試”還是由程序的編寫人員來完成會(huì)更加有效的。
⊙編寫軟件的組織不應(yīng)當(dāng)測(cè)試自己編寫的軟件。
應(yīng)該是由客觀、獨(dú)立的第三方來進(jìn)行測(cè)試。理由雷同于上條規(guī)則中所涉及到的。
⊙應(yīng)當(dāng)徹底檢查每個(gè)測(cè)試的執(zhí)行結(jié)果。
在項(xiàng)目測(cè)試的時(shí)候,總是會(huì)發(fā)現(xiàn)在后續(xù)測(cè)試中發(fā)現(xiàn)的錯(cuò)誤,往往是前面的測(cè)試遺漏掉的。
⊙測(cè)試用例的編寫不僅應(yīng)當(dāng)根據(jù)有效和預(yù)料到的輸入情況,而且也應(yīng)當(dāng)根據(jù)無(wú)效和未預(yù)料到的輸入情況。
其實(shí)在軟件產(chǎn)品中暴露出來的許多問題是當(dāng)程序以某些新的或未預(yù)料到的方式運(yùn)行時(shí)發(fā)現(xiàn)的。所以這條原則的重要性可能在測(cè)試中的地位還應(yīng)該是更要值得引起注意的才是。
⊙檢查程序是否“未做其應(yīng)該做的”僅是測(cè)試的一半,測(cè)試的另一半是檢查程序是否“做了其不應(yīng)該做的”。
⊙應(yīng)避免測(cè)試用例用后放棄,除非軟件本身就是一個(gè)一次性的軟件。
在交互式系統(tǒng)上來測(cè)試的話,這條原則可能就會(huì)顯現(xiàn)的更加重要了。這條原則體現(xiàn)的會(huì)更加省時(shí)省力。因?yàn)槿绻麑?duì)程序的更改導(dǎo)致了程序某個(gè)先前可以執(zhí)行的部分發(fā)生了故障,這個(gè)故障往往是不會(huì)被發(fā)現(xiàn)的。保留測(cè)試用例,當(dāng)程序其他部分發(fā)生更動(dòng)后重新執(zhí)行,這就是我們所謂的“回歸測(cè)試”了。
⊙計(jì)劃測(cè)試工作時(shí)不應(yīng)默認(rèn)假定不會(huì)發(fā)現(xiàn)錯(cuò)誤。
⊙程序某部分存在更多錯(cuò)誤的可能性,與該部分已發(fā)現(xiàn)錯(cuò)誤的數(shù)量成正比。
作者所說的而言,錯(cuò)誤總是傾向于聚集存在,而在一個(gè)具體的程序中,某些部分要比其他部分更容易存在錯(cuò)誤。那么為了使測(cè)試獲得更大的成效,對(duì)這些容易存在錯(cuò)誤的部分進(jìn)行額外的測(cè)試。
⊙測(cè)試是一項(xiàng)極富創(chuàng)造性、極具智力挑戰(zhàn)性的工作
⊙測(cè)試用例中一個(gè)必需部分是對(duì)預(yù)期輸出或結(jié)果的定義。
一個(gè)測(cè)試用例必需包括兩個(gè)部分:對(duì)程序的輸入數(shù)據(jù)的描述和對(duì)程序在上述輸入數(shù)據(jù)下的正確輸出結(jié)果的精確描述。
⊙程序員應(yīng)當(dāng)避免測(cè)試自己編寫的程序。
原因有三:
1.當(dāng)程序員“建設(shè)性”地設(shè)計(jì)和編寫完程序之后,很難讓他突然改變視角以一種“破壞性”的眼光來審查程序,即,他們無(wú)法改變思維方式來盡力暴露自己程序中的錯(cuò)誤;
2.程序員可能會(huì)下意識(shí)地避免找出錯(cuò)誤來,擔(dān)心受到同事、上司、客戶或正在開發(fā)的程序或系統(tǒng)的主管的懲罰;
3.由于程序員錯(cuò)誤地理解了疑難定義或規(guī)范,導(dǎo)致程序中存在錯(cuò)誤。如果是這種情況,程序員可能會(huì)帶著同樣的誤解來測(cè)試自己的程序。需要指出的是:“調(diào)試”還是由程序的編寫人員來完成會(huì)更加有效的。
⊙編寫軟件的組織不應(yīng)當(dāng)測(cè)試自己編寫的軟件。
應(yīng)該是由客觀、獨(dú)立的第三方來進(jìn)行測(cè)試。理由雷同于上條規(guī)則中所涉及到的。
⊙應(yīng)當(dāng)徹底檢查每個(gè)測(cè)試的執(zhí)行結(jié)果。
在項(xiàng)目測(cè)試的時(shí)候,總是會(huì)發(fā)現(xiàn)在后續(xù)測(cè)試中發(fā)現(xiàn)的錯(cuò)誤,往往是前面的測(cè)試遺漏掉的。
⊙測(cè)試用例的編寫不僅應(yīng)當(dāng)根據(jù)有效和預(yù)料到的輸入情況,而且也應(yīng)當(dāng)根據(jù)無(wú)效和未預(yù)料到的輸入情況。
其實(shí)在軟件產(chǎn)品中暴露出來的許多問題是當(dāng)程序以某些新的或未預(yù)料到的方式運(yùn)行時(shí)發(fā)現(xiàn)的。所以這條原則的重要性可能在測(cè)試中的地位還應(yīng)該是更要值得引起注意的才是。
⊙檢查程序是否“未做其應(yīng)該做的”僅是測(cè)試的一半,測(cè)試的另一半是檢查程序是否“做了其不應(yīng)該做的”。
⊙應(yīng)避免測(cè)試用例用后放棄,除非軟件本身就是一個(gè)一次性的軟件。
在交互式系統(tǒng)上來測(cè)試的話,這條原則可能就會(huì)顯現(xiàn)的更加重要了。這條原則體現(xiàn)的會(huì)更加省時(shí)省力。因?yàn)槿绻麑?duì)程序的更改導(dǎo)致了程序某個(gè)先前可以執(zhí)行的部分發(fā)生了故障,這個(gè)故障往往是不會(huì)被發(fā)現(xiàn)的。保留測(cè)試用例,當(dāng)程序其他部分發(fā)生更動(dòng)后重新執(zhí)行,這就是我們所謂的“回歸測(cè)試”了。
⊙計(jì)劃測(cè)試工作時(shí)不應(yīng)默認(rèn)假定不會(huì)發(fā)現(xiàn)錯(cuò)誤。
⊙程序某部分存在更多錯(cuò)誤的可能性,與該部分已發(fā)現(xiàn)錯(cuò)誤的數(shù)量成正比。
作者所說的而言,錯(cuò)誤總是傾向于聚集存在,而在一個(gè)具體的程序中,某些部分要比其他部分更容易存在錯(cuò)誤。那么為了使測(cè)試獲得更大的成效,對(duì)這些容易存在錯(cuò)誤的部分進(jìn)行額外的測(cè)試。
⊙測(cè)試是一項(xiàng)極富創(chuàng)造性、極具智力挑戰(zhàn)性的工作