- 軟件測(cè)試分析與實(shí)踐
- 高熾揚(yáng)主編
- 9字
- 2024-03-22 12:19:06
第1章 軟件測(cè)試概述
1.1 軟件測(cè)試的起源及發(fā)展
軟件測(cè)試作為軟件研發(fā)過程中旨在發(fā)現(xiàn)軟件缺陷的一種活動(dòng),伴隨著軟件研發(fā)的出現(xiàn)而出現(xiàn),只不過在早期的軟件研發(fā)活動(dòng)中,軟件產(chǎn)品的總體規(guī)模都比較小,軟件結(jié)構(gòu)也都比較簡(jiǎn)單,軟件研發(fā)過程相對(duì)比較隨意,沒有嚴(yán)格的研發(fā)過程管理手段和要求,所以軟件測(cè)試的含義就比較狹窄,基本等同于軟件調(diào)試,大部分情況下也是由軟件研發(fā)人員自己完成的,目的是發(fā)現(xiàn)并糾正軟件中存在的各種故障。
在早期的軟件研發(fā)過程中,沒有對(duì)軟件測(cè)試的專門投入,也沒有獨(dú)立的軟件測(cè)試人員,軟件測(cè)試通常介入得也比較晚,常常是在軟件編碼完成之后進(jìn)行簡(jiǎn)單的驗(yàn)證而已。直到1957年,軟件測(cè)試才逐漸與軟件調(diào)試區(qū)別開來,作為一種獨(dú)立的活動(dòng)以發(fā)現(xiàn)軟件缺陷。但是,軟件測(cè)試工作由于未受到足夠的重視,通常被視為軟件生命周期中的最后一項(xiàng)活動(dòng),加之當(dāng)時(shí)軟件測(cè)試技術(shù)不夠先進(jìn),缺乏有效的測(cè)試方法,主要依靠錯(cuò)誤推測(cè)法尋找軟件中的缺陷,因此大量軟件交付后,仍存在很多問題,軟件產(chǎn)品的質(zhì)量無法保證。
到了 20 世紀(jì) 70 年代,這個(gè)階段開發(fā)的軟件仍然不復(fù)雜,但人們已經(jīng)開始思考軟件開發(fā)流程的問題了,盡管當(dāng)時(shí)對(duì)軟件測(cè)試的重視程度依然不夠,對(duì)其真正含義也缺乏共識(shí),但軟件測(cè)試這一詞條已經(jīng)頻繁出現(xiàn),一些軟件測(cè)試的探索者建議在軟件生命周期的開始階段就根據(jù)軟件需求制定測(cè)試計(jì)劃,這時(shí)也涌現(xiàn)出一批軟件測(cè)試的宗師,如Bill Hetzel博士就是其中的領(lǐng)導(dǎo)者。1972年,Bill Hetzel博士在美國(guó)的北卡羅來納大學(xué)組織了歷史上第一次正式的關(guān)于軟件測(cè)試的會(huì)議。1973年,Bill Hetzel博士首先給出了軟件測(cè)試的定義:建立一種信心,認(rèn)為程序能夠按預(yù)期的設(shè)想運(yùn)行(Establish confidence that a program does what it is supposed to do)。1983年,他又將軟件測(cè)試的定義修訂為:評(píng)價(jià)一個(gè)程序和系統(tǒng)的特性或能力,并確定它是否能達(dá)到預(yù)期的結(jié)果,軟件測(cè)試就是以此為目的的任何行為(Any activities aimed at evaluating an attribute or capability of a program or system)。在他的定義中,“設(shè)想”和“預(yù)期的結(jié)果”其實(shí)就是我們現(xiàn)在所說的用戶需求或功能設(shè)計(jì)。另外,他還把軟件的質(zhì)量定義為“符合要求”。他的核心觀點(diǎn)就是軟件測(cè)試是試圖驗(yàn)證軟件是能夠正常工作的。
后來,Glenford J.Myers針對(duì)軟件測(cè)試的定義提出了新的觀點(diǎn),他認(rèn)為軟件測(cè)試不應(yīng)該著眼于驗(yàn)證軟件是能夠正常工作的,相反,應(yīng)該首先認(rèn)定軟件是有錯(cuò)誤的,然后用逆向思維發(fā)現(xiàn)盡可能多的錯(cuò)誤。他還從人的心理學(xué)的角度進(jìn)行了論證,如果將“驗(yàn)證軟件是能夠正常工作的”作為測(cè)試目的,那么會(huì)非常不利于測(cè)試人員發(fā)現(xiàn)軟件的錯(cuò)誤。于是他于1979年提出了軟件測(cè)試的定義:測(cè)試是為發(fā)現(xiàn)錯(cuò)誤而執(zhí)行的一個(gè)程序或系統(tǒng)的過程(The process of executing a program or system with the intent of finding errors)。這個(gè)定義得到了業(yè)界的廣泛認(rèn)可,經(jīng)常被引用。Myers提出的“軟件測(cè)試的目的是證偽”這一概念推翻了過去“為表明軟件正確而進(jìn)行測(cè)試”的錯(cuò)誤認(rèn)識(shí),為軟件測(cè)試的發(fā)展指明了方向,軟件測(cè)試的理論、方法在之后得到了長(zhǎng)足的發(fā)展。
到了20世紀(jì)80年代初期,軟件和IT行業(yè)進(jìn)入了發(fā)展時(shí)期,軟件產(chǎn)品的規(guī)模不斷增大,軟件結(jié)構(gòu)日趨復(fù)雜,軟件產(chǎn)品的質(zhì)量越來越重要。相應(yīng)地,有關(guān)軟件測(cè)試的基礎(chǔ)理論和實(shí)用技術(shù)開始逐步形成,人們也開始為軟件研發(fā)過程設(shè)計(jì)各種流程和管理方法,軟件研發(fā)過程也逐漸由混亂無序向規(guī)范化方向發(fā)展,軟件工程思想得以提出。軟件測(cè)試作為軟件工程全生命周期的獨(dú)立活動(dòng),地位和作用逐漸得到提升。軟件測(cè)試的定義也開始有了行業(yè)標(biāo)準(zhǔn)(IEEE/ANSI),1983年,IEEE提出的《IEEE軟件工程標(biāo)準(zhǔn)術(shù)語(yǔ)》中給軟件測(cè)試下了定義:使用人工或自動(dòng)的手段來運(yùn)行或測(cè)定某個(gè)軟件系統(tǒng)的過程,目的在于檢驗(yàn)它是否滿足規(guī)定的需求或弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。這個(gè)定義明確指出軟件測(cè)試的目的是檢驗(yàn)軟件系統(tǒng)是否滿足規(guī)定的需求。它再也不是一次性的、只是開發(fā)后期的活動(dòng),而是與整個(gè)開發(fā)流程融合成一體。軟件測(cè)試已成為一個(gè)專業(yè),需要運(yùn)用專門的方法和手段,需要專門的人才和專家來承擔(dān)。
之后,有關(guān)軟件測(cè)試的理論、方法和模型得到快速發(fā)展,專門針對(duì)軟件測(cè)試的相關(guān)國(guó)際標(biāo)準(zhǔn)開始逐步實(shí)施,包括ISO/IEC 9126:1991《軟件產(chǎn)品評(píng)估 質(zhì)量特性及其使用指南綱要》、ISO/IEC 12119:1994《信息技術(shù) 軟件包 質(zhì)量要求和測(cè)試》、ISO/IEC 14598:1999《軟件工程 產(chǎn)品評(píng)價(jià)》等,都極大地推動(dòng)了軟件測(cè)試的發(fā)展。
在我國(guó),軟件測(cè)試相比于發(fā)達(dá)國(guó)家而言,受重視程度一直較低,直到 2000年“千年蟲問題”的出現(xiàn),我國(guó)開始逐漸重視軟件測(cè)試工作。同時(shí),隨著我國(guó)信息化建設(shè)的不斷發(fā)展,軟件產(chǎn)業(yè)作為信息產(chǎn)業(yè)的核心,也被國(guó)家列入重點(diǎn)發(fā)展計(jì)劃。為此,國(guó)務(wù)院先后頒布了《國(guó)務(wù)院關(guān)于印發(fā)鼓勵(lì)軟件產(chǎn)業(yè)和集成電路產(chǎn)業(yè)發(fā)展若干政策的通知》(國(guó)發(fā)〔2000〕18號(hào))(簡(jiǎn)稱18號(hào)文件)、《振興軟件產(chǎn)業(yè)行動(dòng)綱要(2002年至2005年)》(簡(jiǎn)稱47號(hào)文件)等文件,推動(dòng)了軟件產(chǎn)業(yè)政策環(huán)境的不斷改善,軟件產(chǎn)業(yè)進(jìn)入快速發(fā)展期。
然而,由于軟件質(zhì)量跟不上軟件產(chǎn)業(yè)發(fā)展的步伐,各種軟件應(yīng)用問題日益突出,軟件測(cè)試作為提升軟件質(zhì)量的重要手段,逐漸得到相關(guān)管理部門的重視和推廣。
為加強(qiáng)行業(yè)軟件質(zhì)量的管理,我國(guó)部分行業(yè)信息化管理部門陸續(xù)出臺(tái)了一些行業(yè)性的軟件檢測(cè)管理規(guī)范。例如,衛(wèi)生部早在2002年就成立了衛(wèi)生部信息化工作領(lǐng)導(dǎo)小組,編制發(fā)布了《醫(yī)院信息系統(tǒng)基本功能規(guī)范》,以此為基礎(chǔ),衛(wèi)生部組織了多次商品化醫(yī)院信息系統(tǒng)選型測(cè)試工作,推薦優(yōu)秀的軟件產(chǎn)品,供各級(jí)醫(yī)院在進(jìn)行信息化建設(shè)時(shí)參考。2002 年,教育部為促進(jìn)教育系統(tǒng)應(yīng)用管理軟件的規(guī)范化管理,實(shí)現(xiàn)教育系統(tǒng)軟件數(shù)據(jù)庫(kù)結(jié)構(gòu)、數(shù)據(jù)元格式的一致性,保證各級(jí)部門數(shù)據(jù)縱向、橫向交換的順利進(jìn)行,負(fù)責(zé)組織編制并發(fā)布了《教育管理信息化標(biāo)準(zhǔn)》,并委托第三方專業(yè)軟件機(jī)構(gòu)按此標(biāo)準(zhǔn)對(duì)全國(guó)所有學(xué)校的教育信息管理軟件進(jìn)行標(biāo)準(zhǔn)符合性測(cè)試。2006 年,國(guó)家食品藥品監(jiān)督管理局組織編制了《互聯(lián)網(wǎng)藥品交易服務(wù)系統(tǒng)軟件測(cè)評(píng)大綱》系列標(biāo)準(zhǔn),規(guī)定只有通過認(rèn)定的第三方軟件機(jī)構(gòu)的軟件檢測(cè)并取得相應(yīng)的檢測(cè)報(bào)告后,企業(yè)才可以通過互聯(lián)網(wǎng)進(jìn)行藥品交易,旨在加強(qiáng)藥品監(jiān)督管理,規(guī)范互聯(lián)網(wǎng)藥品交易服務(wù)。2011 年,中國(guó)人民銀行發(fā)布《非金融機(jī)構(gòu)支付服務(wù)業(yè)務(wù)系統(tǒng)檢測(cè)認(rèn)證管理規(guī)定》,明確要求非金融機(jī)構(gòu)在申請(qǐng)支付許可證時(shí),必須進(jìn)行業(yè)務(wù)系統(tǒng)技術(shù)標(biāo)準(zhǔn)符合性和安全性檢測(cè)認(rèn)證等。
與此同時(shí),國(guó)際上對(duì)軟件研發(fā)企業(yè)的過程質(zhì)量管理也在逐步加強(qiáng),在ISO9000、能力成熟度模型集成(CMMI)等系列質(zhì)量管理體系認(rèn)證中逐步細(xì)化了對(duì)軟件研發(fā)過程和方法的要求,突出了軟件研發(fā)企業(yè)產(chǎn)品質(zhì)量測(cè)試要求,凸顯了軟件測(cè)試對(duì)保障軟件質(zhì)量的重要性。
2005年,在ISO/IEC 9126和ISO/IEC 14598的基礎(chǔ)上,演變出了SQuaRE系列國(guó)際標(biāo)準(zhǔn),包括ISO/IEC 2500n 質(zhì)量管理分部(ISO/IEC 25000《SQuaRE指南》、ISO/IEC 25001《規(guī)劃和管理》),ISO/IEC 2501n 質(zhì)量模型分部(ISO/IEC 25010《系統(tǒng)和軟件質(zhì)量模型》、ISO/IEC 25012《數(shù)據(jù)質(zhì)量模型》),ISO/IEC 2502n質(zhì)量測(cè)量分部(ISO/IEC 25020《測(cè)量參考模型和指南》、ISO/IEC 25021《質(zhì)量度量元素》、ISO/IEC 25022《使用質(zhì)量測(cè)量》、ISO/IEC 25023《系統(tǒng)和軟件產(chǎn)品質(zhì)量測(cè)量》、ISO/IEC 25024《數(shù)據(jù)質(zhì)量測(cè)量》),ISO/IEC 2503n 質(zhì)量要求分部(ISO/IEC 25030《質(zhì)量要求》),ISO/IEC 2504n質(zhì)量評(píng)價(jià)分部(ISO/IEC 25040《評(píng)價(jià)過程》、ISO/IEC 25041《開發(fā)方、需方和獨(dú)立評(píng)估方的評(píng)估指南》、ISO/IEC 25042《評(píng)估模塊》、ISO/IEC 25045《易恢復(fù)性評(píng)估模塊》)和ISO/IEC 25050~25099 擴(kuò)展的標(biāo)準(zhǔn)和技術(shù)報(bào)告,并在后續(xù)根據(jù)技術(shù)的發(fā)展進(jìn)行了持續(xù)更新。
2013年在BS 7925和IEEE 1008的基礎(chǔ)上,演變出ISO/IEC/IEEE 29119系列標(biāo)準(zhǔn),包括 ISO/IEC/IEEE 29119-1:2022《系統(tǒng)與軟件工程 軟件測(cè)試 第 1 部分:概念和定義》、ISO/IEC/IEEE 29119-2:2021《系統(tǒng)與軟件工程 軟件測(cè)試 第2部分:測(cè)試過程》、ISO/IEC/IEEE 29119-3:2021《系統(tǒng)與軟件工程 軟件測(cè)試 第3部分:測(cè)試文檔》、ISO/IEC/IEEE 29119-4:2021《系統(tǒng)與軟件工程 軟件測(cè)試 第4部分:測(cè)試技術(shù)》,2016年又補(bǔ)充了ISO/IEC/IEEE 29119-5:2016《系統(tǒng)與軟件工程 軟件測(cè)試 第5部分:關(guān)鍵字驅(qū)動(dòng)測(cè)試》,并在后續(xù)擴(kuò)展了ISO/IEC TR 29119-6:2021《系統(tǒng)與軟件工程 軟件測(cè)試 第6部分:在敏捷項(xiàng)目中使用 ISO/IEC/IEEE 29119(所有部分)的指南》、ISO/IEC DTR 29119-8《系統(tǒng)與軟件工程 軟件測(cè)試第8部分:基于模型的測(cè)試》(發(fā)展中)、ISO/IEC TR 29119-11:2020《系統(tǒng)與軟件工程 軟件測(cè)試 第 11 部分:基于人工智能的系統(tǒng)測(cè)試指南》、ISO/IEC DTR 29119-13《系統(tǒng)與軟件工程 軟件測(cè)試 第13部分:ISO/IEC/IEEE 29119 在生物識(shí)別系統(tǒng)測(cè)試中的使用指南》(發(fā)展中)。
我國(guó)也根據(jù)國(guó)際標(biāo)準(zhǔn)的發(fā)展逐步制定了對(duì)應(yīng)的國(guó)家標(biāo)準(zhǔn),包括基于 ISO 25000系列的標(biāo)準(zhǔn):
GB/T 25000.1—2021《系統(tǒng)與軟件工程 系統(tǒng)與軟件質(zhì)量要求和評(píng)價(jià)(SQuaRE) 第1部分:SQuaRE指南》;
GB/T 25000.2—2018《系統(tǒng)與軟件工程 系統(tǒng)與軟件質(zhì)量要求和評(píng)價(jià)(SQuaRE) 第2部分:計(jì)劃與管理》;
GB/T 25000.10—2016《系統(tǒng)與軟件工程 系統(tǒng)與軟件質(zhì)量要求和評(píng)價(jià)(SQuaRE) 第10部分:系統(tǒng)與軟件質(zhì)量模型》;
GB/T 25000.12—2017《系統(tǒng)與軟件工程 系統(tǒng)與軟件質(zhì)量要求和評(píng)價(jià)(SQuaRE) 第12部分:數(shù)據(jù)質(zhì)量模型》;
GB/T 25000.20—2021《系統(tǒng)與軟件工程 系統(tǒng)與軟件質(zhì)量要求和評(píng)價(jià)(SQuaRE) 第 20 部分:質(zhì)量測(cè)量框架》;
GB/T 25000.21—2019《系統(tǒng)與軟件工程 系統(tǒng)與軟件質(zhì)量要求和評(píng)價(jià)(SQuaRE) 第21部分:質(zhì)量測(cè)度元素》;
GB/T 25000.22—2019《系統(tǒng)與軟件工程 系統(tǒng)與軟件質(zhì)量要求和評(píng)價(jià)(SQuaRE) 第22部分:使用質(zhì)量測(cè)量》;
GB/T 25000.23—2019《系統(tǒng)與軟件工程 系統(tǒng)與軟件質(zhì)量要求和評(píng)價(jià)(SQuaRE) 第23部分:系統(tǒng)與軟件產(chǎn)品質(zhì)量測(cè)量》;
GB/T 25000.24—2017《系統(tǒng)與軟件工程 系統(tǒng)與軟件質(zhì)量要求和評(píng)價(jià)(SQuaRE) 第24部分:數(shù)據(jù)質(zhì)量測(cè)量》;
GB/T 25000.30—2021《系統(tǒng)與軟件工程 系統(tǒng)與軟件質(zhì)量要求和評(píng)價(jià)(SQuaRE) 第30部分:質(zhì)量需求框架》;
GB/T 25000.40—2018《系統(tǒng)與軟件工程 系統(tǒng)與軟件質(zhì)量要求和評(píng)價(jià)(SQuaRE)第40部分:評(píng)價(jià)過程》;
GB/T 25000.41—2018《系統(tǒng)與軟件工程 系統(tǒng)與軟件質(zhì)量要求和評(píng)價(jià)(SQuaRE) 第41部分:開發(fā)方、需方和獨(dú)立評(píng)價(jià)方評(píng)價(jià)指南》;
GB/T 25000.45—2018《系統(tǒng)與軟件工程 系統(tǒng)與軟件質(zhì)量要求和評(píng)價(jià)(SQuaRE) 第45部分:易恢復(fù)性的評(píng)價(jià)模塊》;
GB/T 25000.51—2016《系統(tǒng)與軟件工程 系統(tǒng)與軟件質(zhì)量要求和評(píng)價(jià)(SQuaRE) 第 51 部分:就緒可用軟件產(chǎn)品(RUSP)的質(zhì)量要求和測(cè)試細(xì)則》;
GB/T 25000.62—2014《軟件工程 軟件產(chǎn)品質(zhì)量要求與評(píng)價(jià)(SQuaRE) 易用性測(cè)試報(bào)告行業(yè)通用格式(CIF)》。
還包括基于ISO/IEC/IEEE 29119的標(biāo)準(zhǔn):
GB/T 38634.1—2020《系統(tǒng)與軟件工程 軟件測(cè)試 第1部分:概念和定義》;
GB/T 38634.2—2020《系統(tǒng)與軟件工程 軟件測(cè)試 第2部分:測(cè)試過程》;
GB/T 38634.3—2020《系統(tǒng)與軟件工程 軟件測(cè)試 第3部分:測(cè)試文檔》;
GB/T 38634.4—2020《系統(tǒng)與軟件工程 軟件測(cè)試 第4部分:測(cè)試技術(shù)》。
可以說,目前,國(guó)內(nèi)外各種政策和環(huán)境的變化對(duì)推動(dòng)軟件測(cè)試的發(fā)展起到了積極的促進(jìn)作用,軟件測(cè)試在國(guó)內(nèi)外都受到了高度的重視,軟件測(cè)試正面臨著前所未有的發(fā)展機(jī)遇。
- Go Web編程
- HoloLens Beginner's Guide
- Learn Swift by Building Applications
- MATLAB實(shí)用教程
- 匯編語(yǔ)言程序設(shè)計(jì)(第3版)
- PHP+MySQL網(wǎng)站開發(fā)項(xiàng)目式教程
- Kotlin開發(fā)教程(全2冊(cè))
- Python項(xiàng)目實(shí)戰(zhàn)從入門到精通
- 移動(dòng)增值應(yīng)用開發(fā)技術(shù)導(dǎo)論
- R語(yǔ)言:邁向大數(shù)據(jù)之路(加強(qiáng)版)
- ABAQUS6.14中文版有限元分析與實(shí)例詳解
- XML程序設(shè)計(jì)(第二版)
- 和孩子一起學(xué)編程:用Scratch玩Minecraft我的世界
- Offer來了:Java面試核心知識(shí)點(diǎn)精講(框架篇)
- Unreal Engine 4 Game Development Essentials