调皮捣蛋的孩子--十大负面测试用例
正面測(cè)試主要根據(jù)需求,功能說(shuō)明書(shū),設(shè)計(jì)文檔等相關(guān)參考文檔來(lái)執(zhí)行測(cè)試,而負(fù)面測(cè)試則主要根據(jù)錯(cuò)誤猜測(cè),逆向思維來(lái)測(cè)試系統(tǒng),一定程序上的的依賴(lài)測(cè)試人員的經(jīng)驗(yàn)積累。
執(zhí)行負(fù)面測(cè)試時(shí),不單單要測(cè)試系統(tǒng)是否處理了用戶(hù)的異常操作,還要檢查系統(tǒng)對(duì)于這些異常操作是否給予了正確的錯(cuò)誤提示。它是系統(tǒng)對(duì)用戶(hù)進(jìn)行繼續(xù)正確操作的指引。
簡(jiǎn)言之負(fù)面測(cè)試的三部曲就是:
1、檢查程序中的屏幕或頁(yè)面是否給出了清晰且充分的提示或約束;
2、測(cè)試系統(tǒng)是否處理了用戶(hù)的異常操作;
3、檢查系統(tǒng)的錯(cuò)誤提示是否清晰且充分。
以下是Steve Miller的《Top 10 Negative Test Cases》,概括性的提到了一些做負(fù)面測(cè)試時(shí)經(jīng)常需要注意的測(cè)試。
負(fù)面測(cè)試用例被設(shè)計(jì)于用軟件未意欲被使用的方式測(cè)試軟件,它也應(yīng)該是測(cè)試工作的一部分。以下就是在設(shè)計(jì)測(cè)試工作量時(shí)你應(yīng)該考慮的十大負(fù)面測(cè)試用例。
1、植入的單引號(hào)。大多數(shù)基于SQL的數(shù)據(jù)庫(kù)系統(tǒng)在用戶(hù)存儲(chǔ)包含一個(gè)單引號(hào)的信息時(shí)會(huì)出現(xiàn)問(wèn)題,例如John's car。每一個(gè)可以接受文字?jǐn)?shù)字型數(shù)據(jù)條目的屏幕都要試試輸入包含一個(gè)或多個(gè)單引號(hào)的文本。
【補(bǔ)充】其實(shí)不只是單引號(hào),基本上測(cè)試人員應(yīng)該測(cè)試所有的特殊字符和空/空格(單純的空格和文本前后的空格)。單引號(hào),逗號(hào),/,<,>(對(duì)于web的應(yīng)用程序)都是很容易引發(fā)錯(cuò)誤的。在開(kāi)發(fā)早期測(cè)試組就可以建議開(kāi)發(fā)組寫(xiě)一個(gè)通用的函數(shù)來(lái)處理這些特殊字符,然后在處理用戶(hù)的輸入時(shí)套用這個(gè)函數(shù)就可以避免此類(lèi)錯(cuò)誤了。
2、必需輸入的數(shù)據(jù)條目。功能說(shuō)明書(shū)上應(yīng)該清楚的指出屏幕上必須輸入數(shù)據(jù)條目的字段。測(cè)試屏幕上每一個(gè)被說(shuō)明為必須輸入的字段以保證它強(qiáng)制要求你在字段中輸入數(shù)據(jù)。
【補(bǔ)充】對(duì)于強(qiáng)制輸入的字段,在屏幕上最好有些標(biāo)識(shí)以說(shuō)明其為必須輸入的字段。一般在字段前或后用紅色的*號(hào)表示。測(cè)試時(shí)必須要檢查有標(biāo)識(shí)的字段是否和功能說(shuō)明書(shū)或其他參考文檔一致,錯(cuò)誤信息提示是否正確,強(qiáng)制輸入的字段是否真的必須輸入。
3、字段類(lèi)型測(cè)試。功能說(shuō)明書(shū)上應(yīng)該清楚的指出要求特定數(shù)據(jù)輸入要求(日期字段,數(shù)字字段,電話(huà)號(hào)碼,郵編等等)的字段。測(cè)試屏幕上每一個(gè)被指出有特定類(lèi)型的字段以保證你輸入了基于字段類(lèi)型的符合正確格式的數(shù)據(jù)(數(shù)字型字段應(yīng)該不允許字符或特殊字符,日期型的字段應(yīng)該允許輸入一個(gè)正確的日期等等)
【補(bǔ)充】其實(shí)這里還有一個(gè)字段格式和字段內(nèi)容的測(cè)試。有些字段對(duì)輸入的格式有要求,這些字段的格式一般在屏幕上也有相應(yīng)的提示。所以在測(cè)試時(shí)需要測(cè)試提示的格式是否合理(和功能說(shuō)明書(shū)或其他參考文檔相一致)以及系統(tǒng)是否正確識(shí)別輸入的格式。有些字段對(duì)字段的內(nèi)容有限制,如常見(jiàn)的用戶(hù)名,不能包含特殊字符,首字不能未數(shù)字等要求。所以在測(cè)試時(shí)需要測(cè)試提示的格式是否合理(和功能說(shuō)明書(shū)或其他參考文檔相一致)還有不符合內(nèi)容要求的數(shù)據(jù)輸入時(shí)系統(tǒng)是否正確的處理。
4、字段長(zhǎng)度測(cè)試。功能說(shuō)明書(shū)上應(yīng)該清楚的指出可以在字段中輸入的字符數(shù)(例如,first name必須是50個(gè)或更少的字符)。寫(xiě)測(cè)試用例以保證你只可以輸入特定的字符數(shù)。防止用戶(hù)輸入比允許范圍更多的字符比因用戶(hù)已輸入過(guò)多的字符而給出的錯(cuò)誤信息更加的文雅些。
【補(bǔ)充】一般對(duì)于限制長(zhǎng)度的字段,現(xiàn)在開(kāi)發(fā)大多采用限制輸入的方法(設(shè)置字段的長(zhǎng)度)來(lái)處理。所以測(cè)試時(shí)需要測(cè)試限制的長(zhǎng)度是否合理(和功能說(shuō)明書(shū)或其他參考文檔相一致),對(duì)于沒(méi)有限制長(zhǎng)度的字段,要測(cè)試無(wú)窮輸入時(shí)是否出錯(cuò),有問(wèn)題報(bào)bug時(shí)建議開(kāi)發(fā)人員根據(jù)需要限制長(zhǎng)度。
5、數(shù)字型的邊界測(cè)試。對(duì)于數(shù)字型的字段,測(cè)試上下邊界是非常重要的。例如,如果你正在計(jì)算某個(gè)賬戶(hù)的利息時(shí),你永遠(yuǎn)不會(huì)輸入一個(gè)負(fù)的利息數(shù)給應(yīng)該贏取利息的賬戶(hù)。因此,你應(yīng)該嘗試用負(fù)數(shù)測(cè)試。同樣,如果功能說(shuō)明書(shū)上要求字段在某一個(gè)特定的范圍(如從10~50),你就應(yīng)該嘗試輸入9或51,它應(yīng)該給出一個(gè)得體的信息表示失敗。
6、數(shù)字的約束測(cè)試。大多數(shù)數(shù)據(jù)庫(kù)系統(tǒng)和編程語(yǔ)言允許數(shù)字條目被識(shí)別為整數(shù)或長(zhǎng)整數(shù)。通常,整數(shù)的范圍是從-32,767~32,767,長(zhǎng)整數(shù)的范圍從-2,147,483,648~2,147,483,647。對(duì)于那些沒(méi)有特定邊界限制的數(shù)字?jǐn)?shù)據(jù)條目,用這些限制測(cè)試以確保不會(huì)出現(xiàn)數(shù)字的溢出錯(cuò)誤。
【補(bǔ)充】小數(shù)型的數(shù)字字段同樣也需要格外的測(cè)試。一般對(duì)于未指出數(shù)字類(lèi)型的字段,嘗試輸入負(fù)整數(shù),負(fù)小數(shù),0,正整數(shù),正小數(shù)進(jìn)行測(cè)試。
不管是哪種數(shù)據(jù)庫(kù)系統(tǒng),對(duì)于數(shù)字一般都有多種數(shù)字類(lèi)型。所以測(cè)試人員一定要測(cè)試的全面。
7、日期邊界測(cè)試。對(duì)于日期型的字段,測(cè)試上下邊界是很重要的。例如,如果你正在檢查一個(gè)出生日期的字段,很大可能出生日期不能早于150年前。同樣,出生日期應(yīng)該不是將來(lái)的某一天。
【補(bǔ)充】一般來(lái)說(shuō),每種數(shù)據(jù)庫(kù)系統(tǒng)的日期都有個(gè)范圍,如SQL Server最小日期是1753年1月1日,所以如果是輸入型的日期字段同樣也應(yīng)該測(cè)試早于1753的日期。
8、日期的有效性。對(duì)于日期字段,確保不允許無(wú)效的日期是很重要的(04/31/2007是一個(gè)無(wú)效的日期)。測(cè)試用例也應(yīng)該檢查閏年(每個(gè)第4年和第400年是一個(gè)閏年)。
9、web會(huì)話(huà)測(cè)試。很多的web應(yīng)用程序依賴(lài)瀏覽器的會(huì)話(huà)來(lái)追蹤已登錄的用戶(hù),應(yīng)用程序的設(shè)置等等。應(yīng)用程序的大多數(shù)屏幕不被設(shè)計(jì)為沒(méi)有首次登錄就可以被運(yùn)行。應(yīng)用程序應(yīng)該確保在打開(kāi)應(yīng)用程序的某一頁(yè)面之前會(huì)話(huà)里有一個(gè)有效的登錄。
10、性能的改變。當(dāng)發(fā)布產(chǎn)品的最新版本時(shí),應(yīng)該有一套運(yùn)行于識(shí)別屏幕(列出信息的屏幕,add/update/delete數(shù)據(jù)的屏幕等等)速度的性能測(cè)試。測(cè)試包里應(yīng)該包括比較先前版本和現(xiàn)有版本性能統(tǒng)計(jì)值的測(cè)試用例。這個(gè)可以幫助識(shí)別那些可以證明是隨著對(duì)現(xiàn)有版本的代碼變更而引起的潛在的性能問(wèn)題。
【補(bǔ)充】從第一條到第八條是我們?cè)跍y(cè)試字段時(shí)常常需要做的測(cè)試,一般的測(cè)試人員都不陌生。第九條在測(cè)試web應(yīng)用程序中會(huì)作為檢查應(yīng)用程序的安全性而做的一項(xiàng)測(cè)試。而第十條估計(jì)很多公司都不會(huì)將它考慮到測(cè)試的范疇中,一般最多也就是在測(cè)試用例中添加校驗(yàn)?zāi)骋粋€(gè)操作是否在系統(tǒng)允許的響應(yīng)時(shí)間里,很少去做這樣的比較,除了一些有針對(duì)性的性能測(cè)試。
轉(zhuǎn)載于:https://www.cnblogs.com/junzhongxu/archive/2008/07/24/1250276.html
總結(jié)
以上是生活随笔為你收集整理的调皮捣蛋的孩子--十大负面测试用例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【初阶与进阶C++详解】第二十二篇:C+
- 下一篇: 35种低碳水化合物食物清单