版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1,軟件測(cè)試,內(nèi)容,前言 第一章 軟件質(zhì)量保證 第二章 軟件測(cè)試概述 第三章 測(cè)試人員的數(shù)學(xué)知識(shí) 第四章 軟件測(cè)試技術(shù) 第五章 軟件測(cè)試過(guò)程 第六章 軟件測(cè)試管理體系,前言-內(nèi)容,課程的由來(lái) 軟件危機(jī) 軟件工程 軟件質(zhì)量保證 軟件測(cè)試 課程的介紹 目標(biāo) 內(nèi)容 形式和要求 參考書(shū)目,前言-課程由來(lái),軟件危機(jī)(1960s) 根源: 硬件越來(lái)越復(fù)雜,功能越來(lái)越強(qiáng)大(摩爾定律) 對(duì)軟件在應(yīng)用領(lǐng)域和規(guī)模上的期望越來(lái)越高 軟件的發(fā)展速度落后于硬件的發(fā)展速度 真實(shí)世界與計(jì)算機(jī)世界的映射 靠人來(lái)生產(chǎn) 多人開(kāi)發(fā),前言-課程由來(lái),軟件危機(jī)(1960s) 表現(xiàn):軟件質(zhì)量不高、超出預(yù)算、項(xiàng)目延遲 根源:軟件系統(tǒng)復(fù)雜性
2、提高、多人合作 解決: 軟件工程 與軟件相關(guān)的人員 項(xiàng)目組 用戶和股東 計(jì)算機(jī)系統(tǒng) 設(shè)計(jì)技術(shù) 控制復(fù)雜:人的思維極限 抽象/建模 分解 重用:質(zhì)量和效率 語(yǔ)言與開(kāi)發(fā)包 OO,前言-課程由來(lái),軟件工程 目標(biāo):解決溝通和集成問(wèn)題 策略:控制錯(cuò)誤 錯(cuò)誤 缺陷/Bug/Defect/Error 狹義: 軟件定義、設(shè)計(jì)、實(shí)現(xiàn)、打包/部署、使用過(guò)程中出現(xiàn)的與明確的需求不一致:不能正確完成任務(wù)、完成多余的任務(wù) 廣義: 還包括:改善產(chǎn)品的建議;與用戶隱含的需求不一致,前言-課程由來(lái),軟件工程 方法: 預(yù)防錯(cuò)誤: 規(guī)范化 流程、職責(zé)、角色、模式:RUP (Rational Unified Process )、C
3、MM/CMMI、Pattern 表達(dá)方式:UML、Pattern 文檔化 迭代與體系結(jié)構(gòu) 糾正錯(cuò)誤: 測(cè)試 調(diào)試 減少錯(cuò)誤損失 培訓(xùn),前言-課程由來(lái),SQA:軟件質(zhì)量保證 過(guò)程改進(jìn):預(yù)防錯(cuò)誤 規(guī)范化:流程 文檔化 軟件測(cè)試:發(fā)現(xiàn)錯(cuò)誤 錯(cuò)誤發(fā)現(xiàn)的越早,解決的代價(jià)越小,前言-課程由來(lái),SQA涉及的工作崗位 過(guò)程改進(jìn)工程師 過(guò)程改進(jìn) 測(cè)試工程師 軟件測(cè)試 開(kāi)發(fā)工程師 軟件測(cè)試 軟件調(diào)試 測(cè)試經(jīng)理 測(cè)試流程管理 測(cè)試度量,前言-內(nèi)容,課程的由來(lái) 軟件危機(jī) 軟件工程 軟件質(zhì)量保證 軟件測(cè)試 課程的介紹 目標(biāo) 內(nèi)容 形式和要求 參考書(shū)目,前言-課程介紹,目標(biāo) 學(xué)習(xí)質(zhì)量保證的基本概念和理論 學(xué)習(xí)軟件測(cè)試的基
4、本概念和理論 掌握白盒測(cè)試/黑盒測(cè)試技術(shù) 掌握單元測(cè)試/集成測(cè)試/系統(tǒng)測(cè)試技術(shù) 掌握測(cè)試流程管理和測(cè)試度量技術(shù) 掌握測(cè)試工具和測(cè)試流程管理工具 了解測(cè)試相關(guān)工作的崗位要求和職業(yè)素質(zhì)要求 了解測(cè)試行業(yè)的現(xiàn)狀和技術(shù)發(fā)展趨勢(shì),前言-課程介紹,內(nèi)容 軟件質(zhì)量保證方法和軟件測(cè)試概念 開(kāi)發(fā)工程師需要掌握的 靜態(tài)測(cè)試/白盒測(cè)試/黑盒測(cè)試技術(shù)、單元測(cè)試/集成測(cè)試要求 測(cè)試度量方法 測(cè)試工具 職業(yè)素質(zhì)要求,前言-課程介紹,內(nèi)容 測(cè)試工程師需要掌握的 黑盒測(cè)試技術(shù)、集成測(cè)試/系統(tǒng)測(cè)試要求 攻擊式軟件測(cè)試 測(cè)試度量方法 測(cè)試工具 職業(yè)素質(zhì)要求 測(cè)試經(jīng)理需要掌握的 測(cè)試流程管理 測(cè)試團(tuán)隊(duì)組織和測(cè)試度量 測(cè)試流程管理工
5、具和缺陷跟蹤工具 職業(yè)素質(zhì)要求,前言-課程介紹,形式和要求 學(xué)習(xí)前的要求: 掌握軟件工程基本概念 掌握軟件開(kāi)發(fā)方法、高級(jí)程序設(shè)計(jì)語(yǔ)言和數(shù)據(jù)庫(kù)相關(guān)知識(shí) 了解Windows平臺(tái)開(kāi)發(fā) 學(xué)習(xí)方式: 課堂講解 上機(jī)實(shí)踐(浪潮通軟ERP或者自己開(kāi)發(fā)計(jì)算器程序) 課堂討論或者課堂練習(xí) 成績(jī)?cè)u(píng)定方法: 期末筆試占總成績(jī)的60% 實(shí)踐和課堂討論(課堂練習(xí))占總成績(jī)的40%,前言-課程介紹,參考書(shū)目 軟件測(cè)試基礎(chǔ) Paul Ammann, Jeff Offutt,2010,機(jī)械工業(yè)出版社 軟件測(cè)試案例教程 呂云翔,王洋等 ,2011,機(jī)械工業(yè)出版社 實(shí)用軟件測(cè)試指南 馬良荔,2003,電子工業(yè)出版社,前言-其他事
6、宜,請(qǐng)班長(zhǎng)留聯(lián)系方式 請(qǐng)留班級(jí)公共郵箱,17,第一章 軟件質(zhì)量保證,第一章 內(nèi)容,1.1 軟件質(zhì)量 1.2 軟件質(zhì)量保證:SQA 1.2.1 SQA目標(biāo) 1.2.2 SQA模型 1.2.2.1 ISO9001 1.2.2.2 CMMI 1.3 SQA支持工具,1.1 軟件質(zhì)量,什么是軟件質(zhì)量 ANSI/IEEE Std 729-1983定義軟件質(zhì)量為“與軟件產(chǎn)品滿足規(guī)定的和隱含的需求的能力有關(guān)的特征或特性的全體”。 M.J. Fisher 定義軟件質(zhì)量為“所有描述計(jì)算機(jī)軟件優(yōu)秀程度的特性的組合”。,1.1 軟件質(zhì)量,高質(zhì)量的軟件,能夠按照預(yù)期的時(shí)間和成本提交給用戶,并能夠按照預(yù)期要求正確工作的
7、軟件 Scope Time Cost,1.1 軟件質(zhì)量,為什么提出軟件質(zhì)量 軟件質(zhì)量不高是導(dǎo)致軟件危機(jī)的根本原因 進(jìn)度延誤、預(yù)算超支 項(xiàng)目失敗、項(xiàng)目終止 軟件質(zhì)量高可以降低總成本 軟件維護(hù)成本 高質(zhì)量的軟件可以降低維護(hù)成本,并延長(zhǎng)軟件的生命期,從而降低總成本 軟件失效成本 高質(zhì)量的軟件可以降低軟件失效導(dǎo)致的成本損失,從而降低總成本,怎樣提高軟件質(zhì)量 目標(biāo) 優(yōu)化軟件開(kāi)發(fā)過(guò)程 減少軟件中的bug 方法 防止在軟件中引入錯(cuò)誤 通過(guò)檢測(cè)找出軟件中的錯(cuò)誤,并解決這種錯(cuò)誤,1.1 軟件質(zhì)量,1.2 軟件質(zhì)量保證:SQA,什么是SQA Software Quality Assurance 是軟件工程領(lǐng)域中的
8、一部分 為了確保軟件開(kāi)發(fā)過(guò)程和結(jié)果符合預(yù)期的要求,而建立的一系列規(guī)程和計(jì)劃,以及依照規(guī)程和計(jì)劃采取的一系列活動(dòng)及其結(jié)果評(píng)價(jià) 軟件開(kāi)發(fā)過(guò)程是按照計(jì)劃和規(guī)范實(shí)施的 軟件開(kāi)發(fā)結(jié)果包括完整的軟件和文檔,并且符合可預(yù)期的目標(biāo)和檢驗(yàn)標(biāo)準(zhǔn),1.2.1 SQA目標(biāo),SQA總目標(biāo) 減少并糾正實(shí)際的軟件開(kāi)發(fā)過(guò)程和軟件開(kāi)發(fā)結(jié)果與預(yù)期的軟件開(kāi)發(fā)過(guò)程和軟件開(kāi)發(fā)結(jié)果的不符合情況 SQA方法 通過(guò)在軟件開(kāi)發(fā)周期中盡可能早地預(yù)期或檢測(cè)到不符合情況(錯(cuò)誤) ,來(lái)防止錯(cuò)誤的發(fā)生,并減少錯(cuò)誤糾正的成本 錯(cuò)誤發(fā)現(xiàn)得越早,造成的損失越小,修改的代價(jià)也越小,1.2.1 SQA目標(biāo),軟件開(kāi)發(fā)不同階段: 需求分析:Requirements
9、Analysis 規(guī)格定義:Software Specifications 設(shè)計(jì):Design 編碼:Coding 測(cè)試:Testing 維護(hù):Maintenance,1.2.1 SQA目標(biāo),需求分析:Requirements Analysis 確??蛻籼岢龅囊笫强尚械?確??蛻袅私庾约禾岢龅男枨蟮暮x,并且這個(gè)需求能夠真正達(dá)到他們的目標(biāo) 確保開(kāi)發(fā)人員和客戶對(duì)于需求沒(méi)有誤解或者誤會(huì) 確保按照需求實(shí)現(xiàn)的軟件系統(tǒng)能夠滿足客戶提出的要求,1.2.1 SQA目標(biāo),規(guī)格定義:Software Specifications: 確保規(guī)格定義能夠完全符合、支持和覆蓋前面描述的系統(tǒng)需求 可以采用建立需求跟蹤文
10、檔和需求實(shí)現(xiàn)矩陣的方式 確保規(guī)格定義滿足系統(tǒng)需求的性能、可維護(hù)性、靈活性的要求 確保規(guī)格定義是可以測(cè)試的,并且建立了測(cè)試策略 確保建立了可行的、包含評(píng)審活動(dòng)的開(kāi)發(fā)進(jìn)度表 確保建立了正式的變更控制流程,1.2.1 SQA目標(biāo),設(shè)計(jì):Design: 確保建立了設(shè)計(jì)的描述標(biāo)準(zhǔn),并且按照該標(biāo)準(zhǔn)進(jìn)行設(shè)計(jì) 確保設(shè)計(jì)變更被正確的跟蹤、控制、文檔化 確保按照計(jì)劃進(jìn)行設(shè)計(jì)評(píng)審 確保設(shè)計(jì)按照評(píng)審準(zhǔn)則評(píng)審?fù)ㄟ^(guò)并被正式批準(zhǔn)之前,沒(méi)有開(kāi)始正式編碼,1.2.1 SQA目標(biāo),編碼:Coding: 確保建立了編碼規(guī)范、文檔格式標(biāo)準(zhǔn),并且按照該標(biāo)準(zhǔn)進(jìn)行編碼 確保代碼被正確地測(cè)試和集成,代碼的修改符合變更控制和版本控制流程 確保
11、按照計(jì)劃的進(jìn)度編寫(xiě)代碼 確保按照進(jìn)化的進(jìn)度進(jìn)行代碼評(píng)審,1.2.1 SQA目標(biāo),測(cè)試:Testing: 確保建立了測(cè)試計(jì)劃,并按照測(cè)試計(jì)劃進(jìn)行測(cè)試 確保測(cè)試計(jì)劃覆蓋了所有的系統(tǒng)規(guī)格定義和系統(tǒng)需求 確保經(jīng)過(guò)測(cè)試和調(diào)試,軟件仍舊符合系統(tǒng)規(guī)格和需求定義,1.2.1 SQA目標(biāo),維護(hù):Maintenance: 確保代碼和文檔同步更新,保持一致 確保建立了變更控制流程和版本控制流程,并按照這些流程管理維護(hù)過(guò)程中的產(chǎn)品變化 確保代碼的更改仍舊符合編碼規(guī)范、通過(guò)代碼評(píng)審,并且不會(huì)造成垃圾代碼或冗余代碼,1.2.2 SQA模型,質(zhì)量管理歷史 質(zhì)量就是產(chǎn)品、過(guò)程、系統(tǒng)符合標(biāo)準(zhǔn)要求的能力 質(zhì)量是生產(chǎn)出來(lái)的,不是檢
12、測(cè)出來(lái)的 質(zhì)量存在于全部直接/間接相關(guān)的環(huán)節(jié)中 Deming(美國(guó)質(zhì)量管理專(zhuān)家戴明博士 ),日本的全面質(zhì)量管理TQM 預(yù)防為主 第一次就把事情做好是最經(jīng)濟(jì)的 質(zhì)量管理的靈魂在于持續(xù)改進(jìn) PDCA,1.2.2 SQA模型,軟件質(zhì)量管理相關(guān)標(biāo)準(zhǔn)和技術(shù) 標(biāo)準(zhǔn) ISO9000族標(biāo)準(zhǔn) 國(guó)際標(biāo)準(zhǔn),ISO/TC176制訂,適用于所有行業(yè),其中9000-3針對(duì)軟件開(kāi)發(fā)行業(yè) SW-CMM/CMMI標(biāo)準(zhǔn) CMM:行業(yè)標(biāo)準(zhǔn),CMU-SEI制訂和管理,針對(duì)軟件開(kāi)發(fā)行業(yè) CMMI:集成的CMM ISO15504標(biāo)準(zhǔn) 國(guó)際標(biāo)準(zhǔn),試圖結(jié)合ISO9000、CMM與軟件工程概念 項(xiàng)目管理技術(shù) 項(xiàng)目:目標(biāo)、起止時(shí)間、相關(guān)活動(dòng) 定
13、義、計(jì)劃、實(shí)施,1.2.2.1 ISO9001,ISO9000族標(biāo)準(zhǔn) 一系列關(guān)于質(zhì)量管理/質(zhì)量保證/質(zhì)量審核方面的國(guó)際標(biāo)準(zhǔn),1983/1994/2000 9001/9002/9003/9004/9000-3 是管理思想的精華,管理工作的指導(dǎo)原則,也是做事方式 文檔管理:寫(xiě)你要做的,做你所寫(xiě)的,記你所做的 過(guò)程控制:PDCA-計(jì)劃性及持續(xù)改進(jìn) 相關(guān)標(biāo)準(zhǔn):QS9000等,1.2.2.1 ISO9001,原則 原則1:以顧客為中心 組織依存于顧客。因此,組織應(yīng)理解顧客當(dāng)前和未來(lái)的需求,滿足顧客要求并爭(zhēng)取超越顧客期望 原則2:領(lǐng)導(dǎo)作用 領(lǐng)導(dǎo)將本組織的宗旨、方向和內(nèi)部環(huán)境統(tǒng)一起來(lái),并創(chuàng)造使員工能夠充分參
14、與實(shí)現(xiàn)組織目標(biāo)的環(huán)境,1.2.2.1 ISO9001,原則 原則3:全員參與 各級(jí)人員是組織之本。只有他們的充分參與,才能使他們的才干為組織帶來(lái)最大的收益 原則4:過(guò)程方法 將相關(guān)的資源和活動(dòng)作為過(guò)程進(jìn)行管理,重視輸入和輸出,可以更高效地得到期望的結(jié)果,1.2.2.1 ISO9001,原則 原則5:管理的系統(tǒng)方法 針對(duì)設(shè)定的目標(biāo),識(shí)別、理解并管理一個(gè)由相互關(guān)聯(lián)的過(guò)程所組成的系統(tǒng),有助于提高組織的有效性和效率 原則6:持續(xù)改進(jìn) 持續(xù)改進(jìn)是組織的一個(gè)永恒目標(biāo),1.2.2.1 ISO9001,原則 原則7:基于事實(shí)的決策方法 對(duì)數(shù)據(jù)和信息的邏輯分析或直覺(jué)判斷是有效決策的基礎(chǔ) 原則8:互利的供方關(guān)系
15、通過(guò)互利的關(guān)系,增強(qiáng)組織及其供方創(chuàng)造價(jià)值的能力,1.2.2.1 ISO9001,在軟件企業(yè)的實(shí)施案例 原則: 運(yùn)用項(xiàng)目管理技術(shù) 重視質(zhì)量策劃 重視培訓(xùn)和工具支持 框架: 質(zhì)量手冊(cè)、規(guī)程文件、作業(yè)指導(dǎo)書(shū) 開(kāi)發(fā)管理、體系支持,1.2.2.1 ISO9001,在軟件企業(yè)的實(shí)施案例 角色分工,1.2.2.1 ISO9001,在軟件企業(yè)的實(shí)施案例 產(chǎn)品開(kāi)發(fā)規(guī)程,1.2.2.1 ISO9001,在軟件企業(yè)的實(shí)施案例 定制項(xiàng)目開(kāi)發(fā)規(guī)程,1.2.2.1 ISO9001,在軟件企業(yè)的實(shí)施案例,體系支持規(guī)程 管理評(píng)審規(guī)程 質(zhì)量體系文件控制規(guī)程 內(nèi)部質(zhì)量體系審核規(guī)程 糾正措施規(guī)程 預(yù)防措施規(guī)程 配置管理規(guī)程 質(zhì)量記
16、錄控制規(guī)程,產(chǎn)品度量規(guī)程 過(guò)程度量規(guī)程 采購(gòu)規(guī)程 配套軟件產(chǎn)品控制規(guī)程 培訓(xùn)規(guī)程 檔案管理規(guī)定 合同評(píng)審規(guī)程 軟件質(zhì)量保證規(guī)程 產(chǎn)品開(kāi)發(fā)規(guī)程,1.2.2.1 ISO9001,在軟件企業(yè)的實(shí)施案例,ISO9001是品質(zhì)保證標(biāo)準(zhǔn),對(duì)過(guò)程管理提出最低要求 質(zhì)量保證體系根據(jù)軟件工程原理自行設(shè)計(jì)和維持,滿足ISO9001要求 質(zhì)量策劃根據(jù)項(xiàng)目自身特點(diǎn),對(duì)質(zhì)量體系進(jìn)行剪裁和補(bǔ)充,1.2.2.2 CMMI,CMMI:Capability Maturity Model Integration,即能力成熟度模型集成 來(lái)源于:美國(guó)卡內(nèi)基梅隆大學(xué)的軟件工程研究所(SEI)創(chuàng)立的CMM(Capability Matu
17、rity Model 軟件能力成熟度模型),1.2.2.2 CMMI,目標(biāo) 為提高組織過(guò)程和管理產(chǎn)品開(kāi)發(fā)、發(fā)布和維護(hù)能力提供保障。 幫助組織客觀評(píng)價(jià)自身能力成熟度和過(guò)程域能力,為過(guò)程改進(jìn)建立優(yōu)先級(jí)以及執(zhí)行過(guò)程改進(jìn)。,1.3 SQA支持工具,SQA實(shí)施要素 規(guī)范 規(guī)程、模板、指南 文檔、記錄 人員 分工、接口、培訓(xùn)、檢查 技術(shù) 知識(shí)管理、工具,1.3 SQA支持工具,支持工具 自行開(kāi)發(fā) 廠商提供 IBM Rational,49,第二章 軟件測(cè)試概述,內(nèi)容,2.1 軟件測(cè)試定義及術(shù)語(yǔ) 2.2 錯(cuò)誤與缺陷的分類(lèi) 2.3 軟件測(cè)試的目標(biāo) 2.4 軟件測(cè)試的特征 2.5測(cè)試用例及管理工具,2.1 什么是
18、軟件測(cè)試,軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行一個(gè)程序或系統(tǒng)的過(guò)程,2.1 軟件測(cè)試的發(fā)展歷史,20世紀(jì)50年代之前,沒(méi)有系統(tǒng)的軟件測(cè)試 20世紀(jì)50年代-60年代,測(cè)試的重點(diǎn)是高級(jí)語(yǔ)言編寫(xiě)的系統(tǒng),軟件測(cè)試發(fā)展緩慢 20世紀(jì)70年代以后,軟件測(cè)試發(fā)展迅速,同時(shí)面臨著危機(jī) 現(xiàn)在,軟件測(cè)試是一個(gè)基于軟件開(kāi)發(fā)整個(gè)生命周期的質(zhì)量控制活動(dòng),2.1 國(guó)內(nèi)軟件行業(yè)的現(xiàn)狀,處于起步階段 軟件評(píng)測(cè)中心的出現(xiàn),2.1 軟件的生命周期,2.1 相關(guān)術(shù)語(yǔ),軟件故障:軟件中的靜態(tài)缺陷 軟件錯(cuò)誤:不正確的內(nèi)部狀態(tài),該狀態(tài)是某個(gè)故障的表現(xiàn) 軟件失?。号c需求或者其他期望行為的描述有關(guān)的、外部的、不正確的行為,2.1相關(guān)術(shù)語(yǔ),以看病為
19、例解釋上述術(shù)語(yǔ):病人帶著一些失敗(癥狀)進(jìn)入醫(yī)生辦公室,醫(yī)生必須發(fā)現(xiàn)故障(癥狀的根源)。為了幫助診斷,醫(yī)生制定一些測(cè)試來(lái)尋找異常的內(nèi)部條件,比如高血壓、心律不齊等,這些異常的內(nèi)部條件相當(dāng)于錯(cuò)誤。,2.1相關(guān)術(shù)語(yǔ),軟件測(cè)試與醫(yī)生診療有質(zhì)的不同: 軟件中的故障是設(shè)計(jì)錯(cuò)誤 醫(yī)療問(wèn)題與計(jì)算機(jī)硬件故障一樣,經(jīng)常是物理退化的結(jié)果,2.1相關(guān)術(shù)語(yǔ),Public static int numZero(int x) /效果:統(tǒng)計(jì)x中0出現(xiàn)的次數(shù) int count = 0; for (int i = 1;i x.length;i+) if (xi = 0) count+; return count; ,考慮輸入
20、為2.7.0和0.7.2時(shí),上述程序的表現(xiàn),雖然有軟件故障,但是第一個(gè)輸入,軟件并沒(méi)有失敗,2.1相關(guān)術(shù)語(yǔ),上一頁(yè)的例子說(shuō)明,對(duì)于一個(gè)給定的故障,不是所有的輸入都會(huì)“觸發(fā)”故障來(lái)創(chuàng)建不正確的輸出(失?。Rl(fā)現(xiàn)一個(gè)失敗需要考慮下面3個(gè)條件: 程序中包含故障的位置必須找到 執(zhí)行該位置后,程序的狀態(tài)必須是不正確的 受到影響的狀態(tài)必須傳播出來(lái),引起改程序的某個(gè)輸出是不正確的,2.1軟件故障產(chǎn)生的原因,2.2 軟件測(cè)試的目的,2.2軟件測(cè)試的目的,軟件測(cè)試是一個(gè)為了尋找缺陷而運(yùn)行程序的過(guò)程 一個(gè)好的測(cè)試用例是很可能找到至今為止尚未發(fā)現(xiàn)的缺陷的測(cè)試用例 一個(gè)成功的測(cè)試是揭示了至今為止尚未發(fā)現(xiàn)缺陷的測(cè)試
21、軟件測(cè)試的目標(biāo)是設(shè)計(jì)這樣的測(cè)試:既能系統(tǒng)的揭示不同類(lèi)型的缺陷而且耗費(fèi)最少的時(shí)間和最少的工作量,2.2軟件測(cè)試的原則,測(cè)試能提高軟件的質(zhì)量,但是提高質(zhì)量不能依賴測(cè)試 確定預(yù)定的輸出 避免測(cè)試自己的程序 徹底檢查每一個(gè)測(cè)試結(jié)果 對(duì)非法、非預(yù)期性輸入的測(cè)試 檢查程序是否做了它不該做的事 程序中存在錯(cuò)誤的概率與已發(fā)現(xiàn)的錯(cuò)誤數(shù)成正比 保留測(cè)試用例,2.2軟件測(cè)試中的誤區(qū),調(diào)試和測(cè)試是一樣的 測(cè)試組應(yīng)該為保證質(zhì)量負(fù)責(zé) 過(guò)分依賴Beta測(cè)試 把測(cè)試作為新員工的一個(gè)過(guò)渡工作 把不合格的開(kāi)發(fā)人員安排作測(cè)試 關(guān)注測(cè)試的執(zhí)行,忽略測(cè)試的設(shè)計(jì),2.2軟件測(cè)試中的誤區(qū)(續(xù)),測(cè)試自動(dòng)化是萬(wàn)能的 測(cè)試時(shí)可以窮盡的 測(cè)試是
22、為了證明軟件的正確性 測(cè)試是枯燥乏味,缺乏創(chuàng)造力的工作,2.2軟件測(cè)試人員應(yīng)具備的素質(zhì),探索精神 故障排除能力 不懈努力 創(chuàng)造性 追求完美 判斷準(zhǔn)確 老練穩(wěn)重 說(shuō)服力,2.3 軟件缺陷,軟件未達(dá)到產(chǎn)品描述標(biāo)明的功能/非功能要求 軟件出現(xiàn)了產(chǎn)品描述指明不會(huì)出現(xiàn)的錯(cuò)誤 軟件功能超出了產(chǎn)品描述指明的功能 軟件未達(dá)到產(chǎn)品描述雖未指明但應(yīng)達(dá)到的目標(biāo) 測(cè)試人員或者最終用戶認(rèn)為軟件難以理解、不易使用、運(yùn)行速度緩慢,2.3 缺陷分類(lèi),輕微 詞語(yǔ)拼寫(xiě)錯(cuò)誤 中等 誤導(dǎo)或重復(fù)信息 使人不悅 被截?cái)嗟拿Q 影響使用 有些交易沒(méi)有處理 嚴(yán)重 丟失交易,2.3 缺陷分類(lèi)(續(xù)),非常嚴(yán)重 不正確的交易處理 極為嚴(yán)重 經(jīng)常出
23、現(xiàn)“非常嚴(yán)重”錯(cuò)誤 無(wú)法忍受 數(shù)據(jù)庫(kù)破壞 災(zāi)難性 系統(tǒng)停機(jī) 容易傳染 擴(kuò)展到其他系統(tǒng)停機(jī),2.4 軟件測(cè)試的特征,軟件測(cè)試具有一定的風(fēng)險(xiǎn) 軟件缺陷的寄生蟲(chóng)性 軟件測(cè)試的殺蟲(chóng)劑現(xiàn)象 軟件測(cè)試的不修復(fù)原則 Pareto原則,2.4完全測(cè)試程序是不可能的,輸入量太大 輸出結(jié)果太多 軟件實(shí)現(xiàn)途徑太多 軟件說(shuō)明書(shū)沒(méi)有客觀標(biāo)準(zhǔn),2.4軟件測(cè)試是有風(fēng)險(xiǎn)的行為,2.4軟件缺陷的寄生蟲(chóng)性,找到的缺陷越多,說(shuō)明軟件存在的缺陷越多 原因:程序員的疲倦 程序員往往犯同樣的錯(cuò)誤 某些軟件缺陷可能是大災(zāi)難的征兆,2.4軟件測(cè)試的殺蟲(chóng)劑現(xiàn)象,軟件測(cè)試越多,其免疫力越強(qiáng) 方案:編寫(xiě)新的測(cè)試用例 對(duì)程序的不同部分進(jìn)行測(cè)試,2.
24、4軟件測(cè)試的不修復(fù)原則,并非所有的軟件缺陷都需要修復(fù) 原因: 沒(méi)有足夠的時(shí)間,項(xiàng)目進(jìn)度決定 不算真正的缺陷,是一項(xiàng)功能 修復(fù)風(fēng)險(xiǎn)太大 ,可能導(dǎo)致其它bug 不值得修復(fù),不常用的功能,不常出現(xiàn)的bug,可以躲過(guò)的,2.4 Pareto原則,2.5 什么是測(cè)試用例?,測(cè)試用例是為某個(gè)特殊目標(biāo)而編制的一組測(cè)試輸入、執(zhí)行條件以及預(yù)期結(jié)果,以便測(cè)試某個(gè)程序路徑或核實(shí)是否滿足某個(gè)特定需求。,2.5系統(tǒng)測(cè)試用例的好處(一),要使最終用戶對(duì)軟件感到滿意,最有力的舉措就是對(duì)最終用戶的期望加以明確闡述,以便對(duì)這些期望進(jìn)行核實(shí)并確認(rèn)其有效性。測(cè)試用例反映了要核實(shí)的需求。,2.5系統(tǒng)測(cè)試用例的好處(二),對(duì)測(cè)試過(guò)程可
25、以進(jìn)行進(jìn)行有效的監(jiān)督,可以準(zhǔn)確、有效的評(píng)估測(cè)試的工作量,2.5系統(tǒng)測(cè)試用例的好處(三),可以對(duì)測(cè)試結(jié)果進(jìn)行評(píng)估,并且對(duì)測(cè)試是否完成產(chǎn)生一個(gè)量化的結(jié)果,2.5系統(tǒng)測(cè)試用例的好處(四),可以在回歸測(cè)試的過(guò)程中準(zhǔn)確、快速的進(jìn)行正確的回歸,2.5系統(tǒng)測(cè)試用例的好處(五),測(cè)試用例的使用令軟件測(cè)試的實(shí)施重點(diǎn)突出、目的明確,2.5系統(tǒng)測(cè)試用例的好處(六),在開(kāi)始實(shí)施測(cè)試之前設(shè)計(jì)好測(cè)試用例,可以避免盲目測(cè)試并提高測(cè)試效率。,2.5系統(tǒng)測(cè)試用例的好處(七),在軟件版本更新后只需修正少部分的測(cè)試用例便可展開(kāi)測(cè)試工作,降低工作強(qiáng)度、縮短項(xiàng)目周期,2.5系統(tǒng)測(cè)試用例的范圍,用戶的需求,包括用戶提出的功能性需求、非功
26、能性需求等 系統(tǒng)測(cè)試用例需要考慮的問(wèn)題:功能、易用性、性能、安全等,2.5測(cè)試用例的局限性,我們不可能進(jìn)行窮舉測(cè)試, 為了節(jié)省時(shí)間和資源、提高測(cè)試效率,必須要從數(shù)量極大的可用測(cè)試數(shù)據(jù)中精心挑選出具有代表性或特殊性的測(cè)試數(shù)據(jù)來(lái)進(jìn)行測(cè)試。,2.5測(cè)試用例設(shè)計(jì)人員,測(cè)試用例應(yīng)由測(cè)試設(shè)計(jì)員或?qū)B殰y(cè)試工程師來(lái)制定,而不是普通的測(cè)試執(zhí)行人員;應(yīng)該讓最有能力的人員來(lái)完成用例的設(shè)計(jì),2.5測(cè)試用例要素,編號(hào):唯一編號(hào) 前置條件:說(shuō)明測(cè)試路徑 重要級(jí)別:對(duì)后期的測(cè)試用例執(zhí)行的考核提供一個(gè)標(biāo)準(zhǔn) 輸入:輸入的條件 期望輸出:期望輸出的結(jié)果 實(shí)際輸出:實(shí)際輸出的結(jié)果 是否正確:是/否 執(zhí)行人:測(cè)試用例執(zhí)行人標(biāo)志 執(zhí)行
27、時(shí)間:測(cè)試用例執(zhí)行的時(shí)間 備注:其他說(shuō)明文字,2.5 練習(xí)一,有兩個(gè)有故障的程序,每個(gè)包含了一個(gè)以失敗為結(jié)果的測(cè)試用例,確定程序中的故障。練習(xí)一,2.5測(cè)試用例編寫(xiě),1、Word 2、Excel 3、系統(tǒng)管理(TestDirector、Bugzilla),2.5 TestDirector,Mercury Interactive公司(2006年被HP以45億美元收購(gòu) )的測(cè)試管理工具,2.5 TestDirector-測(cè)試管理過(guò)程,需求定義(Specify Requirements): 分析應(yīng)用程序并確定測(cè)試需求。 測(cè)試計(jì)劃(Plan Tests): 基于測(cè)試需求,建立測(cè)試計(jì)劃。 測(cè)試執(zhí)行(Ex
28、ecute Tests): 創(chuàng)建測(cè)試集(Test Set)并執(zhí)行測(cè)試。 缺陷跟蹤(Track Defects): 報(bào)告程序中產(chǎn)生的缺陷并跟蹤缺陷修復(fù)的全過(guò)程。 貫穿測(cè)試的每一個(gè)階段,你能夠通過(guò)產(chǎn)生詳細(xì)的報(bào)告和圖標(biāo)對(duì)數(shù)據(jù)進(jìn)行分析。,2.5 TestDirector-需求定義,定義測(cè)試范圍(Define Testing Scope): 檢查應(yīng)用程序文檔,并確定測(cè)試范圍測(cè)試目的、目標(biāo)和策略。 創(chuàng)建需求(Create Requirements): 創(chuàng)建需求樹(shù)(Requirements Tree),并確定它涵蓋所有的測(cè)試需求。 描述需求(Detail Requirements): 為“需求樹(shù)”中的每一個(gè)
29、需求主題建立了一個(gè)詳細(xì)的目錄,并描述每一個(gè)需求,給它分配一個(gè)優(yōu)先級(jí),如有必要的話還可以加上附件。 分析需求(Analyze Requirements): 產(chǎn)生報(bào)告和圖表來(lái)幫助你分析測(cè)試需求,并檢查需求以確保它們?cè)谀愕臏y(cè)試范圍內(nèi)。,TestDirector-需求定義,2.5 TestDirector-需求描述,優(yōu)先級(jí):Low, Medium, High, Very High, Urgent 覆蓋狀態(tài):no covered, passed, no completed, no run, failed,TestDirector-需求描述,2.5 TestDirector-測(cè)試計(jì)劃,定義測(cè)試策略(Def
30、ine Testing Strategy): 檢查應(yīng)用程序、系統(tǒng)環(huán)境和測(cè)試資源,并確認(rèn)測(cè)試目標(biāo)。 定義測(cè)試主題(Define Test Subject): 將應(yīng)用程序基于模塊和功能進(jìn)行劃分,并對(duì)應(yīng)到各個(gè)測(cè)試單元或主題,構(gòu)建測(cè)試計(jì)劃樹(shù)(Test Plan Tree)。 定義測(cè)試(Define Tests): 定義每個(gè)模塊的測(cè)試類(lèi)型,并為每一個(gè)測(cè)試添加基本的說(shuō)明。 創(chuàng)建需求覆蓋(Create Requirements Coverage): 將每一個(gè)測(cè)試與測(cè)試需求進(jìn)行連接。,2.5 TestDirector-測(cè)試計(jì)劃,設(shè)計(jì)測(cè)試步驟(Design Test Steps): 對(duì)于每一個(gè)測(cè)試,先決定其要進(jìn)
31、行的測(cè)試類(lèi)型(手動(dòng)測(cè)試和自動(dòng)測(cè)試),若準(zhǔn)備進(jìn)行手動(dòng)測(cè)試,需要為其在測(cè)試計(jì)劃樹(shù)上添加相應(yīng)的測(cè)試步驟(Test Steps)。測(cè)試步驟描述測(cè)試的詳細(xì)操作、檢查點(diǎn)和每個(gè)測(cè)試的預(yù)期結(jié)果。 自動(dòng)測(cè)試(Automate Tests): 對(duì)于要進(jìn)行自動(dòng)測(cè)試的部分,應(yīng)該利用Mercury Interactive 、自己或第三方的測(cè)試工具來(lái)創(chuàng)建測(cè)試腳本。 分析測(cè)試計(jì)劃(Analyze Test Plan): 產(chǎn)生報(bào)告和圖表來(lái)幫助你分析測(cè)試計(jì)劃數(shù)據(jù),并檢查所有測(cè)試以確保它們滿足你的測(cè)試目標(biāo)。,TestDirector-測(cè)試計(jì)劃,TestDirector-建立測(cè)試覆蓋,TestDirector-測(cè)試步驟,2.5 T
32、estDirector-測(cè)試執(zhí)行,創(chuàng)建測(cè)試集(Create Test Sets): 在你的工程中定義不同的測(cè)試組來(lái)達(dá)到各種不同的測(cè)試目標(biāo),他們可能包括,舉個(gè)例子,在一個(gè)應(yīng)用程序中測(cè)試一個(gè)新的應(yīng)用版本或是一個(gè)特殊的功能。并確定每個(gè)測(cè)試集都包括了哪些測(cè)試。 確定進(jìn)度表(Schedule Runs): 為測(cè)試執(zhí)行制定時(shí)間表,并為測(cè)試員分配任務(wù)。 運(yùn)行測(cè)試(Run Tests): 自動(dòng)或手動(dòng)執(zhí)行每一個(gè)測(cè)試集。 分析測(cè)試結(jié)果(Analyze Test Results): 查看測(cè)試結(jié)果并確保應(yīng)用程序缺陷已經(jīng)被發(fā)現(xiàn)。生成的報(bào)告和圖表可以幫助你分析這些結(jié)果。,TestDirector-建立測(cè)試集,TestDi
33、rector-加入測(cè)試集,2.5 TestDirector-缺陷跟蹤,添加缺陷(Add Defects): 報(bào)告程序測(cè)試中發(fā)現(xiàn)的新的缺陷。在測(cè)試過(guò)程中的任何階段,質(zhì)量保證人員、開(kāi)發(fā)者、項(xiàng)目經(jīng)理和最終用戶都能添加缺陷。 檢查新缺陷(Review New Defects): 檢查新的缺陷,并確定哪些缺陷應(yīng)該被修復(fù)。 修復(fù)打開(kāi)的缺陷(Repair Open Defects): 修復(fù)那些你決定要修復(fù)的缺陷。 測(cè)試新構(gòu)建(Test New Build): 測(cè)試應(yīng)用程序的新構(gòu)建,重復(fù)上面的過(guò)程,直到缺陷被修復(fù)。 分析缺陷數(shù)據(jù)(Analyze Defect Data): 產(chǎn)生報(bào)告和圖表來(lái)幫助你分析缺陷修復(fù)過(guò)
34、程,并幫助你決定什么時(shí)候發(fā)布該產(chǎn)品。,TestDirector-缺陷跟蹤,TestDirector-添加缺陷,2.5 TestDirector-缺陷狀態(tài),New : 測(cè)試人員新發(fā)現(xiàn)的缺陷 open :經(jīng)開(kāi)發(fā)負(fù)責(zé)人檢查后,確認(rèn)是缺陷,將其狀態(tài)設(shè)置為open Fixed:開(kāi)發(fā)人員對(duì)于缺陷修復(fù)完畢后,將其狀態(tài)置為fixed Rejected:如果發(fā)現(xiàn)不是缺陷或者是重復(fù)缺陷,開(kāi)發(fā)負(fù)責(zé)人將缺陷的狀態(tài)置為rejected Closed:對(duì)于狀態(tài)是fixed或者是rejected的缺陷,可以關(guān)閉,closed是缺陷的最終狀態(tài) Reopen:對(duì)于狀態(tài)是fixed的缺陷,如果測(cè)試人員經(jīng)過(guò)驗(yàn)證后,發(fā)現(xiàn)沒(méi)有完全修復(fù)
35、,將其狀態(tài)置為reopen,TestDirector主頁(yè)面,TestDirector創(chuàng)建項(xiàng)目,TestDirector-創(chuàng)建用戶,TestDirector-登陸,2.5編寫(xiě)測(cè)試用例需要考慮的問(wèn)題,1、測(cè)試用例的執(zhí)行結(jié)果可以作為測(cè)試報(bào)告的一個(gè)附件提交,從而提高測(cè)試報(bào)告的能夠更準(zhǔn)確的反映測(cè)試的進(jìn)展 2、通過(guò)對(duì)測(cè)試用例的執(zhí)行情況的匯總、統(tǒng)計(jì),可以得出系統(tǒng)目前所進(jìn)行的測(cè)試工作是否充分、必要,是否已經(jīng)達(dá)到了預(yù)期的效果,測(cè)試是否已經(jīng)按計(jì)劃完成等,115,第三章 測(cè)試人員的數(shù)學(xué)知識(shí),3.1 集合論,集合定義:一組明確的、互不相同的事物組成的整體,稱為一個(gè)集合。 集合與成員:組成集合的各個(gè)事物稱為該集合的元素
36、。,3.1集合定義方式,全部列舉:寫(xiě)出集合的所有元素 部分列舉:列舉部分元素,其它元素用省略號(hào)代替 規(guī)定集合的元素所滿足的條件: A=x|x具有的性質(zhì)P,3.1空集,空集是不包含任何元素的集合 空集表示: 和 是不同的 年|2012年1812,3.1維恩圖,維恩圖是由兩個(gè)或者兩個(gè)以上重疊的圓組成的,用于表示集合之間的相互關(guān)系。 集合的關(guān)系 A 是 B 的 子集 A B A 是 B 的 真子集 A B A 和 B 是 相等集合A=B,3.1集合劃分,集合的劃分 A1,A2,An是集合A的子集 A1,A2,An是集合A的一個(gè)劃分 A1A2An=A 且 Ai Aj= (i != j),3.1集合劃分
37、在測(cè)試中的應(yīng)用,測(cè)試(1) 完備性 (2) 無(wú)冗余性 比如: 三角形和非三角形 等邊、等腰、不等邊和非三角形 等邊、等腰、不等邊、直角和非三角形,3.2函數(shù),任何程序都可以看成將其輸出與輸入關(guān)聯(lián)起來(lái)的函數(shù),因此函數(shù)是開(kāi)發(fā)測(cè)試的核心概念。 1對(duì)1函數(shù)/多對(duì)1函數(shù) 程序?qū)崿F(xiàn)的功能大多數(shù)是多對(duì)一的函數(shù),這對(duì)測(cè)試很重要(多對(duì)一測(cè)試可選代表等價(jià)類(lèi)1對(duì)1 功能相似也可分等價(jià)類(lèi)),3.3概率論,測(cè)試中研究語(yǔ)句執(zhí)行特定路徑的概率 事件的概率P(E)=E/S s是有限樣本空間,E是事件,3.4圖論,有向圖 無(wú)向圖 定義:圖G=(V, E)由結(jié)點(diǎn)的有限非空集V和結(jié)點(diǎn)無(wú)序?qū)ε技疎組成 圖通過(guò)關(guān)聯(lián)矩陣表示 圖G=(V
38、, E)的關(guān)聯(lián)矩陣是mn矩陣,3.4圖論,相鄰矩陣 n1 n2 n3 n4 n5 n6 n7 N1 0 1 0 1 0 0 0 N2 1 0 0 0 1 0 0 N3 0 0 0 1 0 0 0 N4 1 0 1 0 0 1 0 N5 0 1 0 0 0 0 0 N6 0 0 0 1 0 0 0 N7 0 0 0 0 0 0 0,3.4圖論,路徑 結(jié)構(gòu)化測(cè)試中用例 路徑是一系列的邊或一系列的節(jié)點(diǎn),3.4圖論,有向圖(框圖)D=(V,E) 一個(gè)節(jié)點(diǎn)有限集合V 一個(gè)邊的集合E 有向圖即可表示程序框圖 有向圖相鄰矩陣:有m個(gè)節(jié)點(diǎn)的有向圖D=(V, E)的相鄰矩陣是一個(gè)mm矩陣 有向圖的路徑:有向圖的
39、路徑是一系列的邊,使得該序列中所有相鄰對(duì)偶ei,ej第一條邊的終止節(jié)點(diǎn)是第二條邊的起始節(jié)點(diǎn),128,第四章 測(cè)試技術(shù),內(nèi)容,4.1功能測(cè)試技術(shù) 4.1.1白盒靜態(tài)測(cè)試 4.1.2白盒動(dòng)態(tài)測(cè)試 4.1.3基于場(chǎng)景測(cè)試 4.1.4黑盒測(cè)試 4.1.5因果圖測(cè)試 4.1.6侵入測(cè)試 4.1.7錯(cuò)誤猜測(cè)法 4.2功能測(cè)試總結(jié) 4.3自動(dòng)化功能測(cè)試 4.4非功能測(cè)試技術(shù) 4.5自動(dòng)化非功能測(cè)試 4.6非功能測(cè)試案例 4.7GUI測(cè)試,4.1靜態(tài)與動(dòng)態(tài)測(cè)試,4.1功能測(cè)試,功能測(cè)試的基本方法是構(gòu)造一些合理或者不合理的輸入,檢查輸出是否與期望的相同。如果兩者不一致,即表明功能有誤。也有例外的情況,如需求規(guī)格
40、說(shuō)明書(shū)中的某個(gè)功能寫(xiě)錯(cuò)了,而實(shí)際上軟件的功能卻是正確的,這時(shí)要更改的是需求規(guī)格說(shuō)明書(shū)。 功能測(cè)試看起來(lái)比較簡(jiǎn)單,只要看得懂需求規(guī)格說(shuō)明書(shū),誰(shuí)都會(huì)做。難點(diǎn)在于如何構(gòu)造有效的輸入。由于輸入空間通常是無(wú)限的,窮舉測(cè)試顯然行不通。隨便輸入一些東西,碰運(yùn)氣也是行不通的,4.1功能測(cè)試,肯定測(cè)試:驗(yàn)證系統(tǒng)和它陳述的需求一致 否定測(cè)試:證明一個(gè)系統(tǒng)不會(huì)作不需要它做的事情,4.1錄音機(jī)需求,狀態(tài):備用、打開(kāi)、播放、停止 在備用模式時(shí),按打開(kāi)按鈕打開(kāi)錄音機(jī) 當(dāng)錄音機(jī)打開(kāi)時(shí),按備用按鈕回到備用模式 當(dāng)錄音機(jī)打開(kāi)時(shí),按播放按鈕開(kāi)始播放當(dāng)前磁帶,按停止按鈕停止播放,4.1肯定測(cè)試的用例,在備用模式時(shí),按打開(kāi)按鈕打開(kāi)錄
41、音機(jī) 當(dāng)錄音機(jī)打開(kāi)時(shí),按備用按鈕回到備用模式 當(dāng)錄音機(jī)打開(kāi)時(shí),按播放按鈕開(kāi)始播放當(dāng)前磁帶,按停止按鈕停止播放,4.1否定測(cè)試的用例,當(dāng)錄音機(jī)正在播放磁帶時(shí),按下備用按鈕會(huì)怎樣? 按下打開(kāi)按鈕會(huì)怎樣? 當(dāng)錄音機(jī)打開(kāi)并且沒(méi)有磁帶時(shí),按下播放按鈕會(huì)怎樣?按下停止按鈕會(huì)怎樣? 當(dāng)錄音機(jī)正在播放磁帶時(shí),斷電。,4.1功能測(cè)試技術(shù),白盒測(cè)試 黑盒測(cè)試,4.1白盒測(cè)試和黑盒測(cè)試,白盒測(cè)試:對(duì)于測(cè)試對(duì)象的內(nèi)部?jī)?nèi)容是透明的、可見(jiàn)的,可以設(shè)計(jì)數(shù)據(jù)覆蓋測(cè)試對(duì)象的每一條路經(jīng)。 黑盒測(cè)試:黑盒法不關(guān)心程序內(nèi)部的邏輯,而只是根據(jù)程序的功能說(shuō)明來(lái)設(shè)計(jì)測(cè)試用例,4.1.1白盒測(cè)試,4.1.1白盒測(cè)試,代碼檢查 靜態(tài)結(jié)構(gòu)分析
42、代碼質(zhì)量度量 功能確認(rèn)與接口分析 邏輯覆蓋率分析 性能與效率分析 內(nèi)存分析,4.1.1白盒法-靜態(tài)測(cè)試,代碼檢查 靜態(tài)結(jié)構(gòu)分析,4.1.1白盒法代碼檢查,目的 確保代碼編程規(guī)范被有效執(zhí)行 檢查代碼是否存在邏輯上的錯(cuò)誤,4.1.1白盒法代碼檢查,變量命名和類(lèi)型檢查 變量初始值檢查 變量作用范圍檢查 程序邏輯審查 程序語(yǔ)法檢查 程序結(jié)構(gòu)檢查,4.1.1白盒法代碼檢查,排除違背程序編寫(xiě)標(biāo)準(zhǔn)的問(wèn)題 排除違背程序編程風(fēng)格的問(wèn)題 確保代碼和設(shè)計(jì)的一致性 確保代碼的邏輯表達(dá)的正確性 確保代碼結(jié)構(gòu)的合理性 找出程序中不可移植的部分 發(fā)現(xiàn)程序中不安全、不明確、模糊的部分 實(shí)踐表明,程序走查平均能查出被測(cè)程序的3
43、0%-70%的邏輯設(shè)計(jì)和代碼缺陷,IBM代碼走查能夠檢查出80%的錯(cuò)誤,4.1.1白盒法代碼檢查,需求描述文檔 程序設(shè)計(jì)文檔 程序的源代碼清單 代碼編碼標(biāo)準(zhǔn) 代碼缺陷檢查表,4.1.1 C/C+代碼檢查表,文件結(jié)構(gòu) 程序的版式 命名規(guī)則 表達(dá)式與基本語(yǔ)句 常量 函數(shù)設(shè)計(jì) 內(nèi)存管理 C+函數(shù)的高級(jí)特性 類(lèi)的構(gòu)造函數(shù)、析構(gòu)函數(shù) 類(lèi)的高級(jí)特性 其他特性,4.1.1文件結(jié)構(gòu),頭文件和定義文件的名稱是否合理 頭文件和定義文件的目錄結(jié)構(gòu)是否合理 版權(quán)和版本聲明是否完整,4.1.1程序的版式,空行是否得體? 代碼行內(nèi)的空格是否得體? 長(zhǎng)行拆分是否得體? “”和“”是否是否各占一行并且對(duì)齊于同一列 一行代碼是
44、否只做一件事情?如只寫(xiě)一條語(yǔ)句 If,for,while,do等語(yǔ)句各占一行,不論執(zhí)行多少語(yǔ)句都寫(xiě),4.1.1命名規(guī)則,命名規(guī)則是否與采用的操作系統(tǒng)或者開(kāi)發(fā)工具的風(fēng)格保持一致 標(biāo)示符是否直觀并且可以拼讀,4.1.1程序的版式,If (year = 2000) /良好的版式 If (year=2000) /不良的版式 If (a = b) if(x3) /語(yǔ)句塊3 ,4.1.2流程圖,4.1.2白盒法,語(yǔ)句覆蓋 判定覆蓋 條件覆蓋 判定/條件覆蓋 條件組合覆蓋 路徑測(cè)試,4.1.2白盒法語(yǔ)句覆蓋,語(yǔ)句覆蓋:語(yǔ)句覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行被測(cè)試程序,使得每一條可執(zhí)行語(yǔ)句至少執(zhí)行一次;,4.1
45、.2白盒法語(yǔ)句覆蓋,為了說(shuō)明簡(jiǎn)略,分別對(duì)各個(gè)判斷的取真、取假分支編號(hào)為a、b、c、d、e。 為了測(cè)試語(yǔ)句覆蓋率只要設(shè)計(jì)一個(gè)測(cè)試用例就可以把三個(gè)執(zhí)行語(yǔ)句塊中的語(yǔ)句覆蓋了。 測(cè)試用例輸入為: x=4、y=5、z=5 程序執(zhí)行的路徑是:abd,該測(cè)試用例雖然覆蓋了可執(zhí)行語(yǔ)句,但并不能檢查判斷邏輯 是否有問(wèn)題,例如在第一個(gè)判斷中把 3 int y=0; 4 while (iRecordNum- 0) 5 6 if(0= =iType) 7x=y+2; 8 else 9 if(1= =iType) 10 x=y+10; 11 else 12 x=y+20; 13 14 ,4.1.2第一步:畫(huà)出控制流圖,
46、c/c+語(yǔ)句中的控制語(yǔ)句表示含義如下: 圖中的每一個(gè)圓稱為流圖的結(jié)點(diǎn),代表一條或多條語(yǔ)句。流圖中的箭頭稱為邊或連接,代表控制流。,4.1.2白盒法,4.1.2白盒法,程序設(shè)計(jì)中遇到復(fù)合條件時(shí),生成的流圖變得更為復(fù)雜。當(dāng)條件語(yǔ)句中用到一個(gè)或多個(gè)布爾運(yùn)算符(邏輯OR,AND,NAND,NOR)時(shí),就出現(xiàn)了復(fù)合條件。下圖為語(yǔ)句IF a OR b中的每一個(gè)a和b創(chuàng)建了一個(gè)獨(dú)立的結(jié)點(diǎn),包含條件的結(jié)點(diǎn)被稱為判定結(jié)點(diǎn),從每一個(gè)判定結(jié)點(diǎn)發(fā)出兩條或多條邊。例如: 1 if a or b 2 x 3 else 4 y 對(duì)應(yīng)的邏輯為:,4.1.2第二步:計(jì)算圈復(fù)雜度,圈復(fù)雜度是一種為程序邏輯復(fù)雜性提供定量測(cè)度的軟件
47、度量,將該度量用于計(jì)算程序的基本的獨(dú)立路徑數(shù)目,為確保所有語(yǔ)句至少執(zhí)行一次的測(cè)試數(shù)量的上界。獨(dú)立路徑必須包含一條在定義之前不曾用到的邊。,4.1.2第二步:計(jì)算圈復(fù)雜度,有以下兩種方法計(jì)算圈復(fù)雜度: 給定流圖G的圈復(fù)雜度:V(G),定義為V(G)=E-N+2,E是流圖中邊的數(shù)量,N是流圖中結(jié)點(diǎn)的數(shù)量; 給定流圖G的圈復(fù)雜度:V(G),定義為V(G)=P+1,P是流圖G中判定結(jié)點(diǎn)的數(shù)量。,4.1.2第二步:計(jì)算圈復(fù)雜度,對(duì)應(yīng)上面圖中的圈復(fù)雜度,計(jì)算如下: V(G)=10條邊-8結(jié)點(diǎn)+2=4; V(G)=3個(gè)判定結(jié)點(diǎn)+1=4。,4.1.2第三步:導(dǎo)出測(cè)試用例,根據(jù)上面的計(jì)算方法,可得出四個(gè)獨(dú)立的路
48、徑: 路徑1:4-14 路徑2:4-6-7-14 路徑3:4-6-8-10-13-4-14 路徑4:4-6-8-11-13-4-14 根據(jù)上面的獨(dú)立路徑,去設(shè)計(jì)輸入數(shù)據(jù),使程序分別執(zhí)行到上面四條路徑。,4.1.2第四步:準(zhǔn)備測(cè)試用例,為了確?;韭窂郊械拿恳粭l路徑的執(zhí)行,根據(jù)判斷結(jié)點(diǎn)給出的條件,選擇適當(dāng)?shù)臄?shù)據(jù)以保證某一條路徑可以被測(cè)試到,滿足上面例子基本路徑集的測(cè)試用例是: 路徑1:4-14 輸入數(shù)據(jù):iRecordNum0,或者取iRecordNum0的某一個(gè)值 預(yù)期結(jié)果:x0 路徑2:4-6-7-14 輸入數(shù)據(jù):iRecordNum1,iType0 預(yù)期結(jié)果:x2,4.1.2第四步:準(zhǔn)備
49、測(cè)試用例,路徑3:4-6-8-10-13-4-14 輸入數(shù)據(jù):iRecordNum1,iType1 預(yù)期結(jié)果:x10 路徑4:4-6-8-11-13-4-14 輸入數(shù)據(jù):iRecordNum1,iType2 預(yù)期結(jié)果:x20,4.1.2白盒法循環(huán)測(cè)試,循環(huán)測(cè)試是一種白盒測(cè)試技術(shù),注重于循環(huán)構(gòu)造的有效性。 有四種循環(huán):簡(jiǎn)單循環(huán),串接循環(huán),嵌套循環(huán)和不規(guī)則循環(huán)。,4.1.2白盒法循環(huán)測(cè)試,簡(jiǎn)單循環(huán): 下列測(cè)試集用于簡(jiǎn)單循環(huán),其中n是允許通過(guò)循環(huán)的最大次數(shù)。 整個(gè)跳過(guò)循環(huán); 只有一次通過(guò)循環(huán); 兩次通過(guò)循環(huán); m次通過(guò)循環(huán),其中mn; n-1,n,n+1次通過(guò)循環(huán)。,4.1.2白盒法循環(huán)測(cè)試,嵌套循
50、環(huán): 如果將簡(jiǎn)單循環(huán)的測(cè)試方法用于嵌套循環(huán),可能的測(cè)試數(shù)就會(huì)隨嵌套層數(shù)成幾何級(jí)增加,這會(huì)導(dǎo)致不實(shí)際的測(cè)試數(shù)目,下面是一種減少測(cè)試數(shù)的方法: 從最內(nèi)層循環(huán)開(kāi)始,將其它循環(huán)設(shè)置為最小值; 對(duì)最內(nèi)層循環(huán)使用簡(jiǎn)單循環(huán),而使外層循環(huán)的迭代參數(shù)(即循環(huán)計(jì)數(shù))最小,并為范圍外或排除的值增加其它測(cè)試; 由內(nèi)向外構(gòu)造下以個(gè)循環(huán)的測(cè)試,但其它的外層循環(huán)為最小值,并使其它的嵌套循環(huán)為“典型”值; 繼續(xù)直到測(cè)試所有的循環(huán)。,4.1.2白盒法循環(huán)測(cè)試,串接循環(huán): 如果串接循環(huán)的循環(huán)都彼此獨(dú)立,可是使用嵌套的策略測(cè)試。但是如果兩個(gè)循環(huán)串接起來(lái),而第一個(gè)循環(huán)是第二個(gè)循環(huán)的初始值,則這兩個(gè)循環(huán)并不是獨(dú)立的。如果循環(huán)不獨(dú)立,則
51、推薦使用的嵌套循環(huán)的方法進(jìn)行測(cè)試。 不規(guī)則循環(huán): 不能測(cè)試,盡量重新設(shè)計(jì)給結(jié)構(gòu)化的程序結(jié)構(gòu)后再進(jìn)行測(cè)試。,4.1.3使用用例場(chǎng)景設(shè)計(jì)測(cè)試用例,用例場(chǎng)景是通過(guò)描述流經(jīng)用例的路徑來(lái)確定的過(guò)程,這個(gè)流經(jīng)過(guò)程要從用例開(kāi)始到結(jié)束遍歷其中所有的基本流和備選流。,4.1.3使用用例場(chǎng)景設(shè)計(jì)測(cè)試用例,現(xiàn)在的軟件都是由事件觸發(fā)來(lái)控制流程的,事件觸發(fā)時(shí)的情景便形成了場(chǎng)景。 將軟件設(shè)計(jì)中的思想引入到軟件測(cè)試中 最早由Rational公司提出,4.1.3使用用例場(chǎng)景設(shè)計(jì)測(cè)試用例,黑線:基本流 彩色線:備選流,4.1.3可能的場(chǎng)景,場(chǎng)景一:基本流 場(chǎng)景二:基本流 備選流1 場(chǎng)景三:基本流 備選流1 備選流2 場(chǎng)景四:基
52、本流 備選流3 場(chǎng)景五:基本流 備選流3 備選流1 場(chǎng)景六:基本流 備選流3 備選流1 備選流2 場(chǎng)景七:基本流 備選流4 場(chǎng)景八:基本流 備選流3 備選流4,4.1.3 ATM取款場(chǎng)景基本流,ATM處于就緒狀態(tài) 1準(zhǔn)備提款:客戶將銀行卡插入ATM 2驗(yàn)證卡: ATM讀取卡信息 3輸入PIN: ATM要求的PIN 4驗(yàn)證帳戶和PIN:帳戶和密碼是否正確 5ATM選項(xiàng): ATM顯示本機(jī)上所有的選項(xiàng),4.1.3 ATM取款場(chǎng)景基本流,6輸入金額:要從ATM中提取的金額 7授權(quán): ATM將帳戶、密碼和金額提交銀行系統(tǒng)進(jìn)行驗(yàn)證 8出鈔:提供現(xiàn)金 9返回銀行卡:銀行卡被返回 10收據(jù):打印憑單 ATM就
53、緒狀態(tài),4.1.3 ATM取款場(chǎng)景備選流,備選流1:銀行卡無(wú)效 備選流2:ATM內(nèi)沒(méi)有現(xiàn)金 備選流3:ATM內(nèi)現(xiàn)金不足 備選流4:PIN有誤 備選流5:帳戶不存在,4.1.3 ATM取款場(chǎng)景備選流,備選流6:帳面金額不足 備選流7:達(dá)到每日最大提款額 備選流8:記錄錯(cuò)誤 備選流9:退出 備選流10:暫停,4.1.3 ATM取款場(chǎng)景,場(chǎng)景1:成功提款 基本流 場(chǎng)景2:沒(méi)有現(xiàn)金 基本流 備選流2 場(chǎng)景3:現(xiàn)金不足 基本流 備選流3 場(chǎng)景4:密碼有誤 基本流 備選流4 場(chǎng)景5:密碼有誤 基本流 備選流4 場(chǎng)景6:帳戶不存在 基本流 備選流5 場(chǎng)景7:余額不足 基本流 備選流6 場(chǎng)景8:達(dá)到每日最大題
54、款數(shù) 基本流 備選流7,4.1.3測(cè)試用例,V:valid 有效; I:invalid無(wú)效; n/a: 不適用,4.1.3測(cè)試用例,4.1.4黑盒測(cè)試,等價(jià)分類(lèi)法 邊緣值分析法 因果圖法 錯(cuò)誤推測(cè)法,4.1.4黑盒測(cè)試,4.1.4等價(jià)類(lèi)劃分,被測(cè)試系統(tǒng)的輸入和輸出可以被分組或劃分為相關(guān)的組或類(lèi) 步驟:1.劃分等價(jià)類(lèi) 2.選擇測(cè)試用例,4.1.4等價(jià)類(lèi)劃分實(shí)例,a=X1=d e=x2=g,4.1.4等價(jià)類(lèi)劃分-弱一般等價(jià)類(lèi),弱一般等價(jià)類(lèi)測(cè)試通過(guò)使用一個(gè)測(cè)試用例中的每個(gè)等價(jià)類(lèi)的一個(gè)變量實(shí)現(xiàn) 基于單缺陷假設(shè) 單缺陷假設(shè):失效極少有兩個(gè)(或多個(gè))缺陷的同時(shí)發(fā)生引起的。,4.1.4等價(jià)類(lèi)劃分-弱一般等價(jià)
55、類(lèi),4.1.4等價(jià)類(lèi)劃分-強(qiáng)一般等價(jià)類(lèi),強(qiáng)一般等價(jià)類(lèi)測(cè)試基于多缺陷假設(shè),因此需要等價(jià)笛卡兒積的每個(gè)元素對(duì)應(yīng)的測(cè)試用例 笛卡兒積可以保證兩種意義上的完備性: 1、覆蓋所有的等價(jià)類(lèi) 2、可能的輸入組合,4.1.4等價(jià)類(lèi)劃分-強(qiáng)一般等價(jià)類(lèi),4.1.4等價(jià)類(lèi)劃分-弱健壯等價(jià)類(lèi),健壯:考慮了無(wú)效值 弱:基于單缺陷假設(shè),4.1.4等價(jià)類(lèi)劃分-弱健壯等價(jià)類(lèi),4.1.4等價(jià)類(lèi)劃分-強(qiáng)健壯等價(jià)類(lèi),健壯:考慮了無(wú)效值 強(qiáng):基于多缺陷假設(shè),4.1.4等價(jià)類(lèi)劃分-強(qiáng)健壯等價(jià)類(lèi),4.1.4測(cè)試用例實(shí)例,程序TRANLE輸入三個(gè)整數(shù),它們表示一個(gè)三角形的三條邊長(zhǎng),該程序產(chǎn)生一個(gè)結(jié)果指出三角形是等腰三角形、等邊三角形還是不
56、等邊三角形,請(qǐng)利用15分鐘進(jìn)行測(cè)試用例設(shè)計(jì),4.1.4測(cè)試用例實(shí)例(續(xù)),合理的不等邊三角形(輸入數(shù)據(jù)為1、2、3或2、5、10等不能算這一類(lèi)) 合理的等邊三角形(輸入數(shù)據(jù)為0、0、0不算) 合理的等腰三角形(輸入數(shù)據(jù)為2、2、4等不能算這一類(lèi)) 等腰三角形的三種排列次序(3,3,4;3,4,3;4,3,3),4.1.4測(cè)試用例實(shí)例(續(xù)),三個(gè)正數(shù),其中兩個(gè)之和等于第三個(gè) 上一種情況的三種排列次序 三個(gè)正數(shù),其中兩個(gè)之和小于第三個(gè) 上一種情況的三種排列次序 輸入數(shù)據(jù)含有零值 輸入數(shù)據(jù)含有負(fù)數(shù),4.1.4測(cè)試用例實(shí)例(續(xù)),輸入數(shù)據(jù)含有非整數(shù)值 三個(gè)數(shù)均為零 輸入數(shù)據(jù)不是三個(gè)數(shù) 輸入數(shù)據(jù)中有字符
57、,4.1.4功能測(cè)試等價(jià)類(lèi)劃分,劃分等價(jià)類(lèi)在很大程度上是試探性的,下面幾點(diǎn)可供參考: 1)如果某個(gè)輸入條件說(shuō)明了輸入值的范圍,如“數(shù)據(jù)值”是從1到999,則可劃分一個(gè)合理等價(jià)類(lèi):大于等于1而小于等于999的數(shù)和兩個(gè)不合理等價(jià)類(lèi):小于1的數(shù),以及大于999的數(shù)。,4.1.4功能測(cè)試等價(jià)類(lèi)劃分,2)如果某個(gè)輸入條件說(shuō)明了輸入數(shù)據(jù)的個(gè)數(shù),如每個(gè)學(xué)生可以選修1至3門(mén)課程,則可劃分一個(gè)合理等價(jià)類(lèi):選修13門(mén)課程和兩個(gè)不合理等價(jià)類(lèi):沒(méi)選修課程,以及超過(guò)3門(mén)課程。,4.1.4功能測(cè)試等價(jià)類(lèi)劃分,3)如果一個(gè)輸入條件說(shuō)明了一個(gè)“必須成立”的情況,如標(biāo)識(shí)符的第一個(gè)字符必須是字母,則可劃分一個(gè)合理等價(jià)類(lèi):第一字符
58、是字母和一個(gè)不合理等價(jià)類(lèi)第一字符不是字母。,4.1.4功能測(cè)試等價(jià)類(lèi)劃分,4)如果某個(gè)輸入條件說(shuō)明了輸入數(shù)據(jù)的一組可能的值,而且認(rèn)為程序是用不同的方式處理每一種值的,如職稱的輸入值可以是助教、講師、副教授和教授4種,則可為每一種值劃分一個(gè)合理等價(jià)類(lèi):助教、講師、副教授和教授,并劃分一個(gè)不合理等價(jià)類(lèi):上述4種職稱之外的任意值。,4.1.4功能測(cè)試等價(jià)類(lèi)劃分,5)如果認(rèn)為程序?qū)床煌姆绞絹?lái)處理某個(gè)等價(jià)類(lèi)中的各種測(cè)試用例,則應(yīng)將這個(gè)等價(jià)類(lèi)再分成幾個(gè)更小的等價(jià)類(lèi)。如上面第4)就是將一個(gè)合理等價(jià)類(lèi)又分成助教、講師等4個(gè)等價(jià)類(lèi)。,4.1.4等價(jià)類(lèi)實(shí)例三角形問(wèn)題,R1=:等邊三角形 R2=:等腰三角形 R
59、3=:不等邊三角形 R4=:不構(gòu)成三角形,4.1.4等價(jià)類(lèi)劃分實(shí)例,4.1.4功能測(cè)試等價(jià)類(lèi)劃分,1)為每個(gè)等價(jià)類(lèi)編號(hào)。 2)設(shè)計(jì)一個(gè)新的測(cè)試用例,使它能包括盡可能多的尚未被包括的合理等價(jià)類(lèi);重復(fù)做這一步,直至這些測(cè)試用例已包含所有的合理等價(jià)類(lèi)。 3)設(shè)計(jì)一個(gè)新的測(cè)試用例,使它包括一個(gè)(而且僅僅一個(gè))尚未被包括的不合理等價(jià)類(lèi),重復(fù)做這一步,直至測(cè)試用例己包括所有的不合理等價(jià)類(lèi)。,4.1.4功能測(cè)試等價(jià)類(lèi)劃分,考察一個(gè)把數(shù)字串轉(zhuǎn)變成整數(shù)的函數(shù)。用二進(jìn)制補(bǔ)碼表示整數(shù),機(jī)器字長(zhǎng)16位,即整數(shù)范圍最小為- 32768,最大為32767。函數(shù)及參數(shù)的說(shuō)明如下: function StrToInt (dstr : shortstr) : integer; type shortstr = array 1.6 of char; 要求被
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 開(kāi)卷作業(yè)風(fēng)險(xiǎn)和隱患辨識(shí)、評(píng)估分級(jí)與控制措施一覽表
- 廣西桂林、百色、梧州、崇左、北海五市2024-2025學(xué)年高三語(yǔ)文試題5月模擬試題含解析
- 廣東省東莞市南開(kāi)實(shí)驗(yàn)學(xué)校2024-2025學(xué)年高三下學(xué)期“一診”模擬考試語(yǔ)文試題含解析
- 甘肅省定西市岷縣二中2024-2025學(xué)年高三下學(xué)期期末質(zhì)量抽測(cè)語(yǔ)文試題含解析
- 福建省福州市2025屆高三4月高考練習(xí)(二模)語(yǔ)文試題含解析
- 消防安全與應(yīng)急器材常識(shí)介紹
- 山東省齊河縣安頭鄉(xiāng)中學(xué)2024-2025學(xué)年七年級(jí)上學(xué)期生物第一次月考試題(無(wú)答案)
- 北京豐臺(tái)十二中2024-2025學(xué)年高三下學(xué)期“揚(yáng)帆起航”語(yǔ)文試題含解析
- 西部嶺區(qū)及城郊土地項(xiàng)目可行性研究報(bào)告
- 考點(diǎn)02記敘文-2022年中考英語(yǔ)學(xué)及題型分類(lèi)突破練(原卷版)
- 借款詐騙報(bào)案材料
- GB/T 18998.2-2022工業(yè)用氯化聚氯乙烯(PVC-C)管道系統(tǒng)第2部分:管材
- 信息技術(shù)課評(píng)價(jià)方案范文
- 氰化物中毒機(jī)理及救治方法課件
- 繼續(xù)教育公需科目必學(xué)科目答案
- 2022年陜西煤業(yè)股份有限公司招聘筆試試題及答案解析
- 加速康復(fù)外科ERAS培訓(xùn)課件
- 2013年重慶市政清單計(jì)算規(guī)則
- 部編版語(yǔ)文五年級(jí)上冊(cè)八單元集體備課
- 未帶有效居民身份證考生承諾書(shū)
- 實(shí)驗(yàn)室安全操作規(guī)程
評(píng)論
0/150
提交評(píng)論