版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
單元1軟件測試入門目錄認識軟件測試任務一正確認識軟件缺陷任務二理解軟件測試模型任務三任務一認識軟件測試●軟件測試是什么?(1)軟件調(diào)試(2)獨立的軟件測試(3)定義軟件測試(4)軟件測試成為專門學科(5)開發(fā)與測試的融合活動一認識軟件測試1979年,GlenfieldJ.Myers提出了他對軟件測試的定義:“測試是未發(fā)現(xiàn)錯誤而執(zhí)行的一個程序或者系統(tǒng)的過程(Theprocessofexecutingaprogramorsystemwiththeintentoffindingerrors)”活動一認識軟件測試Myers給出了與測試相關(guān)的幾個重要觀點:1.軟件測試是程序的執(zhí)行過程,目的在于發(fā)現(xiàn)錯誤。2.軟件測試是為了證明程序有錯誤而不是證明程序無錯誤。3.一個好的測試用例是在于它能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤。4.一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試?;顒右徽J識軟件測試●軟件測試的目的1.提高軟件的質(zhì)量軟件測試的首要目的就是提高軟件的質(zhì)量,也就是讓用戶對產(chǎn)品有更好的體驗,保證軟件的高質(zhì)量。2.保證軟件的安全軟件測試的第二大目的就是保證軟件的安全,有一些軟件是經(jīng)過數(shù)據(jù)加密的,比如各大銀行系統(tǒng)的APP。涉及到資金的支出和存入,對軟件的安全性要求是特別高的。所以要通過反復測試來提高產(chǎn)品的安全性,保證產(chǎn)品在上線之后不會出現(xiàn)Bug,尤其對于金融方面的APP來說,任何漏洞都是致命的。活動一認識軟件測試3.降低軟件開發(fā)成本軟件測試的另外一個目的就是降低軟件的開發(fā)成本,在開發(fā)過程中發(fā)現(xiàn)Bug及時調(diào)整,這樣的損失是很小的,一旦產(chǎn)品上線或是即將完成開發(fā)而發(fā)現(xiàn)Bug,那么可能會造成產(chǎn)品大改動,這樣就意味著以往的精力全部白費。因此測試的存在就是為了降低開發(fā)成本。比如迪士尼的一款獅子王的軟件,借著獅子王的名聲,預期本應是好評如潮,也能通過這款軟件獲益。但因為在很多系統(tǒng)上都無法使用,所以造成了大量的用戶投訴和下線、卸載等,對成本造成了非常大的損失。那如果當時這款軟件能夠在不同的系統(tǒng)上進行測試,在上線前將所有的問題全部解決掉,肯定會大大降低成本?;顒右徽J識軟件測試4.降低企業(yè)風險除了降低開發(fā)成本,還可以降低企業(yè)風險,試想如果軟件存在的問題過多,毫無疑問會影響企業(yè)的信譽,最終直接導致企業(yè)的合作企業(yè)變少,直接損害公司的收益。但如果有測試人員在中間嚴格把關(guān),就完全不會出現(xiàn)這樣的問題。5.提升用戶體驗感開發(fā)人員在開發(fā)過程中都是以順向思維來編寫程序代碼的,所以很少有開發(fā)人員能夠站在用戶角度去思考。但是測試人員不一樣,測試要以逆向思維來思考程序會在哪一步有問題,站在用戶的角度進行測試,這樣上線的產(chǎn)品將很符合用戶的需求,用戶使用時也比較順手,增加用戶體驗感?;顒右徽J識軟件測試●軟件測試的原則1.測試應基于客戶需求所有的測試工作都應該建立在滿足客戶需求的基礎(chǔ)上,從客戶角度來看,最嚴重的錯誤就是軟件無法滿足要求。有時候,軟件產(chǎn)品的測試結(jié)果非常完美,但卻不是客戶最終想要的產(chǎn)品,那么軟件產(chǎn)品的開發(fā)就是失敗的,而測試工作也是沒有任何意義的。因此測試應依照客戶的需求配置環(huán)境,并且按照客戶的使用習慣進行測試并評價結(jié)果?;顒右徽J識軟件測試2.測試要盡早進行軟件的錯誤存在于軟件生命周期的各個階段,因此應該盡早開展測試工作,把軟件測試貫穿到軟件生命周期的各個階段中,這樣測試人員能夠盡早地發(fā)現(xiàn)和預防錯誤,降低錯誤修復的成本。盡早地開展測試工作有利于幫助測試人員了解軟件產(chǎn)品的需求和設計,從而預測測試的難度和風險,制訂出完善的計劃和方案,提高測試的效率。3.窮盡測試是不可能的由于時間和資源的限制,進行完全(各種輸入和輸出的全部組合)的測試是不可能的測試人員可以根據(jù)測試的風險和優(yōu)先級等確定測試的關(guān)注點,從而控制測試的工作量,在測試成本、風險和收益之間求得平衡?;顒右徽J識軟件測試4.遵循GoodEnough原則GoodEnough原則是指測試的投入與產(chǎn)出要適當權(quán)衡,形成充分的質(zhì)量評估過程,這個過程建立在測試花費的代價之上。測試不充分無法保證軟件產(chǎn)品的質(zhì)量,但測試投入過多會造成資源的浪費。隨著測試資源投入的增加,測試的產(chǎn)出也是增加的,但當投入達到一定的比例后,測試的效果就不會明顯增強了。因此在測試時要根據(jù)實際要求和產(chǎn)品質(zhì)量考慮測試的投入,最好使測試投入與產(chǎn)出達到一個GoodEnough狀態(tài)?;顒右徽J識軟件測試5.測試缺陷要符合“二八”定理缺陷的“二八”定理也稱為Pareto原則、缺陷集群效應,一般情況下,軟件80%缺陷會集中在20%模塊中,缺陷并不是平均分布的。因此在測試時,要抓住主要矛盾,如果發(fā)現(xiàn)某些模塊比其他模塊具有更多的缺陷,則要投入更多的人力、精力重點測試這些模塊以提高測試效率。活動一認識軟件測試6.避免缺陷免疫我們都知道蟲子的抗藥性原理,即一種藥物使用久了,蟲子就會產(chǎn)生抗藥性。而在軟件測試中,缺陷也是會產(chǎn)生免疫性的。同樣的測試用例被反復使用,發(fā)現(xiàn)缺陷的能力就會越來越差;測試人員對軟件越熟悉越會忽略一些看起來比較小的問題,發(fā)現(xiàn)缺陷的能力也越差,這種現(xiàn)象被稱為軟件測試的“殺蟲劑”現(xiàn)象。它主要是由于測試人員沒有及時更新測試用例或者是對測試用例和測試對象過于熟悉,形成了思維定式。要克服這種情況,就要不斷對測試用例進行修改和評審,不斷增加新的測試用例,同時,測試人員也要發(fā)散思維,不能只是為了完成測試任務而做一些輸入和輸出的對比?;顒右徽J識軟件測試一、測試用例的概念測試用例(TestCase)是為某個特殊目標而編制的一組測試輸入、執(zhí)行條件以及預期結(jié)果,以便測試某個程序路徑或核實是否滿足某個特定需求。測試用例=輸入+輸出+測試環(huán)境測試用例設計的難點在于如何通過少量的數(shù)據(jù)來有效地揭示軟件缺陷?;顒佣J識測試用例二、測試用例的重要性技術(shù)層面指導測試的實施規(guī)劃測試數(shù)據(jù)的準備編寫測試腳本的“設計規(guī)格說明書”降低工作強度管理層面團隊交流重復測試檢驗測試員進度質(zhì)量評估分析缺陷的標準活動二認識測試用例三、測試用例的特點1.有效性2.經(jīng)濟性3.可重復性4.可修改性5.可仿效性6.可跟蹤性7.清晰、簡潔活動二認識測試用例任務實施編寫郵箱登錄的測試用例用例編號測試步驟輸入數(shù)據(jù)預期結(jié)果1輸入用戶名輸入密碼單擊“登錄”按鈕用戶名:abc@163.com密碼:123456
成功登錄郵箱,轉(zhuǎn)到相應賬號的郵箱頁面2輸入用戶名輸入密碼單擊“登錄”按鈕用戶名:abc@163.com密碼:12345678
提示“您輸入的賬號或密碼不正確,請重新輸入?!?輸入用戶名單擊“登錄”按鈕用戶名:abc@163.com
提示“您還沒有輸入密碼!”……………………任務實施參照表1-2,您還能設計出其他關(guān)于郵箱登錄的測試用例嗎?實際上,測試用例除了以上列出的用例編號、測試步驟、輸入數(shù)據(jù)和預期結(jié)果外,還有許多其他的內(nèi)容。任務拓展測試用例八個要素1.測試用例編號由字母、字符、數(shù)字組合而成的字符串,有唯一性,易識別性。2.測試項目當前測試用例所在測試用例所屬大類、被測需求、被測模塊、被測單元等。3.測試用例標題對測試用例的簡單描述。用概括的語言描述該測試用例的測試點。每個測試用例的標題不能夠重復,因為每個測試用例的測試點是不一樣的。任務拓展4.重要級別分為高、中、低三等:高級別:保證系統(tǒng)基本功能、核心業(yè)務、重要特性、實際使用頻率比較高的用例;中級別:重要程度介于高和低之間的測試用例;低級別:實際使用的頻率不高,對系統(tǒng)業(yè)務功能影響不大的模塊或功能的測試用例。5.預置條件執(zhí)行當前測試用例需要的前提條件,如果這些前提條件不滿足,則后面測試步驟無法進行測試或無法得到預期結(jié)果。任務拓展6.測試輸入用例執(zhí)行過程中需要輸入的外部信息。根據(jù)軟件測試用例的具體情況,有手工輸入的內(nèi)容、上傳的文件、數(shù)據(jù)庫記錄等。7.操作步驟執(zhí)行當前測試用例需要經(jīng)過的操作步驟,需要明確的給出每一個操作的詳細描述,測試人員可以根據(jù)測試用例操作步驟完成測試用例執(zhí)行。8.預期結(jié)果當前測試用例的預期輸出結(jié)果,包括返回值內(nèi)容,界面的響應結(jié)果,輸出結(jié)果的規(guī)則符合度等。任務二正確認識軟件缺陷活動一認識軟件缺陷一、軟件缺陷的定義軟件缺陷常常又被叫做Bug(漏洞)。所謂軟件缺陷,即為計算機軟件或程序中存在某些破壞正常運行能力的問題、錯誤,或者隱藏的功能缺陷。缺陷的存在會導致軟件產(chǎn)品在某種程度上不能滿足用戶的需要。
IEEE729-1983對缺陷有一個標準的定義:從產(chǎn)品內(nèi)部看,缺陷是軟件產(chǎn)品開發(fā)或維護過程中存在的錯誤、毛病等各種問題;從產(chǎn)品外部看,缺陷是系統(tǒng)所需要實現(xiàn)的某種功能的失效或違背?;顒右徽J識軟件缺陷缺陷的表現(xiàn)形式主要體現(xiàn)在以下方面:1、軟件沒有實現(xiàn)產(chǎn)品規(guī)格說明所要求的功能模塊;2、軟件中出現(xiàn)了產(chǎn)品規(guī)格說明指明不應該出現(xiàn)的錯誤;3、軟件實現(xiàn)了產(chǎn)品規(guī)格說明沒有提到的功能模塊;4、軟件沒有實現(xiàn)雖然產(chǎn)品規(guī)格說明沒有明確提及但應該實現(xiàn)的目標;5、軟件難以理解,不容易使用,運行緩慢,或從測試員的角度看,最終用戶會認為不好?;顒右徽J識軟件缺陷以計算器程序為例來說明這5條規(guī)則:計算器說明書一般聲稱該計算器將準確無誤地進行加、減、乘、除運算。如果測試人員或用戶選定了兩個數(shù)值后,隨意按下了“+”號鍵,結(jié)果沒有任何反應或者得到了錯誤的答案。假如計算器說明書指明計算器不會出現(xiàn)死機或者停止反應,而在用戶隨意敲鍵盤后,計算器停止接受輸入或沒有了反應。(規(guī)則1軟件沒有實現(xiàn)產(chǎn)品規(guī)格說明所要求的功能模塊)(規(guī)則2軟件中出現(xiàn)了產(chǎn)品規(guī)格說明指明不應該出現(xiàn)的錯誤)活動一認識軟件缺陷若在進行測試時,發(fā)現(xiàn)除了規(guī)定的加、減、乘、除功能之外,還能夠進行求平方根的運算,而這一功能并沒有在說明書的功能中規(guī)定。若在測試過程中發(fā)現(xiàn),因為電池沒電而導致了計算不正確,但產(chǎn)品說明書未能指出在此情況下應如何進行處理。(規(guī)則3軟件實現(xiàn)了產(chǎn)品規(guī)格說明沒有提到的功能模塊)(規(guī)則4軟件沒有實現(xiàn)雖然產(chǎn)品規(guī)格說明沒有明確提及但應該實現(xiàn)的目標)活動一認識軟件缺陷測試人員或最終用戶發(fā)現(xiàn)計算器某些地方不好用,比如,按鍵太小、按鍵布局不太好、顯示屏在亮光下無法看清等。(規(guī)則5軟件難以理解,不容易使用,運行緩慢,或從測試員的角度看,最終用戶會認為不好。)活動一認識軟件缺陷二、缺陷產(chǎn)生的原因1.軟件本身問題①系統(tǒng)結(jié)構(gòu)非常復雜。復雜的系統(tǒng)在實現(xiàn)時也會隱藏著相互作用的困難,而導致隱藏的軟件缺陷。②數(shù)據(jù)恢復問題。沒有考慮系統(tǒng)崩潰后的自我恢復和數(shù)據(jù)的異地備份、災難性恢復等問題,從而存在系統(tǒng)安全性、可靠性問題。③系統(tǒng)運行環(huán)境復雜。一方面,用戶使用的計算機環(huán)境千變?nèi)f化,包括用戶的各種操作方式或各種不同的輸入數(shù)據(jù),容易引起一些特定用戶環(huán)境下的問題。另一方面,在系統(tǒng)實際應用中數(shù)據(jù)量很大,可能會引起負載問題。④使用新技術(shù)。新技術(shù)的采用,可能涉及技術(shù)或系統(tǒng)兼容性的問題,事先沒有考慮。活動一認識軟件缺陷二、缺陷產(chǎn)生的原因2.團隊工作問題①需求不清晰。軟件需求不清晰或開發(fā)人員對對需求理解不明確,導致設計目標偏離客戶的需求,從而引起功能或產(chǎn)品特征上的缺陷。②溝通不夠。不同階段的開發(fā)人員對系統(tǒng)設計規(guī)格說明書中的某些內(nèi)容重視不夠或存在誤解;對與設計或編程上的一些假定或依賴性,相關(guān)人員沒有充分溝通。③項目組成員技術(shù)水平參差不齊。新員工較多,或培訓不夠等原因也很容易引起問題?;顒右徽J識軟件缺陷二、缺陷產(chǎn)生的原因3.技術(shù)問題①算法錯誤:在給定條件下沒能給出正確或準確的結(jié)果;②語法錯誤:對于編譯性語言程序,編譯器可以發(fā)現(xiàn)這類問題,但對于解釋③性語言程序,只能在測試運行時發(fā)現(xiàn);④計算機和精度問題:計算的結(jié)果沒有滿足所需要的精度;⑤系統(tǒng)結(jié)構(gòu)不合理、算法選擇不科學,造成系統(tǒng)性能低下;⑥接口參數(shù)傳遞不匹配,導致模塊集成出現(xiàn)問題?;顒右徽J識軟件缺陷二、缺陷產(chǎn)生的原因4.項目管理的問題①質(zhì)量文化缺乏。不重視質(zhì)量計劃,對質(zhì)量、資源、任務、成本等的平衡性把握不好,容易擠掉需求分析、評審、測試等時間,遺留的缺陷會比較多。②開發(fā)周期短。軟件產(chǎn)品開發(fā)周期短,需求分析、設計、編程、測試等各項工作不能完全按照定義好的流程來進行,工作不夠充分,結(jié)果也就不完整、不準確,錯誤較多;周期短,還給各類開發(fā)人員造成太大的壓力,引起一些人為的錯誤。③開發(fā)流程不夠完善。存在太多的隨機性和缺乏嚴謹?shù)膬?nèi)審或評審機制,容易產(chǎn)生問題。④文檔不完整,風險評估不足等。活動一認識軟件缺陷三、軟件缺陷的分類按照測試種類,可以將軟件缺陷分為界面類、功能類、性能類、安全性類、兼容性類等。按照缺陷的嚴重程度,可以將缺陷劃分為嚴重、一般、次要、建議。按照缺陷的優(yōu)先級不同,可以將缺陷劃分為立即解決、高優(yōu)先級、正常排隊、低優(yōu)先級。按照缺陷的發(fā)生階段不同,可以將缺陷劃分為需求階段缺陷、構(gòu)架階段缺陷、設計階段缺陷、編碼階段缺陷、測試階段缺陷。活動二常見的軟件缺陷管理工具1.BugzillaBugzilla是由Mozilla公司提供的一個開源免費的軟件缺陷跟蹤工具。作為一個軟件缺陷記錄及跟蹤工具,它能夠建立一個完善的跟蹤體系,該體系包括報告缺陷、查詢?nèi)毕萦涗洸a(chǎn)生報表、處理解決、管理員系統(tǒng)初始化和設置4個部分。2.BugFreeBugFree是借鑒微軟公司的研發(fā)流程和缺陷管理理念,使用PHP+MySQL獨立寫出的一個缺陷管理系統(tǒng)。該系統(tǒng)簡單實用、免費,并且開放源代碼(遵循GNUGPL)。命名“BugFree”有兩層意思:一是希望軟件中的缺陷越來越少,直到?jīng)]有;二是免費且開放源代碼,大家可以自由使用、傳播?;顒佣R姷能浖毕莨芾砉ぞ?.QualityCenterQualityCenter是一個基于Web的商業(yè)測試管理工具,可以組織和管理應用程序測試流程的所有階段,如制訂測試需求、計劃測試、執(zhí)行測試和跟蹤軟件缺陷。此外,通過QualityCenter還可以創(chuàng)建報告和圖來監(jiān)控測試流程。4.JIRAJIRA是Atlassian公司出品的項目與事務跟蹤工具,被廣泛應用于軟件缺陷跟蹤、客戶服務、需求收集、流程審批、任務跟蹤、項目跟蹤和敲捷管理等工作領(lǐng)域。JIRA配置靈活、功能全面、部署簡單、擴展豐富。JIRA是比較流行的基于Java架構(gòu)的管理系統(tǒng),由于Atlassian公司對很多開源項目實行免費提供軟件缺陷跟蹤服務,因此在開源領(lǐng)域,JIRA的被認知度比其他測試產(chǎn)品要高得多,而且易用性也好一些?;顒佣R姷能浖毕莨芾砉ぞ?.MantisMantis是一個基于PHP技術(shù)的輕量級軟件缺陷跟蹤系統(tǒng),其功能與前面提及的JIRA系統(tǒng)類似,都是以Web操作的形式提供項目管理及軟件缺陷跟蹤服務。在功能上可能沒有JIRA那么專業(yè),界面也沒有JIRA美觀,但在實用性上足以滿足中小型項目的管理及跟蹤需求。更重要的是其開源,用戶不需要負擔任何費用。6.LaunchPadLaunchPad是由Ubuntu的母公司Canonical公司資助架設的網(wǎng)站,最初是一個提供維護、支持或聯(lián)絡Ubuntu開發(fā)者的平臺。后來越來越多的項目使用該系統(tǒng)進行軟件缺陷跟蹤管理,如云平臺基礎(chǔ)架構(gòu)OpenStack。任務實施程序員小張編寫了一個能夠判斷人的體重指數(shù)和健康狀態(tài)的應用程序。當輸入身高和體重后,單擊“查詢”按鈕,程序會計算出體重指數(shù),并將體重指數(shù)和健康狀態(tài)等信息顯示在屏幕上。請測試該程序是否有缺陷。如果有,將缺陷描述出來,并分析其類別。體重指數(shù)的計算公式為:
體重指數(shù)(BMI)=體重(kg)[身高(m)]2任務實施序號體重指數(shù)(BMI)備注1BMI<18.5消瘦218.5≤BMI<24正常324≤BMI<27體重過重427≤BMI<30輕度肥胖530≤BMI<35中度肥胖635≥BMI重度肥胖任務實施小張對編寫的程序進行了測試,發(fā)現(xiàn)當輸入正常的身高和體重的時候,會顯示正確的BMI值的信息,但是當將體重增加到124kg時,BMI應該為46.10351,按照體重指數(shù)與健康狀態(tài)的轉(zhuǎn)換規(guī)則,應該屬于重度肥胖,而顯示的信息卻是“中度肥胖”,這應該是一個缺陷。另外,當沒有輸入身高和體重的值的時候,單擊“查詢”按鈕,程序也沒有對用戶有任何提醒,這應該也是一個缺陷。任務實施針對以上兩個缺陷,小張總結(jié)如下。1.第一個缺陷是軟件中出現(xiàn)了產(chǎn)品規(guī)格說明書中指明的不應該出現(xiàn)的錯誤,屬于第2種缺陷;2.第二個缺陷是軟件沒有實現(xiàn)雖然產(chǎn)品規(guī)格說明書中也沒有明確提及但應該實現(xiàn)的目標,屬于第4種缺陷。您還能列舉出其他缺陷嗎?任務拓展產(chǎn)生軟件缺陷以后,測試人員需要針對缺陷問題形成記錄報告并進行反饋,以改進軟件開發(fā)過程中出現(xiàn)的問題,提高軟件質(zhì)量,這一報告稱為軟件測試缺陷報告。軟件測試缺陷報告是在軟件測試過程中針對發(fā)現(xiàn)的缺陷所編寫的報告,是記錄缺陷信息的主要手段,也是測試過程中最重要的輸出之一。任務拓展清楚的軟件測試缺陷報告對測試團隊而言具有重要的作用:1.記錄問題:缺陷報告是記錄缺陷和問題的主要方式。測試人員應該仔細記錄問題,并清晰地描述問題的重要信息。2.保持溝通:缺陷報告是開發(fā)者和測試人員之間溝通的橋梁,有助于開發(fā)者了解測試人員發(fā)現(xiàn)的問題,并根據(jù)這些問題進行反饋和解決。3.提高軟件質(zhì)量:缺陷報告不僅提供了問題所在的位置,還可以說明將問題解決之后應有的結(jié)果。這有助于開發(fā)人員對于軟件的改進,進而提高軟件的質(zhì)量。任務三理解軟件測試的模型活動一正確理解軟件測試模型一、軟件測試模型V模型W模型H模型X模型活動一正確理解軟件測試模型V模型活動一正確理解軟件測試模型W模型活動一正確理解軟件測試模型H模型活動一正確理解軟件測試模型X模型活動二軟件測試的分類和流程一、軟件測試的分類按照測試階段劃分單元測試集成測試系統(tǒng)測試驗收測試回歸測試活動二軟件測試的分類和流程按照測試方法劃分白盒測試黑盒測試灰盒測試活動二軟件測試的分類和流程按照自動化程度劃分手工測試手工測試是由測試人員一個一個的輸入用例,然后觀察結(jié)果,和機器測試相對應,屬于比較原始但是必須的一個步驟。自動化測試自動化測試是借助腳本、自動化測試工具等完成相應的測試工作,它也需要人工的參與但是它可以將要執(zhí)行的測試代碼或流程寫成腳本,通過執(zhí)行腳本來完成整個測試工作。活動二軟件測試的分類和流程按照測試執(zhí)行方式劃分靜態(tài)測試不實際運行被測軟件,而只是靜態(tài)地檢查程序代碼、界面或文檔中可能存在的錯誤的過程。如代碼審核。動態(tài)測試實際運行被測程序,輸入相應的測試數(shù)據(jù),檢查實際輸出結(jié)果和預期結(jié)果是否相符的過程活動二軟件測試的分類和流程按照軟件質(zhì)量特性劃分功能測試功能測試是測試軟件的功能是否滿足客戶的需求,包括準確性、易用性、適合性、互操作性等。性能測試性能測試是測試軟件的性能是否滿足客戶的需求。性能測試包括負載測試、壓力測試、兼容性測試、可移植性測試和健壯性測試等?;顒佣浖y試的分類和流程二、軟件測試的流程需求分析測試計劃測試設計執(zhí)行測試分析結(jié)果活動二軟件測試的分類和流程需求分析在需求分析階段,測試員開始介入,與開發(fā)人員一起了解項目的需求,站在用戶角度確定測試重點方向。需求分析包括軟件功能需求分析、測試環(huán)境需求分析、測試資源需求分析等。其中,最基本的是軟件功能需求分析。測試一款軟件首先要知道軟件能實現(xiàn)哪些功能以及是怎樣實現(xiàn)的?;顒佣浖y試的分類和流程測試計劃制訂測試人員首先對需求進行分析,最終定義一個測試集合,通過刻畫和定義測試發(fā)現(xiàn)需求中的問題,然后根據(jù)軟件需求同測試主管制訂并確認“測試計劃”。測試計劃是一個關(guān)鍵的管理功能,它定義了各個級別的測試所使用的策略、方法,測試環(huán)境、測試通過或失敗準則等內(nèi)容。測試計劃的目的是要為有組織地完成測試提供一個基礎(chǔ)?;顒佣浖y試的分類和流程測試設計其中最主要的工作是測試用例編寫和測試場景設計兩方面。一份好的測試用例對測試有很好的指導作用,能夠發(fā)現(xiàn)很多軟件問題。測試場景設計主要是測試環(huán)境問題。不同軟件產(chǎn)品對測試環(huán)境有著不同的要求?;顒佣浖y試的分類和流程執(zhí)行測試需要做的工作包括:搭建測試環(huán)境運行測試記錄測試結(jié)果報告軟件缺陷跟蹤軟件缺陷分析測試結(jié)果活動二軟件測試的分類和流程測試分析報告每個版本有每個版本的測試總結(jié),每個階段有每個階段的測試總結(jié)。當項目完成提交給用戶后,一般要對整個項目進行回顧總結(jié),看有哪些做得不足的地方,有哪些經(jīng)驗可以對今后的測試工作起借鑒作用,等等。任務實施1.案例分析可以從驗收的時間來分析公司A的做法是否正確。驗收測試是否通過主要應該依據(jù)需求規(guī)格說明書的各項要求是否符合用戶需求來決定。驗收測試的人員既要包括開發(fā)方,也需要用戶方的參與。2.案例實現(xiàn)(1)不正確;(2)驗收測試要在系統(tǒng)測試通過之后,交付使用之前進行,而不能僅僅根據(jù)合同規(guī)定進行2016年10月底并不具備驗收測試的條件;(3)驗收測試不能缺少用戶方的人員。3.案例拓展上述案例的單元測試、集成測試和系統(tǒng)測試的內(nèi)容分別是什么?任務拓展測試名稱測試對象測試依據(jù)人員測試方法單元測試最小規(guī)模,如函數(shù)、類等《詳細設計說明書》白盒測試工程師或開發(fā)人員主要采用白盒測試集成測試模塊間的接口,如參數(shù)傳遞《概要設計說明書》白盒測試工程師或開發(fā)人員
黑盒和白金測試相結(jié)合
確認測試整個系統(tǒng)《需求規(guī)格說明書》
黑盒測試工程師
黑盒測試
系統(tǒng)測試整個系統(tǒng),包括軟硬件《需求規(guī)格說明書》黑盒測試工程師
黑盒測試
驗收測試整個系統(tǒng),包括軟硬件《需求規(guī)格說明書》、驗收標準主要為用戶,還可能有測試工程師等黑盒測試
單元小結(jié)為了更好地執(zhí)行測試過程,測試專家通過實踐和改進創(chuàng)建了很多實用的測試模型,而這些模型明確了測試與開發(fā)之間的關(guān)系,使測試過程與開發(fā)產(chǎn)生交互,是測試管理的重要參考依據(jù)。常見的測試模型有V模刑、W模刑、H模型、X模型。在實際的項目中,我們要思考這些模型各自的特點,合理應用這些模型的優(yōu)點。最后,本單元介紹了軟件測試的分類。按照測試階段,分為單元測試、集成測試、系統(tǒng)測試、驗收測試和回歸測試;按照測試方法,分為白盒測試、黑盒測試和灰盒測試;按照自動化程度,分為手工測試和自動化測試;按照測試執(zhí)行方式,分為動態(tài)測試和靜態(tài)測試;按照軟件質(zhì)量特性,分為功能測試和性能測試。單元2黑
盒測試小王同學通過前面的學習,對軟件測試和軟件缺陷都有了一定的了解,但是他有一個疑問,在軟件工程初期,源代碼還沒有寫的時候,能夠進行軟件測試的相關(guān)工作?黑盒測試可以實現(xiàn)提前進行軟件測試的相關(guān)工作。引例描述黑盒測試是一種常見且常用的軟件測試方法,它將被測軟件看成是一個無法打開的黑盒,主要根據(jù)功能需求設計測試用例來完成軟件的測試,又叫做功能測試。黑盒測試著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu),主要針對軟件界面和軟件功能進行測試。黑盒測試用例設計方法主要有等價類劃分、邊界值、判定表驅(qū)動、因果通、正交實驗設計等。引例描述黑盒內(nèi)部實現(xiàn)不可見輸入輸出測試用例引例描述目錄等價類測試任務一邊界值測試任務二判定表測試任務三因果圖測試任務四正交實驗法任務五任務一等價類測試●本任務通過觀察某信息系統(tǒng)注冊界面的功能,分析各項功能的輸入條件,劃分等價類,建立等價類表,設計測試用例覆蓋等價類,完成對某信息系統(tǒng)注冊界面的功能測試?!竦葍r類劃分是一種典型的黑盒測試方法,它將程序所有可能的輸入數(shù)據(jù)(有效的和無效的)分成若干個部分,然后從每個部分中選取有代表性的數(shù)據(jù)作為測試用例進行合理的分類,測試用例由有效等價類和無效等價類的代表組成,從而保證測試用例具有完整性和代表性。任務陳述●從理論上來講,黑盒測試只有對一個程序窮舉所有可能的輸入進行測試,才能發(fā)現(xiàn)程序中所有的錯誤,不僅要測試所有合法的輸入,而且要對那些不合法但有可能出現(xiàn)的輸入進行測試?!窀F舉測試是不可能的,所以必須要提高測試的針對性,既要測試各種可能的情況,提高測試的完備性,又要避免重復,降低冗余,節(jié)約測試成本。等價類方法就是這樣一種黑盒測試方法?;顒右徽J識等價類方法●某工廠要給員工做工裝,服裝廠拿過來樣品請員工們試穿看是否身,那么需不需要每個員工都去試穿呢?●把員工按照身材分成不同的組,同一組只需要去1個人試下就可以了,如果這個員工合身,那么同組其他員工由于身材跟他基本一樣,所以也會合身。這就是等價類劃分的思想?;顒右徽J識等價類方法一、等價類劃分●劃分等價類時,將所有可能的輸入數(shù)據(jù),即程序的輸入域,劃分為若干部分,等價類是指某個輸入域的子集合,各個等價類之間不應存在相同的特性,所有等價類的并集應當是被劃分集合的全集。活動一認識等價類方法一、等價類劃分●從軟件測試的角度來說,由于等價類中的數(shù)據(jù)具有相同的特性,所以對于發(fā)現(xiàn)或者揭露程序中的缺陷來說,他們的作用是等價的,或者說效果是相同的,于是等價類劃分法合理的假定:對于某個等價類而言,只測試其中的某個代表數(shù)據(jù),就等于對這一等價類中所有數(shù)據(jù)的測試?;顒右徽J識等價類方法一、等價類劃分●等價類的劃分有以下兩種不同的情況。(1)有效等價類:是指對程序的規(guī)格說明而言,合理且有意義的輸入數(shù)據(jù)構(gòu)成的集合。(2)無效等價類:是指對程序的規(guī)格說明而言,不合理的、無意義的輸入數(shù)據(jù)構(gòu)成的集合?;顒右徽J識等價類方法一、等價類劃分
符號函數(shù)f(x),輸入x,輸出y,如果x>0,則y=1;如果x=0,則y=0;如果x<0則y=-1。
x>0→y=1
x=0→y=0
x<0→y=-1
對x劃分等價類,x的有效等價類有三類,分別是x>0、x=0和x<0。而x的無效等價類可以歸為一類,即所有不能和0進行大小比較的數(shù)據(jù)?;顒右徽J識等價類方法一、等價類劃分等價類劃分的原則有以下6點:(1)在輸入條件規(guī)定了取值范圍或者值的個數(shù)的情況下,可以確立一個有效等價類(在范圍之內(nèi)件的等價類)和兩個無效等價類(有效范圍的兩側(cè))。例如,輸入值是學生成績,范圍是0~100,則有效等價類為0≤成績≤100,無效等價類為成績<0、成績>100。(2)在輸入條件規(guī)定了輸入值的集合或者規(guī)定了“必須如何”的條件的情況下,可確立一個有效等價類和一個無效等價類。活動一認識等價類方法一、等價類劃分等價類劃分的原則有以下6點:(3)在輸入條件是一個布爾量的情況下,可確定一個有效等價類和一個無效等價類。(4)在規(guī)定了輸入數(shù)據(jù)的一組值(假定n個),并且程序要對每個輸入值分別處理的情況下,可確立n個有效等價類和一個無效等價類。例如,輸入條件說明學歷可為???、本科、碩士、博士4種之一,則分別取這4種值作為4個有效等價類,另外把這4種學歷之外的任何學歷作為無效等價類?;顒右徽J識等價類方法一、等價類劃分等價類劃分的原則有以下6點:(5)在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則的情況下,可確立一個有效等價類(符合規(guī)則)和若干個無效等價類(從不同角度違反規(guī)則)。(6)在確知已劃分的等價類中各元素在程序處理中的方式不同的情況下,則應再將該等價類進一步劃分為更小的等價類?;顒右徽J識等價類方法一、等價類劃分如果有多個輸入條件,并且各個條件之間存在關(guān)聯(lián),那么僅僅覆蓋所有的等價類還不夠,還需要考慮等價類之間的組合。組合可分為完全組合和部分組合兩種,如果輸入條件比較多,并且每個輸入條件的等價類也比較多,那么總的完全組合數(shù)將非常大,此時可以采用部分組合?;顒右徽J識等價類方法二、等價類的組合在有多個輸入的情形時,根據(jù)對等價類的覆蓋程度可分為以下兩種?!と踅M合形式:測試用例僅需滿足對有效等價類的完全覆蓋。·強組合形式:測試用例不僅應滿足對有效等價類的完全覆蓋,而且應覆蓋所有的等價類組合?;顒右徽J識等價類方法二、等價類的組合根據(jù)是否對無效數(shù)據(jù)進行檢測,可以將等價類測試分為以下兩種?!ひ话愕葍r類測試:只考慮有效等價類?!そ训葍r類測試:考慮有效、無效等價類。將以上兩種加以組合,可以得到以下幾種測試類?!と跻话愕葍r類測試?!娨话愕葍r類測試?!と踅训葍r類測試?!娊训葍r類測試?;顒右徽J識等價類方法二、等價類的組合假設,F(xiàn)為一個程序,且輸入變量x1和x2的邊界以及邊界內(nèi)的區(qū)間:a≤x1≤d,區(qū)間為[a,b),[b,c),[c,d]e≤x2≤g,區(qū)間為[e,f],[f,g]其中,方括號和圓括號分別表示閉區(qū)間和開區(qū)間的端點。因此,變量x1和x2的等價類分別如下。x1的有效等價類:[a,b],[b,c],[c,d]。x1的無效等價類:(-∞,a),(d,+∞)。x2的有效等價類:[e,f],[f,g]。x2的無效等價類:(-∞,e),(g,+∞).活動一認識等價類方法二、等價類的組合以上劃分如圖表示,其中深色矩形內(nèi)部為有效輸入?yún)^(qū),外部為無效輸入?yún)^(qū)。每一個小格子表示一種x1,x2的組合情形?;顒右徽J識等價類方法二、等價類的組合1.弱一般等價類測試“一般”表示只考慮有效等價類,“弱”表示測試用例只需覆蓋兩個輸入的所有有效等價類即可,無須考慮它們之間的組合情況。因此,最少只需3個測試用例即可以滿足弱一般等價類測試的要求。如圖所示,選取3個(P1,P2,P3)即可,其中P1覆蓋了[a,b)、[e,f),P2覆蓋了[b,c)、[f,g],P3覆蓋了[c,d]、[e,f)。當然,選取方式可以有多種。
活動一認識等價類方法二、等價類的組合2.強一般等價類測試“一般”表示只考慮有效等價類;“強”表示測試用例需覆蓋兩個輸入的所有有效等價類的可能組合。x1有3個有效等價類,x2有2個有效等價類,因此最少需要6個測試用例才可以滿足強一般等價類測試的要求,如圖所示?;顒右徽J識等價類方法二、等價類的組合3.弱健壯等價類測試“健壯”表示不僅考慮有效等價類,還要考慮無效等價類;“弱”表示測試用例只需覆蓋兩個輸入的所有等價類即可,無須考慮它們之間的組合情況。因此,在弱一般等價類測試用例的基礎(chǔ)上,增加4個針對無效等價類的測試用例方能滿足弱健壯等價類測試的要求,如圖所示。注意,在編寫測試用例時,一個測試用例只能覆蓋一個無效等價類。
活動一認識等價類方法二、等價類的組合4.強健壯等價類測試“健壯”表示不僅考慮有效等價類還要考慮無效等價類,“強”表示測試用例需覆蓋兩個輸入的所有等價類的可能組合。x1有5個有效等價類,x2有4個有效等價類,因此最少需要20個測試用例可以滿足強健壯等價類測試的要求,如圖所示。
活動一認識等價類方法二、等價類的組合通常情況下,在測試過程中,只要采用弱健壯測試即可。但是在實際測試中,應當分析待測程序的具體情況,選用合適的測試種類。等價類設計測試用例的步驟如下。①劃分等價類,形成等價類表,為每一個等價類規(guī)定一個唯一編號。②設計一個新的測試用例,使它能夠盡量覆蓋尚未覆蓋的有效等價類。重復這個步驟,直到所有有效等價類均被測試用例所覆蓋。③設計一個新的測試用例,使它僅覆蓋一個尚未覆蓋的無效等價類。重復這一步驟,直到所有無效等價類均被測試用例所覆蓋?;顒佣葍r類測試用例設計一、等價類設計測試用例的步驟這里規(guī)定每次只覆蓋一個無效等價類,是因為若用一個測試用例檢測多個無效等價類,那么某些無效等價類可能永遠不會被檢測到,因為第一個無效等價類測試可能會屏蔽或終止其他無效等價類測試的執(zhí)行。例如,軟件規(guī)格說明規(guī)定“每類科技參考書50~100冊”,若一個測試用例為“文藝書籍10冊”,在測試中,很可能檢測出書的類型錯誤,而忽略了書的冊數(shù)錯誤。此外,在設計測試用例時,應意識到:預期結(jié)果也是測試用例的一個必要組成部分,對采用無效輸入的測試也是如此。一、等價類設計測試用例的步驟活動二等價類測試用例設計三角形問題是測試文獻中使用很廣泛的一個例子。輸入3個整數(shù)a、b和c分別作為三角形的3條邊,通過程序判斷這3條邊的組成情況是等邊三角形、等腰三角形、一般三角形,還是不構(gòu)成三角形。假定3個輸入a、b和c在1~100范圍內(nèi)取值,三角形問題可以更詳細地描述為:輸入3個整數(shù)a、b和c分別作為三角形的3條邊,要求a、b和c必須滿足1≤a≤100,1≤b≤100,a<b+c,b<a+c,c<a+b?;顒佣葍r類測試用例設計二、等價類應用實例程序輸出是由這3條邊構(gòu)成的三角形類型:等邊三角形、等腰三角形、一般三角形或非三角形。如果輸入值不滿足前3個條件中的任何一個,程序?qū)⒔o出相應的提示信息:“請輸入1~100的整數(shù)”。如果a、b和c滿足前3個條件,則輸出下列4種情況之一:(1)如果不滿足后面3個條件中的任意一個,則程序輸出為“非三角形”;(2)如果3條邊相等,則程序輸出為“等邊三角形”;(3)如果有且僅有兩條邊相等,則程序輸出為“等腰三角形”;(4)如果3條邊都不相等,則程序輸出為“一般三角形”。
活動二等價類測試用例設計二、等價類應用實例仔細分析三角形問題,可以得到一個等價類表,如表所示,然后根據(jù)這個表格來設計覆蓋上等價類的測試用例。測試用例Test1=(3,4,5)即可覆蓋有效等價類1~3活動二等價類測試用例設計二、等價類應用實例有效等價類編號無效等價類編號整數(shù)1一邊為非整數(shù)兩邊為非整數(shù)三邊均為非整數(shù)4563個數(shù)2只有一條邊只有兩條邊多于三條邊7891≤a≤1001≤b≤1001≤c≤1003一邊為0兩邊為0三邊為0101112一邊<0兩邊<0三邊<0131415一邊>100兩邊>100三邊>100161718覆蓋無效等價類的測試用例如表所示
活動二等價類測試用例設計二、等價類應用實例測試用例輸入a,b,c預期輸出覆蓋等價類Test21.5,2,3提示“請輸入1~100的整數(shù)”4Test31.5,2.5,3提示“請輸入1~100的整數(shù)”5Test41.5,2.5,3.5提示“請輸入1~100的整數(shù)”6Test53提示“請輸入3條邊長”7Test64,5提示“請輸入3條邊長”8Test73,4,5,6提示“請輸入3條邊長”9Test80,2,2提示“邊長不能為0”10Test90,0,2提示“邊長不能為0”11Test100,0,0提示“邊長不能為0”12Test11-1,2,2提示“邊長不能為負”13Test12-1,-1,2提示“邊長不能為負”14Test13-1,-1,-1提示“邊長不能為負”15Test14101,5,6提示“請輸入1~100的整數(shù)”16Test15101,102,7提示“請輸入1~100的整數(shù)”17Test16101,102,103提示“請輸入1~100的整數(shù)”18在多數(shù)情況下,可以從被測程序的輸入域劃分等價類,但也可以從被測程序的輸出域劃分等價類。三角形問題可能有4中輸出:等邊三角形、等腰三角形、一般三角形或非三角形。其輸出域等價類可以劃分為:(1)R1={<a,b,c>:邊為a,b,c的等邊三角形}(2)R2={<a,b,c>:邊為a,b,c的等腰三角形}(3)R3={<a,b,c>:邊為a,b,c的一般三角形}(4)R4={<a,b,c>:邊為a,b,c的非三角形}
活動二等價類測試用例設計二、等價類應用實例使用等價類方法設計某信息系統(tǒng)注冊界面的測試用例。在各種輸入條件下,測試程序的注冊界面的功能。其中賬號的規(guī)則如下:(1)賬號長度為8~12位(含8位和12位);(2)賬號由字符(a~z、A~Z)和數(shù)字(0~9)組成;(3)不能為空、不能包含空格和特殊字符。密碼的規(guī)則如下:(1)賬號長度為6~8位(含6位和8位);(2)賬號由字符(a~z、A~Z)和數(shù)字(0~9)組成;(3)不能為空、不能包含空格和特殊字符。任務實施注冊功能是系統(tǒng)中的常見功能之一,設計等價類的時候,可以從長度、非法字符、類型、空值等方面進行考慮,這里我們以賬號、密碼和確認密碼為例,將三個條件作為獨立的輸入條件進行測試用例設計。任務實施序號輸入條件有效等價類編號無效等價類編號1賬號正確的賬號1長度小于84長度大于125包含非法字符6賬號為空7賬號已經(jīng)存在82密碼正確的密碼2長度小于69長度大于810包含非法字符11密碼為空123確認密碼與密碼一致3賬號已經(jīng)存在13(1)劃分某信息系統(tǒng)注冊界面等價類如右表所示。(2)設計測試用例如右表所示用例編號輸入數(shù)據(jù)預期輸出覆蓋等價類賬號密碼確認密碼001Cinderellal12345671234567成功注冊1,2,3002Lee12345671234567賬號長度太短2,3,4003Cinderellalen12345671234567賬號長度太長2,3,5004Miechel#12345671234567賬號包含非法字符2,3,6005(無輸入)12345671234567賬號不能為空2,3,7006Cinderellal12345671234567賬號已經(jīng)存在2,3,8007Cinderellal1234512345密碼長度太短1,3,9008Cinderellal123456789123456789密碼長度太長1,3,10009Cinderellal123456#123456#密碼包含非法字符1,3,11010Cinderellal(無輸入)(無輸入)密碼不能為空1,3,12011Cinderellal1234561234567兩次密碼不一致1,3,13任務實施任務二邊界值測試●本任務通過分析某程序的“日期檢查功能”的需求規(guī)格說明,分析各輸入條件的邊界值情況,結(jié)合所學等價類思想,設計基于邊界值的測試用例,完成對某程序的“日期檢查功能”的測試。●大量的軟件測試實踐表明,故障往往出現(xiàn)在定義域的邊界值上,而不是在其內(nèi)部。如果針對各種邊界情況設計測試用例,往往可以發(fā)現(xiàn)更多的錯誤。邊界值測試法就是對輸入或輸出數(shù)據(jù)的邊界值進行測試的一種黑盒測試方法。任務陳述活動一認識邊界值方法1.邊界值測試原理邊界是測試用例的一些特殊情況。對于程序來說,一般情況下,輸入/輸入范圍的中間數(shù)值都是運行正確的,大量的錯誤會出現(xiàn)在范圍邊界。例如,當進行三角形判斷的測試時,要求輸入3條邊長a、b和c,而判斷邊長的一個條件是a+b>c>c。但是,如果將一個“>”錯寫成“≥”時,那么就無法構(gòu)成三角形。問題恰恰出現(xiàn)在那些容易被忽略的邊界上。一、邊界值測試原理活動一認識邊界值方法1.邊界值測試原理邊界值分析法的基本思想是在等價類的極端情況下考慮軟件測試工作,因為錯誤很容易發(fā)生在輸入值的關(guān)鍵點,即從合法變?yōu)榉欠ǖ哪且稽c。由此也可以看出,邊界值分析其實是與等價類劃分密切相關(guān)的。在等價類劃分的過程中,無論是對等價類的輸入還是輸出,都會產(chǎn)生很多邊界情況。因此,選擇正好等于、略大于或者略小于等價類邊界的值作為測試數(shù)據(jù),而不是選取等價類中的典型值或任意值作為測試數(shù)據(jù)。一、邊界值測試原理活動一認識邊界值方法1.邊界值測試原理邊界值分析法設計測試用例時,首先需要確定邊界情況。如果程序的邊界比較復雜,那么想要找出合適的邊界,還需要耐心地分析程序的輸出邊界、輸入邊界,這需要在測試的過程中進行仔細分析,找出有趣的或是可能產(chǎn)生故障的邊界情況。一、邊界值測試原理活動一認識邊界值方法2.邊界條件邊界條件即輸入定義域或輸出值域的邊界,而不是內(nèi)部。需要注意的是,邊界值不僅可以是數(shù)據(jù)取值的邊界,還可以是數(shù)據(jù)的個數(shù)、文件的個數(shù)、記錄的條數(shù)等。通常情況下,軟件測試可能針對的邊界有多種類型,如數(shù)字、字符、位置、質(zhì)量、大小、速度、方位、尺寸、空間等。相應地,邊界值對應的情況可能是最大/最小、首位/末位、上/下、最快/最慢、最高/最低、最短/最長、空/滿等情況。一、邊界值測試原理活動一認識邊界值方法2.邊界條件
如:(1)數(shù)據(jù)取值范圍的最大值、最小值。(2)屏幕上光標在最左上、最右下位置。(3)報表的第一行、最后一行。(4)數(shù)組元素的第一個、最后一個。(5)循環(huán)一次、循環(huán)最大次。(6)數(shù)據(jù)表中的第一條記錄、最后一條記錄。(7)字符串的第一個符號、最后一個符號。一、邊界值測試原理活動一認識邊界值方法2.邊界條件除邊界端點外,還應考慮略大于和略小于邊界端點的情況,如下所示。(1)第一個/最后一個,第一個-1/最后一個+1。(2)開始/結(jié)束,開始-1/結(jié)束+1。(3)空的/滿的,比空的少點/比滿的多些。(4)最短的/最長的,稍微短點/稍微長點。(5)最慢的/最快的,稍微慢點/稍微快點。(6)最早的/最晚的,稍微早點/稍微晚點。(7)最大的/最小的,最大的+1/最小的-1。一、邊界值測試原理活動一認識邊界值方法3.次邊界條件在多數(shù)情況下,邊界值條件是基于應用程序的功能設計而需要考慮的因素,可以從軟件的規(guī)格說明或常識中得到,也是最終用戶很容易發(fā)現(xiàn)問題的。然而,在測試用例設計的過程中,某些邊界值條件不需要呈現(xiàn)給用戶,或者說用戶是很難注意到的,但確實屬于檢驗范疇內(nèi)的邊界條件,那么軟件測試仍有必要對這些邊界條件進行檢查,這樣的邊界條件稱為次邊界條件。一、邊界值測試原理活動一認識邊界值方法3.次邊界條件尋找次邊界條件比較困難,雖然不要求軟件測試人員成為程序員或者具有閱讀源代碼的能力,但要求測試人員能大體了解軟件的工作方式。以ASCII碼表為例,ASCII碼表并不是一個結(jié)構(gòu)良好的連續(xù)表,自然數(shù)0~9對應ASCII碼表中的48~57;斜杠字符(/)在數(shù)字0的前面,而冒號字符(:)在數(shù)字9的后面;大寫字母A~Z對應的ASCII值是65~90,小寫字母對應的ASCII值是97~122。這些情況都表示次邊界條件。如果對文本輸入或文本轉(zhuǎn)換軟件進行測試,在考慮數(shù)據(jù)區(qū)間包含哪些值時,最好參考一下ASCII表。一、邊界值測試原理活動一認識邊界值方法3.次邊界條件例如,如果測試的文本框只接受用戶輸入字符A~Z和,那么就應該在非法區(qū)間中,檢測ASCII表中位于這些字符前后的值——@、’、[、和{。在實際的測試用例設計中,需要將基本的軟件設計要求和程序定義的要求結(jié)合起來,即結(jié)合基本邊界值條件和內(nèi)部邊界值條件來設計有效的測試用例。一、邊界值測試原理活動一認識邊界值方法對邊界值設計測試用例,應當遵循以下幾條原則。(1)如果輸入條件規(guī)定了值的范圍,則應取剛達到這個范圍的邊界值以及剛剛超過這個范圍邊界的值作為測試輸入數(shù)據(jù)。(2)如果輸入條件規(guī)定了值的個數(shù),則用最大個數(shù)、最小個數(shù)和比最大個數(shù)多1個、比最小個數(shù)少1個的數(shù)作為測試數(shù)據(jù)。(3)根據(jù)程序規(guī)格說明的每個輸出條件,使用上述第1條原則。(4)根據(jù)程序規(guī)格說明的每個輸出條件,使用上述第2條原則。二、邊界值分析原則活動一認識邊界值方法(5)如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合(如有序表、順序文件等),則應選取集合中的第一個和最后一個元素作為測試用例。(6)如果程序中使用了一個內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應當選擇這個內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測試用例。(7)分析程序規(guī)格說明,找出其他可能的邊界條件。二、邊界值分析原則活動二邊界值測試用例設計1.一般邊界值僅考慮單個變量在有效取值區(qū)間上的邊界值,包括最小值、略高于最小值、略低于最大值和最大值。如果被測變量個數(shù)為n,則總的邊界值有4n個。設計測試用例時每次只覆蓋一個變量的邊界值,其他變量應當用正常值,所以可以為每個變量再選取一個正常值,這樣的話邊界值和等價類劃分相結(jié)合,總的測試用例個數(shù)為4n+1個。一、邊界值的組合活動二邊界值測試用例設計1.一般邊界值例如,程序F有兩個輸入變量x1(a≤x1≤d)和x2(e≤x2≤g),則針對(x1,x2)的一般邊界值測試用例形式如下。{<nom,min>,<nom,min+>,<nom,nom><nom,max>,<nom,max->,<min,nom><min+,nom>,<max,nom>,<max-,nom>}其中,nom表示正常值,min表示最小值,max表示最大值,min+表示略大于最小值,max-表示略小于最大值??偟臏y試用例個數(shù)為4n+1=4x2+1=9。一、邊界值的組合活動二邊界值測試用例設計
一、邊界值的組合活動二邊界值測試用例設計3.健壯邊界值同時考慮單個變量在有效區(qū)間和無效區(qū)間上的邊界值,除選取最小值、略高于最小值、正常值、略低于最大值和最大值作為邊界值外,還要選取略超過最大值及略小于最小值的值。如果被測變量個數(shù)為n,則測試用例個數(shù)為6n+1。一、邊界值的組合活動二邊界值測試用例設計
一、邊界值的組合活動二邊界值測試用例設計一、邊界值的組合一般邊界值一般最壞情況邊界值活動二邊界值測試用例設計一、邊界值的組合一般邊界值健壯最壞情況邊界值活動二邊界值測試用例設計多變量同時取邊界值看上去測試更徹底更完善,但花費的代價確實不小。例如,當n=3時,實現(xiàn)健壯邊界值覆蓋的測試用例個數(shù)為6n+1=6x3+1=19,而實現(xiàn)健壯最壞情況邊界值覆蓋的測試用例個數(shù)為==343后者約為前者的18倍。當各個變量之間相對獨立時,僅考慮使用一個變量取邊界值,另外一個變量取正常值就可以了。這樣既可以達到應有的測試效果,又可以節(jié)約大量的測試成本。一、邊界值的組合活動二邊界值測試用例設計某品牌牛奶銷售公司指派銷售員銷售各種牛奶,其中瓶裝高端牛奶15/瓶,罐裝普通牛奶5元/罐,袋裝普通牛奶2.5元/袋。對于每個銷售員,高端罐裝牛奶每月的最高供應量為5000瓶,罐裝牛奶為15000罐,袋裝牛奶30000袋,各銷售員每月至少需售出高端罐裝牛奶50瓶,罐裝牛奶150罐,袋裝牛奶300袋。每到月末時,各銷售員向牛奶銷售公司上報他所在區(qū)域的銷售業(yè)績,以供牛奶銷售公司根據(jù)其銷售額計算該銷售員的傭金(提成),并作為獎金發(fā)放,計算方法如下?!?萬元(含)以下,4%。·1萬元(不含)到3萬元(含),3%。·3萬元(不含)以上,1%二、邊界值應用實例活動二邊界值測試用例設計首先,從輸入角度分析該問題。該問題的輸入變量有3個,其對應的等價類劃分如下?!て垦b牛奶瓶數(shù),有效等價類[50,5000]?!す扪b牛奶罐數(shù),有效等價類[150,15000]?!ごb牛奶袋數(shù),有效等價類[300,30000]。按照邊界值取值方法,對每個輸入變量分別取7個值min-、min、min+、nom、max-、max和max+,具體如下?!て垦b牛奶瓶數(shù),取值{49,50,51,2500,4999,5000,5001}?!す扪b牛奶罐數(shù),取值{149,150,151,7500,14999,15000,15001}?!ごb牛奶袋數(shù),取值{299,300,301,15000,29999,30000,30001}。二、邊界值應用實例根據(jù)邊界值組合測試用例規(guī)則,保留其中一個變量,讓其余變量取正常值,共可以得到6x3+1=19個測試用例。測試用例瓶裝牛奶罐裝牛奶袋裝牛奶銷售額預期輸出Test14975001500075000輸入非法Test25075001500075750傭金:757.5Test35175001500075765傭金:757.65Test4250075001500090000傭金:900Test54999750015000149985傭金:1499.85Test65000750015000150000傭金:1500Test75001750015000150015輸入非法Test825001491500075745輸入非法Test925001501500075750傭金:757.5Test1025001511500075755傭金:757.55Test1125001499915000149995傭金:1499.985Test1225001500015000150000傭金:1500Test1325001500115000150005輸入非法Test142500150029945747.5輸入非法Test152500150030045750傭金:457.5Test162500150030145755傭金:457.55Test17250015002999952497.5傭金:524.975Test182500150030000120000傭金:1200Test192500150030001750005輸入非法活動二邊界值測試用例設計二、邊界值應用實例活動二邊界值測試用例設計以上測試用例中可以發(fā)現(xiàn),Test1、Test7、Test8、Test13、Test14、Test19分別驗證了程序的健壯性。但是其余測試用例中,銷售額都大于3萬,測試用例存在冗余。測試用例沒有對小于3萬的銷售額進行驗證,因此測試存在遺漏。二、邊界值應用實例活動二邊界值測試用例設計這時應當從輸出角度對該程序進行測試。因為銷售員每月至少需售出高端罐裝牛奶50瓶,罐裝牛奶150罐,袋裝牛奶300袋,此時銷售額為0.225萬元。每月最多可售出高端罐裝牛奶5000瓶,罐裝牛奶15000罐,袋裝牛奶30000袋,此時銷售額為22.5萬元。銷售額等價類劃分為:[0.225,1]、(1,3]、(3,22.5]對此等價類分別取邊界值為:{略小于0.225,0.225,略大于0.225,0.6,略小于1,1,略大于1,2.5,略小于3,3,略大于3,12.75,略小于22.5,22.5,略大于22.5}二、邊界值應用實例活動二邊界值測試用例設計
測試用例如表所示。二、邊界值應用實例測試用例瓶裝牛奶罐裝牛奶袋裝牛奶銷售額預期輸出Test1501502992247.5輸入非法Test2501503002250傭金:90Test3501503012255傭金:90.2Test45015018006000傭金:120Test510030027999997.5傭金:399.9Test6100300280010000傭金:400Test7100300280110002.5傭金:300.075Test8200400800025000傭金:750Test96002000439829995傭金:899.85Test106002000440030000傭金:900Test116002000440130002.5傭金:300.025Test122500750021000127500傭金:1275Test1350001500029999224997.5傭金:2249.75Test1450001500030000225000傭金:2250Test1550001500030001225002.5輸入非法某程序具有如下功能:文本框要求輸入日期信息,日期限定在1990年1月~2049年12月,并規(guī)定日期由6位數(shù)字字符組成,前4位表示年,后2位表示月;程序需對輸入的日期有效性進行校驗。用等價類劃分方法和邊界值分析法為該程序的“日期檢查功能”設計測試用例。程序需求規(guī)格說明要求輸入6個數(shù)字字符yyyynn;參照等價類劃分法,可以劃分為一個有效等價類和三個無效等價類。任務實施任務實施輸入等價類有效等價類編號無效等價類編號日期的類型和長度輸入6個數(shù)字字符1輸入6個字符,存在非數(shù)字的情況2輸入少于6個數(shù)字字符3輸入多于6個數(shù)字字符4年份范圍1990~20495小于19906大于20497月份范圍0~128小于019大于1210按照邊界值取值方法,可以取以下邊界值情況:月份:{00、01、02、06、11、12、13}年份:{1989、1990、1991、2020、2048、2049、2050}設計測試用例如下:任務實施任務實施序號測試輸入預期輸出11989.06提示“請輸入正確日期”21990.06提示“日期正確”31991.06提示“日期正確”42020.06提示“日期正確”52048.06提示“日期正確”62049.06提示“日期正確”72050.06提示“請輸入正確日期”82020.00提示“請輸入正確日期”82020.01提示“日期正確”92020.11提示“日期正確”102020.12提示“日期正確”112020.13提示“請輸入正確日期”任務三判定表測試●本任務通過分析打印機的打印功能的需求規(guī)格說明,列出所有的條件和動作,確定規(guī)則的個數(shù),填入條件項和動作項并簡化判定表,設計測試用例,完成對打印機打印功能的判定表測試。●等價類劃分法和邊界值測試法都是著重考慮輸入條件,但沒有考慮輸入條件的各種組合。雖然各種輸入條件可能出錯的情況已經(jīng)測試到了,但多個輸入條件組合起來可能出錯的情況卻被忽視了。判定表驅(qū)動法重點就是針對輸入條件的各種組合情況進行測試。任務陳述活動一認識判定表在一些數(shù)據(jù)處理問題中,某些操作的實施依賴于多個邏輯條件的組合,針對不同邏輯條件的組合值,分別執(zhí)行不同的操作,判定表很適合處理這類題。判定表也叫決策表,是一種邏輯分析和表達工具,用于分析和表達多個輸入條件在不同的取值組合下,會分別執(zhí)行哪些不同的操作。一、判定表的構(gòu)成活動一認識判定表例如,有一個“閱讀指南”,它對讀者提出三個問題,若讀者的回答是肯定的(判定取真值),標以字母“Y”;若回答是否定的(判定取假值),標以字母“N”。3個判定條件,共有8種取值情況。表還為讀者提供了4條建議,但不需要每種情況都實施。要實施的建議在相應欄內(nèi)標以“?”,其他建議欄內(nèi)則什么也不標。例如,表中的第3種情況,當該者已經(jīng)疲勞,對內(nèi)容又不感興趣,并且還沒讀懂時,建議讀者去休息。這就是一張判定表,如圖所示。
一、判定表的構(gòu)成活動一認識判定表一、判定表的構(gòu)成問題與建議12345678問題C1:是否疲倦YYYYNNNNC2:是否對內(nèi)容感興趣YYNNYYNNC3:是否感到糊涂YNYNYNYN建議A1:回到本章開頭重讀
√
A2:繼續(xù)讀下去
√
A3:跳到下一章去讀
√√A4:停止閱讀并休息√√√√
活動一認識判定表
·條件樁:列出了問題的所有條件,除了某些問題對條件的先后次序有特定的要求外,通常在這里列出的條件其先后次序無關(guān)緊要,可以任意調(diào)換?!l件項:針對條件樁給出的條件列出所有可能的取值。
一、判定表的構(gòu)成活動一認識判定表
·動作樁:給出了問題規(guī)定的可能采取的操作,這些操作的排列順序一般沒有什么約束,但為了便于閱讀也可令其按適當?shù)捻樞蚺帕?。·動作項:和條件項緊密相關(guān),指出在條件項的各組取值情況下應采取的動作。
一、判定表的構(gòu)成活動一認識判定表如果C1、C2和C3都為真,則采取動作A4。如果C1為假,而C2和C3都為真,則采取動作A1。把任何一個條件組合的特定取值及相應要執(zhí)行的動作稱為一條規(guī)則,在判定表中貫穿條件項和動作項的一列就是一條規(guī)則。顯然,判定表中列出多少組條件取值,就有多少條規(guī)則。根據(jù)判定表設計測試用例就不會遺漏。
一、判定表的構(gòu)成活動一認識判定表實際使用判定表時,常常先將它簡化,簡化是以合并相似規(guī)則為目標的。若表中有兩條或多條規(guī)則具有相同的動作,并且在條件項之間存在著極為相似的關(guān)系,便可以設法將其合并。二、判定表的化簡活動一認識判定表實際使用判定表時,常常先將它簡化,簡化是以合并相似規(guī)則為目標的。若表中有兩條或多條規(guī)則具有相同的動作,并且在條件項之間存在著極為相似的關(guān)系,便可以設法將其合并。二、判定表的化簡活動一認識判定表
例如,中第1、2條規(guī)則的動作項一致,條件項中前兩個條件取值一致,只是第3個條件取值不同,這一情況表明,前兩個條件分別取真值和假值時,無論第3個條件取什么值,都要執(zhí)行同一操作,即要執(zhí)行的動作與第3個條件的取值無關(guān),于是便將這兩個規(guī)則合并,合并后的第3個條件項用符號“—”表示與取值無關(guān)。
二、判定表的化簡問題與建議12345678問題C1:是否疲倦YYYYNNNNC2:是否對內(nèi)容感興趣YYNNYYNNC3:是否感到糊涂YNYNYNYN建議A1:回到本章開頭重讀
√
A2:繼續(xù)讀下去
√
A3:跳到下一章去讀
√√A4:停止閱讀并休息√√√√
活動一認識判定表二、判定表的化簡活動一認識判定表二、判定表的化簡規(guī)則進行合并,可以減少重復的規(guī)則,相應地減少測試用例的設計,這樣可以大大降低軟件測試的工作量。圖書閱讀指南判定表最初有8條規(guī)則,進行合并之后,只剩下5條規(guī)則,簡化后的圖書閱讀指南判定表如表所示
問題與建議12345問題C1:是否疲倦YYNNNC2:是否對內(nèi)容感興趣YNNYYC3:是否感到糊涂---YN建議A1:回到本章開頭重讀
√
A2:繼續(xù)讀下去
√A3:跳到下一章去讀
√
A4:停止閱讀并休息√√
活動二判定表測試用例設計
一、判定表測試方法活動二判定表測試用例設計某公司的薪資管理制度如下:員工工資分為年薪制與月薪制兩種,員工的錯誤定位包括普通錯誤與嚴重錯誤兩種,如果是年薪制的員工,犯普通錯誤扣款2%,犯嚴重錯誤扣款4%;如果是月薪制的員工,犯普通錯誤扣款4%,犯嚴重錯誤扣款8%。該公司編寫了一款軟件用于員工工資計算發(fā)放,現(xiàn)在要對該軟件進行測試。二、判定表應用實例活動二判定表測試用例設計對公司員工工資管理進行分析,可得出員工工資由4個因素決定:年薪、月薪、普通錯誤、嚴重錯誤,其中年薪與月薪不可能并存,但普通錯誤與嚴重錯誤可以并存二、判定表應用實例原因年薪c1月薪c2普通錯誤c3嚴重錯誤c4結(jié)果未扣款e1扣款2%e2扣款4%e3扣款6%e4扣款4%e5扣款8%e6扣款12%e7而員工最終扣款結(jié)果有7種:未扣款、扣款2%、扣款4%、扣款6%(2%+4%)、扣款4%、扣款8%、扣款12%(4%+8%),由此總結(jié)出該軟件測試的原因與結(jié)果,如表所示?;顒佣卸ū頊y試用例設計
二、判定表應用實例規(guī)則12345678原因c1YYYY
c2
YYYYc3NYNYNYNYc4NNYYNNYY結(jié)果e1√
√
e2
√
e3
√
e4
√
e5
√
e6
√
e7
√活動二判定表測試用例設計分析該員工工資判定表,并沒有可以合并的規(guī)則,因此在測試時需要設計8個測試用例。根據(jù)公司的薪資情況可設計測試用例,如表所示。二、判定表應用實例測試用例薪資制度薪資/元錯誤程度扣款/元Test1年薪制200000無0Test2250000普通5000Test3300000嚴重12000Test4350000普通+嚴重21000Test5月薪制8000無0Test610000普通400Test715000嚴重1200Test88000普通+嚴重960使用判定表方法對打印機對打印功能設計測試用例。打印機能否打印出正確的內(nèi)容,有多個影響因素。包括驅(qū)動程序、紙張、磨粉等。第一步,列出所有的條件和動作。條件樁:①驅(qū)動程序是否正確?②是否有紙張?③是否有墨粉?任務實施動作樁:這里動作樁主要有兩種,即打印正確內(nèi)容和各類錯誤提示,并且假定:優(yōu)先警告沒有紙張,然后警告沒有墨粉,最后警告驅(qū)動程序不對。①打印內(nèi)容。②提示沒有紙張。③提示沒有墨粉。④提示驅(qū)動程序不對。任務實施
任務實施選項12345678條件驅(qū)動程序是否正確?YYYYNNNN是否有紙張?YYNNYYNN
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版果園產(chǎn)品溯源體系建設合同范本3篇
- 中國電子信息產(chǎn)業(yè)集團有限公司介紹
- 物業(yè)知識培訓課件
- 物料制造知識培訓班課件
- 二零二五年度房屋買賣補充協(xié)議(包含交易資金安全及監(jiān)管措施)3篇
- 國家電力投資集團有限公司介紹
- 烏魯木齊市第40中學 2024-2025學年 高一上學期期末考試 英語試題 (含答案)
- 二零二五年度辦公樓施工設備租賃服務合同2篇
- 二零二五年度二手注塑機轉(zhuǎn)讓附設備安全使用規(guī)范與培訓協(xié)議3篇
- 全國粵教版信息技術(shù)七年級上冊第一單元第一節(jié)2.《接入因特網(wǎng)》說課稿
- DJG330110-T 0101-2022 電動自行車充換電站建設及運營管理規(guī)范
- 2023年中考語文二輪復習:圖(表)文轉(zhuǎn)化之徽標圖標 練習題匯編(含答案解析)
- 2023年中考語文二輪復習:名著閱讀 真題練習題匯編(含答案解析)
- 《汽車驅(qū)動橋》汽車標準
- 投資的本質(zhì):巴菲特的12個投資宗旨
- 護欄和扶手制作與安裝工程檢驗批質(zhì)量驗收記錄
- 食堂安全操作規(guī)范培訓課件(48張)
- 乳頭混淆介紹演示培訓課件
- 外科學-粘連性腸梗阻
- 護理學基礎(chǔ)簡答題 126道題 附答案
- 名著導讀簡·愛整本書閱讀計劃
評論
0/150
提交評論