軟件的安裝與卸載的常用測(cè)試點(diǎn)
1.不同的系統(tǒng)配置下佳吞,安裝花費(fèi)的時(shí)間。
2.使用系統(tǒng)工具為一些基本配置創(chuàng)建系統(tǒng)鏡像贪惹。
3.多次安裝。
4.不同路徑安裝衙猪。
5.版本迭代安裝馍乙。
6.硬盤(pán)空間檢查。
7.強(qiáng)制中斷安裝垫释。
8.確保卸載后所有寫(xiě)入硬盤(pán)的文件都會(huì)被移除丝格,
……………………………………………………………………………………………………………………………………………………………………
文件上傳和下載的常用測(cè)試點(diǎn)
文件上傳:
頁(yè)面審查
?頁(yè)面美觀性、易用性(鍵盤(pán)和鼠標(biāo)的操作棵譬、tab跳轉(zhuǎn)的順序是否正確)
?按鈕文字显蝌,說(shuō)明文字正確性
?正確/錯(cuò)誤的提示文字是否正確
?提示當(dāng)前位置是否正確,并且和其他頁(yè)面保持一致格式
?必填項(xiàng)的標(biāo)示是否正確
基本功能
?路徑是否可以手工輸入(手工輸入的時(shí)候有沒(méi)有限長(zhǎng))
?上傳文件超過(guò)最大值是在提交前校驗(yàn)還是提交后校驗(yàn)
?上傳文件格式是否全部支持(圖片:gif/jpg/bmp…文檔:doc/sxw/xls…壓縮包:zip/rar…安裝文件:exe/msi)
?上傳文件是否支持中文名稱
?文件名稱的最大值订咸、最小值曼尊、特殊字符(包含空格)、使用程序語(yǔ)句是否會(huì)對(duì)其造成影響脏嚷、中文名稱是否能正常顯示
?對(duì)于是否發(fā)布的設(shè)置是否正確(前臺(tái)校驗(yàn))
?簡(jiǎn)介最大值骆撇、特殊字符、使用程序語(yǔ)句是否會(huì)對(duì)其造成影響
按鈕
1.保存按鈕:對(duì)輸入項(xiàng)有錯(cuò)誤提示后光標(biāo)提示是否正確/對(duì)輸入項(xiàng)的錯(cuò)誤提示是否描述正確/對(duì)必添項(xiàng)是否進(jìn)行校驗(yàn)
2?.清空按鈕:是否清除(或還原)了填寫(xiě)內(nèi)容
3?.返回按鈕:是否返回上一頁(yè)面
文件下載:
頁(yè)面
?當(dāng)前位置的提示是否現(xiàn)實(shí)正確
?頁(yè)面美觀性父叙、易用性(鍵盤(pán)和鼠標(biāo)的操作神郊、tab跳轉(zhuǎn)的順序是否正確)
?按鈕文字是否正確
?說(shuō)明性文字是否正確
?正確/錯(cuò)誤的提示文字是否正確
功能
?右鍵另存為是否可以正確下載文件,并且記錄下載次數(shù)
?工具下載是否正確趾唱,并且記錄下載次數(shù)
?單擊下載是提示下載還是在頁(yè)面打開(kāi)
?直接打開(kāi)是否顯示正確
對(duì)于本機(jī)沒(méi)有安裝工具的文件是否能夠打開(kāi)涌乳,是否能給出正確的提示
對(duì)于直接在頁(yè)面內(nèi)打開(kāi)的內(nèi)容是否能夠顯示正常,頁(yè)面美觀性
保存到本地是否能正確顯示
取消下載是否會(huì)紀(jì)錄下載次數(shù)
下載次數(shù)是否被正確記錄
后臺(tái)沒(méi)有發(fā)布的文件是否在前臺(tái)可以找到并下載
后臺(tái)設(shè)置了下載權(quán)限的文件是否可以被正確看到甜癞、是否可以下載
按鈕
返回按鈕是否回到上一頁(yè)面
……………………………………………………………………………………………………………………………………………………………………
性能測(cè)試介紹
性能測(cè)試(或稱多用戶并發(fā)性能測(cè)試)夕晓、負(fù)載測(cè)試、強(qiáng)度測(cè)試悠咱、容量測(cè)試是性能測(cè)試領(lǐng)域里的幾個(gè)方面蒸辆,但是概念很容易混淆征炼。下面將幾個(gè)概念進(jìn)行介紹。
性能測(cè)試(Performance Test):通常收集所有和測(cè)試有關(guān)的所有性能吁朦,通常被不同人在不同場(chǎng)合下進(jìn)行使用柒室。
關(guān)注點(diǎn):how much和how fast
負(fù)載測(cè)試(Load Test):負(fù)載測(cè)試是一種性能測(cè)試,指數(shù)據(jù)在超負(fù)荷環(huán)境中運(yùn)行逗宜,程序是否能夠承擔(dān)。
關(guān)注點(diǎn):how much
強(qiáng)度測(cè)試(Stress Test): 強(qiáng)度測(cè)試是一種性能測(cè)試空骚,他在系統(tǒng)資源特別低的情況下軟件系統(tǒng)運(yùn)行情況纺讲,目的是找到系統(tǒng)在哪里失效以及如何失效的地方。包括
Spike testing:短時(shí)間的極端負(fù)載測(cè)試 Extreme testing:在過(guò)量用戶下的負(fù)載測(cè)試 Hammer testing:連續(xù)執(zhí)行所有能做的操作
容量測(cè)試(Volume Test):確定系統(tǒng)可處理同時(shí)在線的最大用戶數(shù)
關(guān)注點(diǎn):how much(而不是how fast)
容量測(cè)試囤屹,通常和數(shù)據(jù)庫(kù)有關(guān)熬甚,容量和負(fù)載的區(qū)別在于:容量關(guān)注的是大容量,而不需要表現(xiàn)實(shí)際的使用肋坚。
性能測(cè)試工具
LoadRunner——性能測(cè)試和負(fù)載測(cè)試
LoadRunner是一種預(yù)測(cè)系統(tǒng)行為和性能的負(fù)載測(cè)試工具乡括,通過(guò)模擬實(shí)際用戶的操作行為進(jìn)行實(shí)時(shí)性能監(jiān)測(cè),來(lái)幫助測(cè)試人員更快的查找和發(fā)現(xiàn)問(wèn)題智厌。LoadRunner適用于各種體系架構(gòu)诲泌,能支持廣泛的協(xié)議和技術(shù),為測(cè)試提供特殊的解決方案铣鹏。企業(yè)通過(guò)LoadRunner能最大限度地縮短測(cè)試時(shí)間敷扫,優(yōu)化性能并加速應(yīng)用系統(tǒng)的發(fā)布周期。
LoadRunner提供了3大主要功能模塊:
VirtualUser Generator(用于錄制性能測(cè)試腳本)诚卸,
LoadRunner Controller(用于創(chuàng)建葵第、運(yùn)行和監(jiān)控場(chǎng)景),
LoadRunner Analysis(用于分析性能測(cè)試結(jié)果)既可以作為獨(dú)立的工具完成各自的功能合溺,又可以作為L(zhǎng)oadRunner的一部分彼此銜接卒密,與其他模塊共同完成軟件性能的整體測(cè)試。
Apache JMeter
JMeter作為一款廣為流傳的開(kāi)源壓測(cè)產(chǎn)品棠赛,最初被設(shè)計(jì)用于Web應(yīng)用測(cè)試哮奇,如今JMeter可以用于測(cè)試靜態(tài)和動(dòng)態(tài)資源,例如靜態(tài)文件恭朗、Java 小服務(wù)程序屏镊、CGI 腳本、Java 對(duì)象痰腮、數(shù)據(jù)庫(kù)而芥、FTP服務(wù)器等等,還能對(duì)服務(wù)器膀值、網(wǎng)絡(luò)或?qū)ο竽M巨大的負(fù)載棍丐,通過(guò)不同壓力類(lèi)別測(cè)試它們的強(qiáng)度和分析整體性能误辑。另外,JMeter能夠?qū)?yīng)用程序做功能測(cè)試和回歸測(cè)試歌逢,通過(guò)創(chuàng)建帶有斷言的腳本來(lái)驗(yàn)證你的程序返回了你期望的結(jié)果巾钉。為了最大限度的靈活性,JMeter允許使用正則表達(dá)式創(chuàng)建斷言秘案。
JMeter的特點(diǎn)包括對(duì)HTTP砰苍、FTP服務(wù)器、數(shù)據(jù)庫(kù)進(jìn)行壓力測(cè)試和性能測(cè)試阱高;完全的可移植性赚导;完全 Swing和輕量組件支持包;完全多線程赤惊;緩存和離線分析/回放測(cè)試結(jié)果吼旧;可鏈接的取樣器;具有提供動(dòng)態(tài)輸入到測(cè)試的功能未舟;支持腳本編程的取樣器等圈暗。在設(shè)計(jì)階段,JMeter能夠充當(dāng)HTTP PROXY(代理)來(lái)記錄瀏覽器的HTTP請(qǐng)求裕膀,也可以記錄Apache等WebServer的log文件來(lái)重現(xiàn)HTTP流量员串,并在測(cè)試運(yùn)行時(shí)以此為依據(jù)設(shè)置重復(fù)次數(shù)和并發(fā)度(線程數(shù))來(lái)進(jìn)行壓測(cè)。
3
CloudTest
CloudTest 是一個(gè)集性能和功能測(cè)試于一體的綜合壓力測(cè)試云平臺(tái)魂角,專(zhuān)為現(xiàn)代網(wǎng)絡(luò)和移動(dòng)應(yīng)用測(cè)試而設(shè)計(jì)開(kāi)發(fā)昵济,CloudTest可以圖形化實(shí)現(xiàn)判斷、循環(huán)野揪,整體減輕了測(cè)試開(kāi)發(fā)的工作量访忿,縮短了開(kāi)發(fā)時(shí)間。CloudTest基于內(nèi)存的分析引擎斯稳,可以實(shí)時(shí)收集和展示數(shù)據(jù)海铆,所有數(shù)據(jù)在3秒內(nèi)匯聚顯示。CloudTest采用虛擬化技術(shù)挣惰,完美的配合公有/私有云計(jì)算技術(shù)卧斟,無(wú)需過(guò)多的硬件,帶寬資源的投入憎茂,人力維護(hù)成本幾乎為零珍语,測(cè)試按需獲得,遠(yuǎn)程接入竖幔,適合多團(tuán)隊(duì)協(xié)作板乙。各種規(guī)模的模擬成本均遠(yuǎn)遠(yuǎn)優(yōu)于傳統(tǒng)工具,同時(shí)大大縮短了測(cè)試周期
BUG管理工具的跟蹤過(guò)程
用BugZilla為例子,
1.測(cè)試人員發(fā)現(xiàn)了BUG募逞,提交到Bugzilla中蛋铆,狀態(tài)為new,BUG的接受者為開(kāi)發(fā)接口人員
2.開(kāi)發(fā)接口人員將BUG分配給相關(guān)的模塊的開(kāi)發(fā)人員放接,狀態(tài)修改為已分配
3.開(kāi)發(fā)人員和測(cè)試確認(rèn)BUG刺啦,如果是本人的BUG,則設(shè)置為接收纠脾;如果是別的開(kāi)發(fā)人員的問(wèn)題玛瘸,則轉(zhuǎn)發(fā)出去,由下一個(gè)開(kāi)發(fā)人員來(lái)進(jìn)行此行為苟蹈;如果認(rèn)為不是問(wèn)題捧韵,則需要大家討論并確認(rèn)后,拒絕這個(gè)BUG汉操,然后測(cè)試人員關(guān)閉此問(wèn)題。
4.如果開(kāi)發(fā)人員接受了BUG蒙兰,并修改好以后磷瘤,將BUG狀態(tài)修改為已修復(fù),并告知測(cè)試在哪個(gè)版本中可以測(cè)試搜变。
5.測(cè)試人員在新版本中測(cè)試采缚,如果發(fā)現(xiàn)問(wèn)題依然存在,則拒絕修改挠他;如果已經(jīng)修復(fù)扳抽,則關(guān)閉BUG。
邏輯覆蓋的六種常見(jiàn)類(lèi)型
邏輯覆蓋包括:語(yǔ)句覆蓋殖侵、判定覆蓋贸呢、條件覆蓋、判定/條件覆蓋拢军、條件組合覆蓋楞陷、路徑覆蓋。
語(yǔ)句覆蓋是指設(shè)計(jì)若干測(cè)試用例茉唉,使程序中的每個(gè)可執(zhí)行語(yǔ)句至少執(zhí)行一次固蛾;
判定覆蓋是指設(shè)計(jì)若干測(cè)試用例,使程序中的每個(gè)判斷真假的分支至少遍歷一次度陆;
條件覆蓋是指設(shè)計(jì)若干測(cè)試用例艾凯,使程序中的每個(gè)條件的可能取值至少滿足一次;
判定/條件覆蓋是指選擇足夠的測(cè)試用例懂傀,使得同時(shí)滿足判定覆蓋和條件覆蓋
條件組合覆蓋是指選擇足夠的測(cè)試用例趾诗,使得程序中每一個(gè)分支判斷中的每一個(gè)條件的每一種可能組合結(jié)果都至少被執(zhí)行一次;
路徑覆蓋是指選擇足夠的測(cè)試用例鸿竖,使得程序中所有的可能路徑都至少被執(zhí)行一次沧竟。
web測(cè)試用例編寫(xiě)方法:
1界面審查
2基本功能
3業(yè)務(wù)邏輯
4綜合場(chǎng)景
如何測(cè)試一只筆
首先铸敏,軟件測(cè)試按照階段來(lái)分可以分為單元測(cè)試、集成測(cè)試悟泵、系統(tǒng)測(cè)試杈笔、回歸測(cè)試;
按照測(cè)試的關(guān)注點(diǎn)來(lái)分可以分為功能測(cè)試糕非、性能測(cè)試蒙具、易用性測(cè)試、外觀測(cè)試朽肥、安全性測(cè)試和適配性測(cè)試
對(duì)應(yīng)到一支筆的測(cè)試中禁筏,按照階段,分為單個(gè)零部件(外殼衡招、圓珠筆的彈簧篱昔、筆帽、筆芯(筆芯又包含筆油始腾、圓珠州刽、筆芯的管))測(cè)試,組裝測(cè)試浪箭,整體測(cè)試穗椅。
按照測(cè)試關(guān)注點(diǎn)來(lái)分,功能測(cè)試奶栖,例如能否正常書(shū)寫(xiě)匹表,是否有筆油泄露,筆帽能否正常按下宣鄙、彈起袍镀,等等;
性能測(cè)試框冀,例如一支筆可以用多長(zhǎng)時(shí)間流椒,寫(xiě)出的字是否褪色等;
易用性測(cè)試明也,例如筆的長(zhǎng)短粗細(xì)是否趁手宣虾,一根筆芯用完了是否容易更換(對(duì)應(yīng)于軟件是否容易部署、掌握使用方法)温数;
外觀測(cè)試绣硝,例如外形是否美觀、時(shí)尚撑刺、有趣鹉胖;安全性測(cè)試,例如筆油是否含有害化學(xué)物質(zhì),筆尖是否容易傷到人甫菠,筆油或墨水的保質(zhì)期多長(zhǎng)挠铲、過(guò)了保質(zhì)期是否產(chǎn)生有害物質(zhì);
適配性寂诱,例如在不同的溫度拂苹、氣壓、重力環(huán)境下能否正常使用痰洒,在不同的紙質(zhì)瓢棒、書(shū)寫(xiě)力度下寫(xiě)出的結(jié)果如何。
軟件缺陷:
1)軟件未實(shí)現(xiàn)產(chǎn)品說(shuō)明書(shū)要求的功能
2)軟件出現(xiàn)了產(chǎn)品說(shuō)明書(shū)指明不應(yīng)該出現(xiàn)的錯(cuò)誤
3)軟件實(shí)現(xiàn)了產(chǎn)品說(shuō)明書(shū)未提到的功能
4)軟件未實(shí)現(xiàn)產(chǎn)品說(shuō)明書(shū)雖未明確提及但應(yīng)該實(shí)現(xiàn)的目標(biāo)
5)軟件難以理解丘喻、不易使用脯宿、運(yùn)行緩慢或者從測(cè)試員的角度看最終用戶會(huì)認(rèn)為不好
對(duì)軟件測(cè)試的理解:
為了發(fā)現(xiàn)軟件產(chǎn)品中的各種缺陷,而對(duì)軟件產(chǎn)品進(jìn)行驗(yàn)證和確認(rèn)的活動(dòng)過(guò)程泉粉,此過(guò)程貫穿整個(gè)軟件開(kāi)發(fā)生命周期连霉。 簡(jiǎn)單的說(shuō),軟件測(cè)試是以發(fā)現(xiàn)錯(cuò)誤為目的而執(zhí)行的一個(gè)程序或系統(tǒng)的過(guò)程嗡靡。
軟件測(cè)試的目的:
驗(yàn)證軟件需求和功能是否得到完整實(shí)現(xiàn)
驗(yàn)證軟件是否可以發(fā)布
盡可能多的發(fā)現(xiàn)軟件中的bug
盡可能早的發(fā)現(xiàn)軟件中的bug
對(duì)軟件質(zhì)量做出合理評(píng)估
預(yù)防下個(gè)版本可能出現(xiàn)的問(wèn)題
預(yù)防用戶使用可能出現(xiàn)的問(wèn)題
發(fā)現(xiàn)開(kāi)發(fā)過(guò)程中的問(wèn)題和風(fēng)險(xiǎn)
軟件測(cè)試的原則:
所有測(cè)試的標(biāo)準(zhǔn)都是建立在用戶需求之上 窘面。
合理控制測(cè)試深度與廣度,完全測(cè)試不可能叽躯,測(cè)試的投入與產(chǎn)出要均衡。
80-20原則肌括,軟件中80%的bug可以在分析点骑、設(shè)計(jì)與評(píng)審階段就能被發(fā)現(xiàn)與修正,16%的缺陷在系統(tǒng)的軟件測(cè)試中發(fā)現(xiàn)谍夭,最后剩下的4%是用戶長(zhǎng)期使用的過(guò)程中才能暴露出來(lái)黑滴。
盡可能早的開(kāi)展測(cè)試,越早發(fā)現(xiàn)錯(cuò)誤紧索,修改的代價(jià)越小袁辈。
發(fā)現(xiàn)錯(cuò)誤較多的程序段,應(yīng)進(jìn)行更深入的測(cè)試珠漂。
軟件項(xiàng)目一啟動(dòng)晚缩,軟件測(cè)試也就是開(kāi)始,而不是等程序?qū)懲晗蔽#砰_(kāi)始進(jìn)行測(cè)試 荞彼。
軟件開(kāi)發(fā)人員即程序員應(yīng)當(dāng)避免測(cè)試自己的程序
嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性待笑,以避免發(fā)生疏漏或者重復(fù)無(wú)效的工作
優(yōu)秀測(cè)試人員應(yīng)具備的素質(zhì):
1)溝通能力與表達(dá)能力 2)好奇心與懷疑精神 3)責(zé)任感與抗壓能力 4)自信心鸣皂,堅(jiān)持自己的觀點(diǎn)
5)耐心與細(xì)心 6)逆向思維的能力 7)善于學(xué)習(xí)與總結(jié) 8)團(tuán)隊(duì)協(xié)作精神 9)文檔編寫(xiě)能力
優(yōu)秀測(cè)試人員應(yīng)具備的技能:
1)精通業(yè)務(wù)知識(shí) 2)具備軟件編程能力,比如C,C++,JAVA等。 3)可以用腳本語(yǔ)言編寫(xiě)小測(cè)試工具
4)主流操作系統(tǒng)應(yīng)用與網(wǎng)絡(luò)知識(shí)寞缝,可以搭建測(cè)試環(huán)境 5)熟練掌握各種數(shù)據(jù)庫(kù)知識(shí) 6)精通軟件測(cè)試?yán)碚撆c方法
7)掌握常用測(cè)試與開(kāi)發(fā)工具的使用 8)優(yōu)秀的文檔編寫(xiě)能力
軟件開(kāi)發(fā)流程(軟件生命周期):
計(jì)劃-》需求分析-》設(shè)計(jì)-》程序編寫(xiě)-》測(cè)試-》運(yùn)行/維護(hù)
軟件測(cè)試流程:
測(cè)試計(jì)劃-》需求分析-》測(cè)試用例-》測(cè)試用例執(zhí)行-》提交bug-》回歸測(cè)試
軟件開(kāi)發(fā)模型:
瀑布模型:
適用于需求很明確的項(xiàng)目癌压,分階段向下進(jìn)行,無(wú)法回溯
迭代模型:
需求不明確荆陆,迭代版本系統(tǒng)
敏捷開(kāi)發(fā)模型:
敏捷開(kāi)發(fā)是一種以人為核心滩届、迭代、循序漸進(jìn)的開(kāi)發(fā)方法慎宾。 在敏捷開(kāi)發(fā)中丐吓,軟件項(xiàng)目被切分成多個(gè)子項(xiàng)目,各個(gè)子項(xiàng)目的成果都經(jīng)過(guò)測(cè)試趟据,具備集成和可運(yùn)行的特征券犁。換言之,就是把一個(gè)大項(xiàng)目分為多個(gè)相互聯(lián)系汹碱,但也可獨(dú)立運(yùn)行的小項(xiàng)目粘衬,并分別完成,在此過(guò)程中軟件一直處于可使用狀態(tài)咳促。
測(cè)試驅(qū)動(dòng)開(kāi)發(fā)模型:
先編寫(xiě)測(cè)試代碼稚新,再寫(xiě)開(kāi)發(fā)代碼
軟件測(cè)試模型:
V模型:反映了測(cè)試與開(kāi)發(fā)階段之間一一對(duì)應(yīng)的特點(diǎn),測(cè)試在開(kāi)發(fā)之后跪腹,出錯(cuò)后回歸測(cè)試量大
W模型:測(cè)試伴隨整個(gè)開(kāi)發(fā)周期褂删,測(cè)試與開(kāi)發(fā)同步進(jìn)行,有利于盡早發(fā)現(xiàn)問(wèn)題
H模型:軟件測(cè)試活動(dòng)完全獨(dú)立冲茸,與其他流程并行
單元測(cè)試內(nèi)容(參考詳細(xì)設(shè)計(jì)說(shuō)明書(shū))
單元測(cè)試還要以功能點(diǎn)測(cè)試為主屯阀,統(tǒng)計(jì)測(cè)試的覆蓋率,同時(shí)測(cè)試模塊的輸入/輸出接口是否正確轴术,內(nèi)部的數(shù)據(jù)流是否正確等难衰。
(1)功能點(diǎn)測(cè)試 一般要求功能覆蓋100%
(2)覆蓋率 一般要求統(tǒng)計(jì)語(yǔ)句覆蓋和分支覆蓋率,也稱路徑測(cè)試逗栽,很難達(dá)到100%
(3)模塊接口測(cè)試
1)在單元測(cè)試的開(kāi)始盖袭,應(yīng)對(duì)所測(cè)模塊的數(shù)據(jù)流進(jìn)行測(cè)試。如果數(shù)據(jù)不能被正確的輸入和輸出彼宠,就不能進(jìn)行其他測(cè)試
2)對(duì)模塊接口可能需要進(jìn)行下面的測(cè)試項(xiàng)目:調(diào)用所測(cè)模塊的輸入?yún)?shù)與模塊的形式參數(shù)鳄虱,測(cè)試它們?cè)趥€(gè)數(shù)、屬性凭峡、順序上是否匹配醇蝴。
3)所測(cè)模塊調(diào)用子模塊時(shí),它輸入給子模塊的參數(shù)與子模塊的形式參數(shù)在個(gè)數(shù)想罕、屬性悠栓、順序上是否匹配
4)是否修改了只做輸入用的形式參數(shù)
5)輸出標(biāo)準(zhǔn)函數(shù)的參數(shù)在個(gè)數(shù)霉涨、屬性、順序上是否正確
6)全局變量的定義在各模塊中是否一致
7)是否限制通過(guò)形式參數(shù)來(lái)傳送
8)模塊對(duì)外部文件惭适、數(shù)據(jù)庫(kù)進(jìn)行輸入/輸出時(shí)笙瑟,必須對(duì)文件操作進(jìn)行測(cè)試,例如緩沖區(qū)大小癞志、是否在讀寫(xiě)文件前打開(kāi)文件往枷,在結(jié)束前關(guān)閉文件等。
(4)內(nèi)部數(shù)據(jù)流測(cè)試
1)不正確或不一致的數(shù)據(jù)類(lèi)型說(shuō)明
2)使用尚未賦值或尚未初始化的變量
3)錯(cuò)誤的初始值或錯(cuò)誤的缺省值
4)變量名拼寫(xiě)錯(cuò)誤或書(shū)寫(xiě)錯(cuò)誤
5)不一致的數(shù)據(jù)類(lèi)型
(5)異常/錯(cuò)誤處理
比較完善的模塊設(shè)計(jì)要求能預(yù)見(jiàn)異称啾或出錯(cuò)的條件错洁,并設(shè)置適當(dāng)?shù)漠惓L幚砗统鲥e(cuò)處理的方法,以便在程序出現(xiàn)異辰渫唬或錯(cuò)誤時(shí)屯碴,能對(duì)出錯(cuò)程序重做安排,保證邏輯上的正確性膊存。重點(diǎn)應(yīng)考慮:
異车级或出錯(cuò)的描述是否可以理解?
異常處理是否合理隔崎、出錯(cuò)后對(duì)錯(cuò)誤定位是否準(zhǔn)確今艺?
提示的錯(cuò)誤與實(shí)際的錯(cuò)誤是否一致?
對(duì)錯(cuò)誤條件的處理是否正確爵卒?
單元測(cè)試用例設(shè)計(jì)
可以采用所學(xué)的所有測(cè)試用例設(shè)計(jì)方法虚缎,基本過(guò)程如下:
(1)設(shè)計(jì)一個(gè)能使系統(tǒng)運(yùn)行的測(cè)試用例:該測(cè)試用例一般使用最簡(jiǎn)單的方法測(cè)試被測(cè)單元。通過(guò)這個(gè)測(cè)試用例钓株,能夠確定測(cè)試環(huán)境和測(cè)試單元是否具有可用性遥巴。
(2)設(shè)計(jì)測(cè)試功能的正向測(cè)試用例(通過(guò)性測(cè)試):閱讀相關(guān)的設(shè)計(jì)說(shuō)明,每一個(gè)測(cè)試用例都是有針對(duì)行的測(cè)試說(shuō)明書(shū)中的一項(xiàng)或者多項(xiàng)內(nèi)容享幽,用以驗(yàn)證設(shè)計(jì)說(shuō)明書(shū)所對(duì)應(yīng)的功能是否能實(shí)現(xiàn)。
(3)設(shè)計(jì)測(cè)試功能的反向測(cè)試用例(失效性測(cè)試):用可能導(dǎo)致模塊功能失效的無(wú)效數(shù)據(jù)拾弃,測(cè)試模塊對(duì)無(wú)效數(shù)據(jù)的反應(yīng)是否合理值桩,對(duì)異常或錯(cuò)誤的處理后豪椿,模塊反應(yīng)如何奔坟,驗(yàn)證模塊是否做了不應(yīng)該做的工作。
(4)設(shè)計(jì)其他的測(cè)試用例搭盾,驗(yàn)證設(shè)計(jì)對(duì)模塊的要求咳秉。例如:性能、可恢復(fù)性鸯隅、安全性等澜建。
(5)加載測(cè)試用例運(yùn)行程序向挖,查看和記錄測(cè)試結(jié)果,尤其注意測(cè)試結(jié)果與預(yù)期結(jié)果不一致的情況炕舵。
(6)補(bǔ)充測(cè)試用例何之,執(zhí)行前面測(cè)試用例運(yùn)行沒(méi)有覆蓋到的分支和語(yǔ)句。
集成測(cè)試的內(nèi)容:(參考概要設(shè)計(jì)說(shuō)明書(shū))
1.連接各模塊時(shí)數(shù)據(jù)是否丟失咽筋,
2.一個(gè)模塊的功能是否對(duì)另一個(gè)模塊的功能產(chǎn)生影響溶推。
3.各個(gè)子功能結(jié)合起來(lái)是否到達(dá)預(yù)期要求的功能。
4.全局?jǐn)?shù)據(jù)結(jié)構(gòu)奸攻。
靜態(tài)白盒測(cè)試中的檢查代碼
1.檢查設(shè)計(jì)和代碼:在不執(zhí)行軟件的前提下有條理地仔細(xì)審查軟件設(shè)計(jì)蒜危,又稱為結(jié)構(gòu)化測(cè)試要糊。
2.正式審查:確定問(wèn)題(就事論事)->遵守規(guī)則(不該管的不要管)->準(zhǔn)備(做什么警没,怎么做)->編寫(xiě)報(bào)告(書(shū)面總結(jié)報(bào)告)
2.1同事審查 小組相互審查。
2.2走查:編寫(xiě)代碼的程序員向小組中的其它程序員和測(cè)試人員組成的小組做正式陳述闽铐。
2.3檢驗(yàn):表達(dá)代碼的人不是原來(lái)的程序員疏橄,要求每一個(gè)參與者都接受訓(xùn)練占拍,其余參與者成為檢驗(yàn)員。
3.編碼標(biāo)準(zhǔn)與規(guī)范:標(biāo)準(zhǔn)是必須遵守的規(guī)則捎迫,規(guī)范是建議的最佳做法晃酒。
例如代碼的可靠性 可讀/可維護(hù)性 可移植性。
動(dòng)態(tài)白盒測(cè)試中的單元測(cè)試
在底層進(jìn)行的測(cè)試可以成為單元測(cè)試(模塊測(cè)試)窄绒,是對(duì)軟件基本組成單元進(jìn)行的測(cè)試贝次,基本測(cè)試可以說(shuō)函數(shù),類(lèi)彰导,類(lèi)的方法蛔翅,也可以是任何具有明確的功能,規(guī)格定義位谋,明確的接口定義山析,并且其規(guī)模較小。
單元測(cè)試的重點(diǎn)在于發(fā)現(xiàn)程序設(shè)計(jì)或者程序?qū)崿F(xiàn)中的邏輯錯(cuò)誤掏父,使問(wèn)題及早地暴露并且使其得到定位解決笋轨。
必須為每個(gè)測(cè)試單元開(kāi)發(fā)驅(qū)動(dòng)程序和樁程序。驅(qū)動(dòng)程序是一個(gè)主程序赊淑,他接受測(cè)試用例數(shù)據(jù)爵政,將這些數(shù)據(jù)傳遞給將要測(cè)試的構(gòu)件。
樁程序作用是替換那些從屬于被測(cè)物減或其被調(diào)用的模塊陶缺。
白盒測(cè)試的優(yōu)點(diǎn):
1钾挟、程序代碼中如果存在著一些內(nèi)存泄露,在黑盒測(cè)試中短時(shí)間運(yùn)行并不能發(fā)現(xiàn)問(wèn)題饱岸,但是在系統(tǒng)長(zhǎng)時(shí)間運(yùn)行后掺出,由于內(nèi)存泄露的積累徽千,可能導(dǎo)致整個(gè)系統(tǒng)內(nèi)存消耗殆盡,最后癱瘓蛛砰。而此類(lèi)問(wèn)題在白盒測(cè)試中著可以被發(fā)現(xiàn)罐栈。
2、程序中往往存在著很多的異常處理分支語(yǔ)句泥畅,在黑盒測(cè)試時(shí)荠诬,可能并沒(méi)有測(cè)試到,沒(méi)有測(cè)試到的代碼不能保證其運(yùn)行正確位仁,在系統(tǒng)運(yùn)行過(guò)程中柑贞,如果執(zhí)行到這些分支語(yǔ)句,很可能出現(xiàn)問(wèn)題聂抢。而執(zhí)行白盒測(cè)試著可以避免此類(lèi)情況的發(fā)生钧嘶。
3、在白盒測(cè)試過(guò)程中琳疏,執(zhí)行了多少邏輯有决,可以作為衡量測(cè)試是否完整的一個(gè)指標(biāo)。
4空盼、有時(shí)在實(shí)驗(yàn)室條件中很難搭建真實(shí)的測(cè)試環(huán)境书幕,這時(shí)需要用白盒測(cè)試方法分析源代碼,何時(shí)能夠觸發(fā)這些代碼運(yùn)行揽趾,觸發(fā)條件是否合理台汇,能否達(dá)到要求。例如通訊中干擾的現(xiàn)象篱瞎,宇宙飛船和航天飛機(jī)苟呐、衛(wèi)星等在太空中受電磁輻射等。
白盒測(cè)試與黑盒測(cè)試的聯(lián)系:
1俐筋、在用白盒測(cè)試來(lái)驗(yàn)證單元的基本功能時(shí)牵素,經(jīng)常要用黑盒測(cè)試的思考方法來(lái)設(shè)計(jì)測(cè)試用例;
2澄者、在黑盒測(cè)試中使用白盒測(cè)試的手段笆呆,常被稱為“灰盒測(cè)試”。例如根據(jù)被封裝單元的規(guī)格說(shuō)明編寫(xiě)測(cè)試函數(shù)來(lái)驗(yàn)證該單元的功能闷哆,手工通過(guò)數(shù)據(jù)庫(kù)客戶端或者其他底層的方式查詢黑盒測(cè)試用例的運(yùn)行結(jié)果等。
3单起、白盒測(cè)試需要對(duì)程序的內(nèi)部實(shí)現(xiàn)十分熟悉抱怔,而黑盒測(cè)試是完全基于對(duì)系統(tǒng)需求的了解。這兩種測(cè)試方法也應(yīng)用于軟件開(kāi)發(fā)的不同階段嘀倒。
4屈留、僅僅通過(guò)白盒測(cè)試局冰,或者僅僅通過(guò)黑盒測(cè)試都不能系統(tǒng)的全滿的測(cè)試一個(gè)軟件。
要做好白盒測(cè)試灌危,需要在測(cè)試時(shí)間中不斷累積經(jīng)驗(yàn)康二,如果被測(cè)試軟件有源代碼,最好把黑盒測(cè)試發(fā)現(xiàn)的錯(cuò)誤定位到源代碼上勇蝙,這樣日積月累沫勿,就會(huì)知道代碼容易犯錯(cuò)誤的地方,那些地方要著重分析代碼等味混。
靜態(tài)黑盒測(cè)試:測(cè)試產(chǎn)品說(shuō)明書(shū)
對(duì)產(chǎn)品說(shuō)明書(shū)進(jìn)行高級(jí)審查:
1.假裝自己是客戶
2.研究現(xiàn)有的標(biāo)準(zhǔn)和規(guī)范
3.審查和測(cè)試類(lèi)似軟件
產(chǎn)品說(shuō)明書(shū)低層次測(cè)試技術(shù):
1.產(chǎn)品說(shuō)明書(shū)屬性檢查清單产雹。
2。產(chǎn)品說(shuō)明書(shū)術(shù)語(yǔ)檢查清單翁锡。
動(dòng)態(tài)黑盒測(cè)試:戴上眼罩測(cè)試軟件
通過(guò)性測(cè)試和失效性測(cè)試
數(shù)據(jù)測(cè)試:
1.等價(jià)類(lèi)劃分 細(xì)化(例如負(fù)數(shù)蔓挖,零錢(qián),數(shù)字特別大馆衔,特殊字符瘟判,帶零頭的數(shù)額)
把測(cè)試用例縮減成可以控制并且仍然是測(cè)試軟件的小范圍
2.邊界條件:軟件運(yùn)行在計(jì)劃操作界限的邊界的情況。
次邊界條件:ASCLL角溃,默認(rèn)拷获,空白,空值开镣。零值刀诬,無(wú)。 非法 錯(cuò)誤邪财,不正確和垃圾數(shù)據(jù)陕壹。
狀態(tài)測(cè)試:測(cè)試軟件的邏輯流程
1,建立狀態(tài)轉(zhuǎn)換圖:
1》.軟件可能進(jìn)入的每一種獨(dú)立狀態(tài)树埠。
2》從一種狀態(tài)轉(zhuǎn)入到另一種狀態(tài)所需的輸入以及條件糠馆。
3》進(jìn)入或退出某種狀態(tài)設(shè)置條件以及輸出結(jié)果。
2.減少要測(cè)試的狀態(tài)以及轉(zhuǎn)換數(shù)量
1》每種狀態(tài)至少訪問(wèn)一次
2》測(cè)試看起來(lái)是最常見(jiàn)和最普遍的狀態(tài)轉(zhuǎn)換怎憋,
3》測(cè)試狀態(tài)之間最不常用的分支
4》測(cè)試所有錯(cuò)誤狀態(tài)以及返回值又碌。拋出異常是否處理等
5》測(cè)試隨機(jī)狀態(tài)轉(zhuǎn)換。
失效性狀態(tài)測(cè)試:
重復(fù)測(cè)試 不斷執(zhí)行同樣的操作(QTP快速測(cè)試)
檢測(cè)是否存在內(nèi)存泄露
壓迫測(cè)試:使軟件在不夠理想的狀態(tài)下進(jìn)行绊袋。
重負(fù)測(cè)試:盡量提供條件任其發(fā)揮毕匀。
其它黑盒測(cè)試技術(shù):
1.隨機(jī)無(wú)經(jīng)驗(yàn)操作,笨拙用戶癌别。
2.在已經(jīng)找到缺陷的地方再找找皂岔。
3/像黑客一樣考慮問(wèn)題
4.憑借經(jīng)驗(yàn),直覺(jué)展姐,和預(yù)感躁垛。
一條軟件缺陷記錄都包含哪些內(nèi)容
bug 編號(hào)
bug 發(fā)現(xiàn)人
bug 發(fā)現(xiàn)時(shí)間
bug 狀態(tài)
bug 嚴(yán)重程度
bug 所屬版本
bug 所屬模塊
bug 處理人
bug 修改日期
bug 簡(jiǎn)單描述
bug 詳細(xì)描述
bug 相關(guān)附件
bug 初步分析
軟件的安全性應(yīng)從哪幾個(gè)方面去測(cè)試
(1)用戶認(rèn)證機(jī)制:如數(shù)據(jù)證書(shū)剖毯、智能卡、雙重認(rèn)證教馆、安全電子交易協(xié)議
(2) 加密機(jī)制
(3)安全防護(hù)策略:如安全日志逊谋、入侵檢測(cè)、隔離防護(hù)土铺、漏洞掃描
(4)數(shù)據(jù)備份與恢復(fù)手段:存儲(chǔ)設(shè)備胶滋、存儲(chǔ)優(yōu)化、存儲(chǔ)保護(hù)舒憾、存儲(chǔ)管理
(5)防病毒系統(tǒng)
黑盒測(cè)試和白盒測(cè)試的定義
黑盒測(cè)試:已知產(chǎn)品的功能設(shè)計(jì)規(guī)格镀钓,可以進(jìn)行測(cè)試證明每個(gè)實(shí)現(xiàn)了的功能是否符合要求。
白盒測(cè)試:已知產(chǎn)品的內(nèi)部工作過(guò)程镀迂,可以通過(guò)測(cè)試證明每種內(nèi)部操作是否符合設(shè)計(jì)規(guī)格要求丁溅,所有內(nèi)部成分是否以經(jīng)過(guò)檢查。
等價(jià)類(lèi)劃分的方法編寫(xiě)三角形測(cè)試用例: