《軟件測試1軟測件試的基礎(chǔ)知識》由會員分享,可在線閱讀,更多相關(guān)《軟件測試1軟測件試的基礎(chǔ)知識(43頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級
2、,第四級,第五級,*,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標(biāo)題樣
3、式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,軟件測試,第1講 軟件測試基礎(chǔ),1,機(jī)遇和挑戰(zhàn)并存,2,Test Engineer,QA/Supervisor,Project/Quality Manager,Senior Engineer,軟件行業(yè)是朝陽行業(yè),軟件測試是軟件行業(yè)的朝陽行業(yè)。,軟件行業(yè)由賣方市場轉(zhuǎn)入買方市場,激烈的競爭要求軟件的產(chǎn)品質(zhì)量越來越高。,歐美國家的軟件項(xiàng)目,軟件測試的工作量占項(xiàng)目總工作量40%,軟件測試的經(jīng)費(fèi)占項(xiàng)目總經(jīng)費(fèi)30%。,測試人員和開發(fā)人員的比例 國
4、外:1:1-2:1,國內(nèi)1:51:3,當(dāng)前國內(nèi)高素質(zhì)軟件測試人員的市場需求大約50萬人左右。,主要內(nèi)容,第1部分 軟件測試概述(What),第2部分 軟件測試基礎(chǔ)(概念、原理、方法、步驟、工具)(How),第3部分 軟件測試實(shí)踐(Application),3,網(wǎng)絡(luò)資源,http:/ (技術(shù)文章),http:/ Patton著,張小松等譯,機(jī)械工業(yè)出版社,2006,5,第1講 軟件測試基礎(chǔ),為什么要進(jìn)行軟件測試?,什么是軟件測試?,軟件測試的分類,測試階段,軟件測試的工作范疇,SQA與軟件測試的關(guān)系,6,7,軟件缺陷與軟件故障案例,迪斯尼并不總是帶來笑聲,英特爾奔騰浮點(diǎn)除法缺陷,火星探測飛船墜毀
5、,愛國者導(dǎo)彈防御系統(tǒng),2008北京奧運(yùn)會售票系統(tǒng),8,迪斯尼并不總是帶來笑聲,1994年圣誕節(jié)前夕,迪斯尼公司發(fā)布了第一個(gè)面向兒童的多媒體光盤游戲“獅子王童話”,圣誕節(jié)后的第一天,迪斯尼客戶支持部電話開始響個(gè)不停,不斷有人咨詢、抱怨為什么游戲總是安裝不成功,或沒法正常使用,這個(gè)游戲軟件只能在少數(shù)系統(tǒng)中正常運(yùn)行,9,兼容性問題,英特爾奔騰浮點(diǎn)除法缺陷,如果答案不為0,說明計(jì)算機(jī)使用的是帶有浮點(diǎn)除法軟件缺陷的老式英特爾奔騰處理器。,1994年10月30日,弗吉尼亞州的Thomas R.Nicely博士在用奔騰PC進(jìn)行計(jì)算問題時(shí)得出了一個(gè)錯(cuò)誤的結(jié)論,因此發(fā)現(xiàn)了這個(gè)問題,后來在互聯(lián)網(wǎng)上引起一場風(fēng)暴。,
6、他們的軟件測試工程師在芯片發(fā)布之前進(jìn)行內(nèi)部測試時(shí)已經(jīng)發(fā)現(xiàn)了這個(gè)問題,英特爾的管理層認(rèn)為這沒有嚴(yán)重到保證要修正,甚至公開的程度。,當(dāng)軟件缺陷被發(fā)現(xiàn)時(shí),英特爾試圖低調(diào)解決問題,但為時(shí)已晚,最終拿出4億多美元來支付所有維護(hù)費(fèi)用,10,(41958353145727)3145727-4195835=,?,火星探測飛船墜毀,機(jī)械震動在大多數(shù)情況下也會觸發(fā)著地開關(guān),設(shè)置錯(cuò)誤的數(shù)據(jù)位。設(shè)想飛船開始著陸時(shí),計(jì)算機(jī)極有可能關(guān)閉推進(jìn)器,而火星登陸飛船下墜1800米之后沒有反推進(jìn)器的幫助,沖向地面,必然會撞成碎片,兩個(gè)小組本身的工作都沒什么問題,就是沒有合在一起測試,其接口沒有被測,而問題就在這里,11,系統(tǒng)測試,
7、銜接問題,愛國者導(dǎo)彈防御系統(tǒng),當(dāng)愛國者導(dǎo)彈防御系統(tǒng)的時(shí)鐘累計(jì)運(yùn)行超過14小時(shí)后,系統(tǒng)的跟蹤系統(tǒng)就不準(zhǔn)確。從而導(dǎo)致攔截伊拉克飛毛腿導(dǎo)彈的幾次失敗,其中一枚在沙特阿拉伯的多哈爆炸的飛毛腿導(dǎo)彈造成28名美國士兵死亡,12,系統(tǒng)時(shí)鐘誤差積累,2008北京奧運(yùn)會售票系統(tǒng),2007年10月30日上午11時(shí),2008北京奧運(yùn)會售票系統(tǒng)軟件癱瘓。北京奧運(yùn)會的指定獨(dú)家票務(wù)供應(yīng)商-北京歌華特瑪捷票務(wù)有限公司成立于2006年9月,由美國特瑪捷公司、中體產(chǎn)業(yè)股份有限公司及北京歌華文化發(fā)展集團(tuán)三家出資構(gòu)建而成。售票系統(tǒng)癱瘓事件發(fā)生后,公眾普遍質(zhì)疑歌華特瑪捷公司是否具備承擔(dān)2008北京奧運(yùn)會的票務(wù)銷售能力。,用戶常常在軟
8、件開發(fā)初期就發(fā)現(xiàn)軟件可能跟他們的需求有不一致的地方。在開發(fā)軟件之前,需要進(jìn)行必要的需求分析。開發(fā)完成之后,也要進(jìn)行必要的測試工作。雖然這些軟件故障的后果程度不一,但可以肯定的是,通過嚴(yán)格的軟件測試可以極大地降低故障及因此而引發(fā)的種種惡果。,13,14,為什么要進(jìn)行軟件測試?,軟件總存在缺陷,。只有通過測試,才可以發(fā)現(xiàn)軟件缺陷。也只有發(fā)現(xiàn)了缺陷,才可以將軟件缺陷從軟件產(chǎn)品或軟件系統(tǒng)中清理出去。,軟件失敗時(shí),也許僅僅給我們帶來了不便,也可能是災(zāi)難性的。我們需要,軟件測試,,來保障軟件質(zhì)量。,15,什么是軟件測試?,軟件測試學(xué)科的形成,正反兩方面的爭辯,軟件測試的定義,軟件測試的其它觀點(diǎn),16,軟件
9、測試學(xué)科的發(fā)展,從測試的思想導(dǎo)向來劃分為4個(gè)階段,:,19571978年,以功能驗(yàn)證為導(dǎo)向,測試是證明軟件是正確的(正向思維)。,19781983年,以破壞性為為導(dǎo)向,測試是為了找到軟件中的錯(cuò)誤(逆向思維)。,19831987年,以質(zhì)量評估為導(dǎo)向,測試是提供產(chǎn)品的評估和質(zhì)量度量。,1988年起,以缺陷預(yù)防為導(dǎo)向,測試是為了展示軟件符合設(shè)計(jì)要求,發(fā)現(xiàn)缺陷、預(yù)防缺陷。,17,更好的階段劃分,分為3個(gè)階段初期階段、發(fā)展階段和成熟階段,初級階段,(19571971)測試通常被認(rèn)為是對產(chǎn)品進(jìn)行事后檢驗(yàn),缺乏有效的測試方法,發(fā)展階段,(19721982),1972年第一次關(guān)于軟件測試的正式會議,促進(jìn)了軟件
10、測試的發(fā)展,成熟階段,(1983到現(xiàn)在),國際標(biāo)準(zhǔn)Std 829-1983,形成一門獨(dú)立的學(xué)科和專業(yè),成為軟件工程學(xué)科中的一個(gè)重要組成部分,18,軟件測試的正面性,Bill Hetzel博士(正向思維的代表):,軟件測試就是為程序能夠按預(yù)期設(shè)想那樣運(yùn)行而建立足夠的信心,。,“,軟件測試是一系列活動以評價(jià)一個(gè)程序或系統(tǒng)的特性或能力并確定是否達(dá)到預(yù)期的結(jié)果,”,測試是為了驗(yàn)證軟件是否符合用戶需求,即驗(yàn)證軟件產(chǎn)品是否能正常工作,19,軟件測試的反面性,Glenford J.Myers,(反向思維的代表):,測試是為了證明程序有錯(cuò),而不是證明程序無錯(cuò)誤,一個(gè)好的測試用例是在于它能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤,
11、一個(gè)成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤的測試,20,軟件測試定義的兩面性,21,評價(jià)一個(gè)程序或系統(tǒng)的特性或能力并確定是否達(dá)到預(yù)期的結(jié)果,測試是為發(fā)現(xiàn)錯(cuò)誤而針對某個(gè)程序或系統(tǒng)的執(zhí)行過程,軟件測試,正向思維,驗(yàn)證軟件正常工作,逆向思維,假定軟件有錯(cuò)誤,在設(shè)計(jì)規(guī)定的環(huán)境下運(yùn)行軟件的所有功能,直至全部通過,。,尋找容易犯錯(cuò)誤的地方和系統(tǒng)的薄弱環(huán)節(jié),試圖破壞系統(tǒng),直至找不出問題。,軟件測試是什么?,測試=“測”+“試”,什么是“測”?,Measure、測量,知道結(jié)果的驗(yàn)證行為,測,什么是“試”?,Try、試驗(yàn),不知道結(jié)果的嘗試行為,試,軟件測試,測:驗(yàn)證軟件功能、性能,試:驗(yàn)證軟件是否有非功能性的異常,
12、在規(guī)定的條件下對程序進(jìn)行操作,以發(fā)現(xiàn)程序錯(cuò)誤,對其是否能滿足設(shè)計(jì)要求進(jìn)行評估的過程,Myers,軟件測試的定義,軟件測試是為了發(fā)現(xiàn)軟件缺陷而執(zhí)行程序或系統(tǒng)的過程。,23,Q:,我按照用戶的需求測試了實(shí)際的系統(tǒng),卻一個(gè)缺陷也沒有發(fā)現(xiàn),我所做的測試工作有意義嗎?,1979年,Glenford J.Myers,在軟件測試藝術(shù)(The art of software testing)書中給出的定義:,傳統(tǒng)意義上的測試定義,是狹義的。,A:,當(dāng)然有意義,因?yàn)槲抑辽僮C明了該系統(tǒng)基本符 合用戶的需求。,IEEE軟件測試的定義,1983年,IEEE 的定義,:,使用人工或自動手段運(yùn)行或測定某個(gè)系統(tǒng)的過程,其目
13、的在于,檢驗(yàn)它是否滿足規(guī)定的需求,或是弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。,24,明確提出軟件測試以檢驗(yàn)是否滿足需求為目標(biāo)。,軟件測試的定義,軟件測試,也可以定義為是“驗(yàn)證(Verification)”和“有效性確認(rèn)(Validation)”活動構(gòu)成的整體。,驗(yàn)證,:是檢驗(yàn)軟件是否已正確地實(shí)現(xiàn)了產(chǎn)品規(guī)格書所定義的系統(tǒng)功能和特性,有效性確認(rèn),:是確認(rèn)所開發(fā)的軟件是否滿足用戶真正需求的活動,25,驗(yàn)證:“我們是否正確地完成了產(chǎn)品?”,確認(rèn):“我們是否完成了正確的產(chǎn)品?”,-,Boehm,軟件測試的其它觀點(diǎn),軟件測試被認(rèn)為是對軟件系統(tǒng)中潛在的各種風(fēng)險(xiǎn)進(jìn)行評估的活動。,基于風(fēng)險(xiǎn),的軟件測試可以被看作是一
14、個(gè)動態(tài)的監(jiān)控過程,對軟件開發(fā)全過程進(jìn)行檢測,隨時(shí)發(fā)現(xiàn)問題、報(bào)告問題,測試的,經(jīng)濟(jì)觀點(diǎn),就是以最小的代價(jià)獲得最高的軟件產(chǎn)品質(zhì)量。經(jīng)濟(jì)觀點(diǎn)也要求軟件測試盡早開展工作,發(fā)現(xiàn)缺陷越早,返工的工作量就越小,所造成的損失就越小。,26,問題討論,玩電腦游戲是不是軟件測試?,玩手機(jī)是不是軟件測試?,用戶使用軟件是不是軟件測試?,27,軟件測試的分類,方法,目標(biāo)/特性,單元測試,系統(tǒng)測試,驗(yàn)收測試,性能測試,強(qiáng)壯性測試,功能測試,白盒測試,黑盒測試,測試階段或?qū)哟?適用性測試,可靠性測試,集成測試,安全性測試,軟件測試的分類,按測試的對象或范圍分類,,如單元測試、文檔測試、系統(tǒng)測試等,按測試目的分類,,如功能
15、測試、回歸測試、性能測試、可靠性測試、安全性測試和兼容性測試等,根據(jù)測試過程中被測軟件是否被執(zhí)行,,分為靜態(tài)測試和動態(tài)測試,根據(jù)是否針對系統(tǒng)的內(nèi)部結(jié)構(gòu)和具體實(shí)現(xiàn)算法來完成測試,,可分為白盒測試和黑盒測試,按測試方法分類,數(shù)據(jù)庫測試、壓力測試、恢復(fù)測試、安全測試、兼容性測試等,注意:,不要在術(shù)語上糾纏,因?yàn)椴煌臏y試小組可能使用不同的術(shù)語。理解其含義及其在小組中的應(yīng)用是軟件測試人員的職責(zé)。,Ron Patton 軟件測試,軟件測試的各個(gè)階段,開發(fā)生命周期,.,維護(hù),需求定義,應(yīng)用定義,應(yīng)用開發(fā),修訂,建立,建立,測試生命周期,.,執(zhí)行.,執(zhí)行,執(zhí)行.,測試計(jì)劃,缺陷跟蹤,測試開發(fā),測試設(shè)計(jì),評估
16、,好處:可以找到軟件的Bug,提高軟件可靠性!,不好:這些Bug可能讓開發(fā)人員瘋掉!可能項(xiàng)目延期!,軟件測試是“不得不做”!,軟件測試階段,階 段,輸 入,輸 出,需求分析,需求定義,市場分析文檔,相關(guān)技術(shù)文檔,市場需求分析會議記要,功能設(shè)計(jì),技術(shù)設(shè)計(jì),設(shè)計(jì)審查,市場需求文檔,技術(shù)設(shè)計(jì)文檔,測試計(jì)劃,測試用例,功能驗(yàn)證,代碼完成文件包,功能詳細(xì)設(shè)計(jì)說明書,最終技術(shù)文檔,完整測試用例,完備的測試計(jì)劃,缺陷報(bào)告,功能驗(yàn)證測試報(bào)告,系統(tǒng)測試,代碼修改后的文件包,完整測試用例,完備的測試計(jì)劃,缺陷報(bào)告,缺陷狀態(tài)報(bào)告,項(xiàng)目階段報(bào)告,確認(rèn)測試,代碼凍結(jié)文件包,確認(rèn)測試用例,缺陷狀態(tài)報(bào)告,缺陷報(bào)告審查,版本審查,版本發(fā)布,代碼發(fā)布文件包,測試計(jì)劃檢查清單,當(dāng)前版本已知問題的清單,版本發(fā)布報(bào)告,測試階段,(SDLC),需求和設(shè)計(jì)審查,測試人員參與產(chǎn)品需求分析和系統(tǒng)設(shè)計(jì),認(rèn)真閱讀有關(guān)文檔,真正理解客戶的需求和技術(shù)上的設(shè)計(jì),檢查需求說明書對產(chǎn)品描述的準(zhǔn)確性、一致性等,檢查系統(tǒng)設(shè)計(jì)的合理性和可測試性等,單元測試,單元測試,的,對象是程序系統(tǒng)中的最小單元-模塊或組件上,在編碼階段進(jìn)行,針對每個(gè)模塊進(jìn)行測試,主