軟件測(cè)試(英語:Software Testing),描述一種用來促進(jìn)鑒定軟件的正確性、完整性、安全性和質(zhì)量的過程。換句話說,軟件測(cè)試是一種實(shí)際輸出與預(yù)期輸出之間的審核或者比較的過程。
通俗的來講,“軟件測(cè)試”就是通過軟件測(cè)試人員驗(yàn)證軟件是否滿足用戶的需求。最終交付的產(chǎn)品是否和用戶本來的需求一致,如果不一致,需要找出不一樣的點(diǎn)提交給開發(fā)員進(jìn)行修復(fù)改善,測(cè)試人員在測(cè)試過程中找出的問題統(tǒng)稱為“Bug”。
軟件測(cè)試的經(jīng)典定義是:在規(guī)定的條件下對(duì)程序進(jìn)行操作,以發(fā)現(xiàn)程序錯(cuò)誤,衡量軟件質(zhì)量,并對(duì)其是否能滿足設(shè)計(jì)要求進(jìn)行評(píng)估的過程。
所謂“(Bug)”,是指電腦系統(tǒng)的硬件、系統(tǒng)軟件(如操作系統(tǒng))或應(yīng)用軟件(如文字處理軟件)出錯(cuò)。硬件的出錯(cuò)有兩個(gè)原因,一是設(shè)計(jì)錯(cuò)誤,一是硬件部件老化失效等。
軟件的Bug:狹義概念是指軟件程序的漏洞或缺陷,廣義概念除此之外還包括測(cè)試工程師或用戶所發(fā)現(xiàn)和提出的軟件可改進(jìn)的細(xì)節(jié)、或與需求文檔存在差異的功能實(shí)現(xiàn)等。僅就狹義概念而言,軟件出現(xiàn)Bug的原因有:
任何軟件在發(fā)布時(shí)都不可能是絕對(duì)的零Bug。在軟件過程管理中通行的CMM(能力成熟度模型)中規(guī)定的軟件質(zhì)量標(biāo)準(zhǔn)是(Bug個(gè)數(shù)/千行源碼):
當(dāng)且僅當(dāng),程序規(guī)格說明書(軟件需求)存在并且合理,如果軟件功能和軟件規(guī)格說明書不相符合,我們就說是軟件錯(cuò)誤。當(dāng)軟件需求不存在,用戶需求存在并且合理,軟件功能和用戶功能不相符合,就說明是軟件錯(cuò)誤;軟件測(cè)試的階段:整個(gè)軟件開發(fā)的生命周期,需求階段介入 驗(yàn)證需求的合理性和正確性。
①技能要求專業(yè)度:
軟件研發(fā):技能的要求專業(yè)度高,技能要求不廣泛,需要極強(qiáng)的代碼基礎(chǔ)
軟件測(cè)試:技能要求比較廣泛,但是專業(yè)度不高,無硬性代碼基礎(chǔ)
②軟件測(cè)試和軟件調(diào)試
目的:軟件測(cè)試就是驗(yàn)證軟件是否實(shí)現(xiàn)了它應(yīng)該實(shí)現(xiàn)的功能(需求)軟件調(diào)試的目的是軟件開發(fā)人員驗(yàn)證軟件是否實(shí)現(xiàn)了“開發(fā)”想讓軟件實(shí)現(xiàn)的功能。
角色:測(cè)試是由開發(fā)人員(白盒測(cè)試)和測(cè)試人員共同完成,調(diào)試是由開發(fā)人員完成。
階段:測(cè)試現(xiàn)在貫穿了整個(gè)軟件開發(fā)的生命周期:
用戶的期望和滿足合同(文檔,規(guī)則,標(biāo)準(zhǔn))的規(guī)定所需要的條件和權(quán)限。軟件需求是用戶需求轉(zhuǎn)換而來的,它是用戶需求的細(xì)化,是用戶需求的具體實(shí)現(xiàn)細(xì)節(jié)和規(guī)范。
用戶需求比較粗略,直接實(shí)現(xiàn)會(huì)有困難,因?yàn)闆]有細(xì)節(jié),所以需要軟件需求把用戶需求細(xì)節(jié)實(shí)現(xiàn)和規(guī)范,把用戶需求變成一個(gè)具體的可實(shí)現(xiàn)的過程文檔。
驗(yàn)證需求,保證需求正確可實(shí)現(xiàn),細(xì)化需求,從需求中提煉出一個(gè)一個(gè)的測(cè)試項(xiàng)。以用戶登陸為例,闡述下整個(gè)過程:
軟件測(cè)試人員如何深入了解需求? 答:從用戶需求分析階段就開始介入了解需求,站在用戶的角度。
測(cè)試用例就是向被測(cè)試系統(tǒng)發(fā)起的一組集合,包含測(cè)試環(huán)境,測(cè)試數(shù)據(jù),測(cè)試步驟,預(yù)期結(jié)果,(重要性、優(yōu)先級(jí)、操作方式、標(biāo)題等)
如圖:測(cè)試點(diǎn):用正確(已經(jīng)注冊(cè))的賬號(hào)和密碼登陸知乎界面,登陸成功
測(cè)試用例:所測(cè)試的項(xiàng)目標(biāo)題
測(cè)試環(huán)境:Chrome版本99.0.4844.51 PC端 Windows系統(tǒng)
測(cè)試數(shù)據(jù):用戶名:QingshengRuanjianCeshi 密碼: *******
測(cè)試步驟:
預(yù)期結(jié)果:(操作完測(cè)試步驟后的結(jié)果)登陸成功
測(cè)試用例告訴我們測(cè)什么,怎么測(cè),該測(cè)哪些
優(yōu)點(diǎn):衡量需求的覆蓋率(測(cè)試用例和需求對(duì)比):復(fù)用性,借鑒意義; 可以用于回歸測(cè)試; 防止遺漏測(cè)試需求。
軟件開發(fā)的生命周期 : 需求分析一計(jì)劃一 設(shè)計(jì)一 開發(fā)一 測(cè)試一 運(yùn)行維護(hù)
(1)瀑布模型
瀑布模型在軟件測(cè)試工程中占有重要地位,是所有其他模型的基礎(chǔ)框架。瀑布模型的每一個(gè)階段都只執(zhí)行一次,因此是線性順序的軟件開發(fā)模式。
特點(diǎn):階段性強(qiáng)(強(qiáng)調(diào)開發(fā)的階段性、強(qiáng)調(diào)早期計(jì)劃及需求調(diào)查、強(qiáng)調(diào)產(chǎn)品測(cè)試),每一個(gè)階段比較獨(dú)立; 看重前期的需求分析和后期的測(cè)試
缺點(diǎn):易串行有去無回,測(cè)試介入晚,導(dǎo)致項(xiàng)目前期的問題到后面才發(fā)現(xiàn),失去了錯(cuò)誤及時(shí)修正的機(jī)會(huì)、不支持項(xiàng)目頻繁變動(dòng)
(2)螺旋模型
適合于項(xiàng)目龐大,風(fēng)險(xiǎn)大,不是很明確項(xiàng)目,一個(gè)項(xiàng)目分多層小迭代。
特點(diǎn):強(qiáng)調(diào)每一個(gè)迭代的測(cè)試質(zhì)量和風(fēng)險(xiǎn)分析。適合風(fēng)險(xiǎn)比較大并且整個(gè)項(xiàng)目也比較龐大,每一個(gè)迭代做風(fēng)險(xiǎn)分析,討論項(xiàng)目是否有價(jià)值繼續(xù)。
缺點(diǎn):風(fēng)險(xiǎn)管控人力物力投入很多,風(fēng)險(xiǎn)分析要求很高,需要投入專業(yè)人員,導(dǎo)致時(shí)間,項(xiàng)目支出成本費(fèi)用比較高。風(fēng)險(xiǎn)對(duì)比對(duì)測(cè)試人員和開發(fā)人員要求比較高。
(3、4)迭代、增量模型
前置:4周時(shí)間開發(fā) 系統(tǒng)的A模塊,B模塊,C模塊,D模塊的功能
增量:
迭代:
特點(diǎn)是抗擊風(fēng)險(xiǎn)能力強(qiáng)
(5)敏捷模型(常用)
注重和客戶的溝通,整個(gè)研發(fā)團(tuán)隊(duì)有效溝通,注重產(chǎn)品的質(zhì)量,注重產(chǎn)品規(guī)定的交付日期;(擁抱變化,客戶可以在項(xiàng)目開發(fā)過程中改變需求)
敏捷開發(fā)周期很短(1~4周時(shí)間),團(tuán)隊(duì)研發(fā)人員少;
特點(diǎn):重目標(biāo)、重產(chǎn)出、輕文檔、輕流程;
舉例說明:Scrum流程:
角色解析:
軟件測(cè)試V模型:
特點(diǎn): 每一個(gè)階段獨(dú)立性強(qiáng);左邊每一個(gè)階段都是右邊測(cè)試階段的依據(jù);和右邊階段每一個(gè)測(cè)試階段一一對(duì)應(yīng)。
缺點(diǎn):編碼后才進(jìn)行測(cè)試;串行的過程,測(cè)試是在編碼后有的,測(cè)試的介入比較晚導(dǎo)致前期的錯(cuò)誤后期才發(fā)現(xiàn),后期測(cè)試發(fā)現(xiàn)時(shí),已經(jīng)失去了錯(cuò)誤及時(shí)糾正的最好時(shí)機(jī)。
軟件測(cè)試W模型:又稱雙V模型
特點(diǎn): 每一階段獨(dú)立性強(qiáng);測(cè)試一開始就介入;可以保證前期的問題及時(shí)發(fā)現(xiàn)和糾正;測(cè)試和開發(fā)并行。
缺點(diǎn):每一階段都是串行的過程;一個(gè)階段完了之后就進(jìn)行下一個(gè)階段。不適合需求頻繁變更的項(xiàng)目,不支持敏捷(擁抱變化)開發(fā)。
需求分析——測(cè)試計(jì)劃——測(cè)試設(shè)計(jì)/開發(fā)——測(cè)試執(zhí)行——測(cè)試報(bào)告
舉例場(chǎng)景:注冊(cè)功能,密碼長(zhǎng)度是8~18個(gè)字符,但輸入1個(gè)字符時(shí),也能注冊(cè)成功
標(biāo)題:注冊(cè)時(shí)密碼輸入1位字符,提示注冊(cè)成功
測(cè)試版本(代碼提交版本號(hào)):代碼版本號(hào)Qs1001
測(cè)試環(huán)境:Chrome瀏覽器 版本號(hào)96.0.4664.45(因?yàn)樵诓煌瑴y(cè)試環(huán)境問題出現(xiàn)的情況也不一樣)
操作系統(tǒng):Windows10,電腦品牌型號(hào)聯(lián)想xx型號(hào)
測(cè)試數(shù)據(jù):賬號(hào);qingshengceshi666@163.com、密碼;1
測(cè)試步驟:測(cè)試數(shù)據(jù)和執(zhí)行測(cè)試的詳細(xì)步驟,方便為開發(fā)人員復(fù)現(xiàn)問題
(打開注冊(cè)頁面?輸入郵箱賬戶?填寫密碼?點(diǎn)擊同意條款?點(diǎn)擊注冊(cè))
實(shí)際結(jié)果:注冊(cè)成功
預(yù)期結(jié)果(需求期望的結(jié)果):注冊(cè)成功注冊(cè)失敗,提示“密碼長(zhǎng)度不符合規(guī)則”BUG的級(jí)別,附件(截圖,錯(cuò)誤日志)BUG產(chǎn)生時(shí)的log日志,錯(cuò)誤截圖等附件:
描述BUG 的要素:測(cè)試環(huán)境,測(cè)試數(shù)據(jù),測(cè)試步驟,預(yù)期結(jié)果,實(shí)際結(jié)果,附件(錯(cuò)誤,錯(cuò)誤日志),等級(jí),標(biāo)題
提問:當(dāng)測(cè)試員發(fā)現(xiàn)一個(gè)Bug提交給開發(fā)員后修改,開發(fā)員通知測(cè)試員驗(yàn)證,但是測(cè)試員又復(fù)現(xiàn)了這個(gè)Bug,是哪些可能的原因引起的?
回答:測(cè)試環(huán)境不一樣;開發(fā)人員理解不到位,沒有修改成功;代碼在開發(fā)人員修改之后未進(jìn)行遠(yuǎn)程提交代碼,測(cè)試人員用舊版本(有問題的代碼)進(jìn)行測(cè)試
答:一名優(yōu)秀的軟件測(cè)試人員應(yīng)具備良好的溝通能力,編程能力,學(xué)習(xí)能力,自動(dòng)化開發(fā)能力,編寫測(cè)試用例的能力。首先對(duì)于軟件測(cè)試,我非常感興趣,我認(rèn)為做一個(gè)十分優(yōu)秀的測(cè)試人員也是非常不容易的;我學(xué)了點(diǎn)關(guān)于開發(fā)的技能, 能在以后作為一個(gè)專業(yè)的測(cè)試人員與開發(fā)人員溝通過程中會(huì)更容易點(diǎn)。其次現(xiàn)在一個(gè)軟件產(chǎn)品的問世,也離不開軟件測(cè)試,在平常的工作學(xué)習(xí)生涯中,我具有強(qiáng)烈的責(zé)任感和壓力并且善于發(fā)現(xiàn)探索新事物,對(duì)日后的職業(yè)生涯肯定會(huì)有很大的促進(jìn)作用。
]]>