#第一天:軟件測(cè)試綜述和軟件生命周期
===========================================================
--理論課程都是以ISTQB初級(jí)大綱為依據(jù)
#一、軟件測(cè)試(面試:你怎么理解軟件測(cè)試?為什么需要軟件測(cè)試?)
--IEEE:通過(guò)人工或自動(dòng)化的方式對(duì)軟件進(jìn)行操作,以判斷軟件是否滿足需求或軟件的預(yù)期結(jié)果和實(shí)際結(jié)果進(jìn)行判斷的過(guò)程
--在規(guī)定的條件下對(duì)程序進(jìn)行操作,以發(fā)現(xiàn)程序錯(cuò)誤,衡量軟件的質(zhì)量,并對(duì)其是否滿足用戶需求進(jìn)行評(píng)估的過(guò)程
--測(cè)試目的:發(fā)現(xiàn)缺陷--》衡量軟件質(zhì)量--》提示決策信息--》滿足需求,客戶滿意
#二、缺陷的不同形態(tài)(缺陷不同階段)
--軟件錯(cuò)誤:人為的代碼錯(cuò)誤,存在于代碼區(qū)塊內(nèi)的問(wèn)題
--軟件缺陷:內(nèi)部的軟件問(wèn)題,靜態(tài)的存在,此時(shí)軟件還未滿足缺陷的激活條件
--軟件故障:軟件在一定條件下運(yùn)行時(shí),問(wèn)題開(kāi)始顯現(xiàn),以動(dòng)態(tài)能見(jiàn)的形式出現(xiàn)
--軟件失效:軟件故障沒(méi)排除后造成軟件失效直至退出市場(chǎng)
--相互關(guān)系:
? 錯(cuò)誤---》缺陷----》故障-----》失效
? 每一個(gè)階段的問(wèn)題如果不解決都會(huì)在一定條件下造成一個(gè)或多個(gè)下一個(gè)階段問(wèn)題
#三、軟件生命周期(面試1:項(xiàng)目流程是怎么?你們的項(xiàng)目是怎么開(kāi)發(fā)的?開(kāi)發(fā)流程是什么?測(cè)試流程是什么?適當(dāng)拓展)
? ? ? ? ? ? ? (面試2:你們每個(gè)階段有評(píng)審會(huì)嗎?評(píng)審會(huì)有哪些人員參加?評(píng)審會(huì)有哪些角色?)
生命周期分為:需求分析--》軟件設(shè)計(jì)--》軟件編碼--》軟件測(cè)試--》運(yùn)行維護(hù)
1、需求分析
? --是軟件的開(kāi)始,是最重要的階段,這個(gè)階段可能會(huì)貫穿項(xiàng)目始終
? 測(cè)試:確認(rèn)用戶需求是否描述正確,我方人員是否和用戶表述的一致。根據(jù)需求文檔明確測(cè)試要點(diǎn)。
? 產(chǎn)出:需求規(guī)格說(shuō)明書(shū)
? who:需求分析師
? 活動(dòng):需求分析的同行評(píng)審會(huì)議。有項(xiàng)目主要人員參與:需求分析人員,設(shè)計(jì)人員,開(kāi)發(fā)人員,測(cè)試人員--(所以項(xiàng)目相關(guān)人員都要參加)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 作者,評(píng)審員,協(xié)調(diào)員,書(shū)記,主席,主持人
2、軟件設(shè)計(jì)(面試1:概設(shè)和想設(shè)由誰(shuí)來(lái)完成?概設(shè)和詳設(shè)的區(qū)別是什么?)
? ? ? ? ? (面試2:設(shè)計(jì)階段除了有概設(shè)和詳設(shè)以外,設(shè)計(jì)還出什么文檔?(數(shù)據(jù)庫(kù)表模型和相關(guān)的建庫(kù)腳本等也是由設(shè)計(jì)提供))
? --把需求考慮的內(nèi)容給詳細(xì)化,數(shù)據(jù)化,形成相應(yīng)的設(shè)計(jì)文檔
? 測(cè)試:確認(rèn)設(shè)計(jì)內(nèi)容是否符合需求的要求,進(jìn)一步熟悉需求,了解項(xiàng)目的設(shè)計(jì)框架和詳細(xì)設(shè)計(jì)邏輯,完成測(cè)試用例大綱的設(shè)計(jì)
? 產(chǎn)出:概要設(shè)計(jì)文檔(概設(shè))和詳細(xì)設(shè)計(jì)文檔(詳設(shè)),測(cè)試用例大綱或測(cè)試要點(diǎn)(不帶測(cè)試步驟、預(yù)期結(jié)果和實(shí)際結(jié)果的測(cè)試用例,由測(cè)試人員完成)
? who:設(shè)計(jì)人員,測(cè)試人員編寫(xiě)測(cè)試用例大綱
? 活動(dòng):概設(shè)和詳設(shè)的評(píng)審,測(cè)試大綱評(píng)審
3、軟件編碼(面試1:開(kāi)發(fā)在編碼的時(shí)候你作為測(cè)試人員你的任務(wù)是什么?--》寫(xiě)測(cè)試用例)
? --把設(shè)計(jì)內(nèi)容給代碼化,程序化,變成軟件
? 測(cè)試:對(duì)代碼進(jìn)行單元測(cè)試、白盒測(cè)試。根據(jù)具體的測(cè)試大綱、詳細(xì)設(shè)計(jì)和界面原型進(jìn)行測(cè)試用例(主要是編寫(xiě)測(cè)試步驟和預(yù)期結(jié)果)的編寫(xiě)
? 產(chǎn)出:程序-》項(xiàng)目軟件,完整的測(cè)試用例(測(cè)試負(fù)責(zé)開(kāi)發(fā)測(cè)試用例)
? who:開(kāi)發(fā)人員
? 活動(dòng):有可能會(huì)有開(kāi)發(fā)代碼走查和代碼審查
4、軟件測(cè)試(面試1:你測(cè)試的依據(jù)是什么?--》根據(jù)需求規(guī)格說(shuō)明書(shū)來(lái)測(cè)試)
? ? ? ? ? (面試2:你根據(jù)什么測(cè)試?--》根據(jù)測(cè)試用例進(jìn)行測(cè)試)
? --對(duì)產(chǎn)品進(jìn)行系統(tǒng)化的嚴(yán)格測(cè)試,驗(yàn)證質(zhì)量結(jié)果是否符合需求
? 測(cè)試:根據(jù)測(cè)試用例進(jìn)行系統(tǒng)測(cè)試,完善測(cè)試用例
? who:測(cè)試人員
5、運(yùn)行維護(hù)
? --是所有階段中最長(zhǎng)的,主要是對(duì)產(chǎn)品進(jìn)行維護(hù)和更新,軟件的維護(hù)包括糾錯(cuò)性維護(hù)和改進(jìn)性維護(hù)兩個(gè)方面。當(dāng)軟件不再維護(hù)時(shí),意味軟件走向死亡
? 測(cè)試:幫助研發(fā)確認(rèn)研究并最終修改缺陷,對(duì)更新的內(nèi)容或版本進(jìn)行再次測(cè)試
? who:運(yùn)維人員
注意:測(cè)試人員應(yīng)該在軟件生命周期剛開(kāi)始的時(shí)候就介入,貫穿所有階段,符合測(cè)試原則,測(cè)試越早介入約好。
四、測(cè)試人員的基本素質(zhì)(面試1:你覺(jué)得作為一名軟件測(cè)試工程師最重要的是什么?)
懷疑精神:未經(jīng)測(cè)試的產(chǎn)品都有可能有bug
溝通能力:語(yǔ)言的溝通和書(shū)面的表達(dá)
專注力:測(cè)試是需要非常專注
洞察力:有發(fā)現(xiàn)問(wèn)題的預(yù)感
邏輯思維:嚴(yán)密的邏輯
心態(tài)要求:耐心,不浮躁
學(xué)習(xí)要求:不斷自我提升的學(xué)習(xí)
責(zé)任心:未經(jīng)測(cè)試的產(chǎn)品必須進(jìn)過(guò)測(cè)試才能投入市場(chǎng)
五、軟件測(cè)試基本原則
原則1:測(cè)試顯示存在缺陷
原則2:窮舉測(cè)試是不可行的
原則3:測(cè)試盡早介入
原則4:缺陷集群性,80%的缺陷是集中20%的代碼中
原則5:殺蟲(chóng)劑悖論
原則6:測(cè)試活動(dòng)依賴于測(cè)試背景
原則7:不存在缺陷(就是有用系統(tǒng))的謬論