軟件測(cè)試要遵循哪些原則
軟件測(cè)試定義是:為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過(guò)程它是幫助識(shí)別開(kāi)發(fā)完成(中間或最終的版本)的計(jì)算機(jī)軟件(整體或部分)的正確度(correctness) 、完全度(completeness)和質(zhì)量(quality)的軟件過(guò)程;是SQA(software quality assurance)的重要子域。
軟件測(cè)試的目標(biāo):(1)測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過(guò)程;(2)好的測(cè)試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試方案;(3)成功的測(cè)試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。
軟件測(cè)試的內(nèi)容:軟件測(cè)試主要工作內(nèi)容是驗(yàn)證(verification)和確認(rèn)(validation ),下面分別給出其概念:驗(yàn)證(verification)是保證軟件正確地實(shí)現(xiàn)了一些特定功能的一系列活動(dòng),即保證軟件做了你所期望的事情。
(Do the right thing) 1.確定軟件生存周期中的一個(gè)給定階段的產(chǎn)品是否達(dá)到前階段確立的需求的過(guò)程;2.程序正確性的形式證明,即采用形式理論證明程序符號(hào)設(shè)一計(jì)規(guī)約規(guī)定的過(guò)程;3.評(píng)市、審查、測(cè)試、檢查、審計(jì)等各類(lèi)活動(dòng),或?qū)δ承╉?xiàng)處理、服務(wù)或文件等是否和規(guī)定的需求相一致進(jìn)行判斷和提出報(bào)告。
確認(rèn)(validation)是一系列的活動(dòng)和過(guò)程,目的是想證實(shí)在一個(gè)給定的外部環(huán)境中軟件的邏輯正確性。
即保證軟件以正確的方式來(lái)做了這個(gè)事件(Do it right)1.靜態(tài)確認(rèn),不在計(jì)算機(jī)上實(shí)際執(zhí)行程序,通過(guò)人工或程序分析來(lái)證明軟件的正確性;2.動(dòng)態(tài)確認(rèn),通過(guò)執(zhí)行程序做分析,測(cè)試程序的動(dòng)態(tài)行為,以證實(shí)軟件是否存在問(wèn)題。
軟件測(cè)試的對(duì)象不僅僅是程序測(cè)試,軟件測(cè)試應(yīng)該包括整個(gè)軟件開(kāi)發(fā)期問(wèn)各個(gè)階段所產(chǎn)生的文檔,如需求規(guī)格說(shuō)明、概要設(shè)計(jì)文檔、詳細(xì)設(shè)計(jì)文檔,當(dāng)然軟件測(cè)試的主要對(duì)象還是源程序。
從不同的角度出發(fā),軟件測(cè)試可以劃分為不同的分類(lèi):從是否關(guān)心軟件內(nèi)部結(jié)構(gòu)和具體實(shí)現(xiàn)的角度劃分A.白盒測(cè)試B.黑盒測(cè)試C.灰盒測(cè)試從是否執(zhí)行程序的角度A.靜態(tài)測(cè)試B.動(dòng)態(tài)測(cè)試從軟件開(kāi)發(fā)的過(guò)程按階段劃分有A.單元測(cè)試B.集成測(cè)試C.確認(rèn)測(cè)試D.驗(yàn)收測(cè)試E.系統(tǒng)測(cè)試* 測(cè)試過(guò)程按4個(gè)步驟進(jìn)行,即單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試及發(fā)版測(cè)試。
* 開(kāi)始是單元測(cè)試,集中對(duì)用源代碼實(shí)現(xiàn)的每一個(gè)程序單元進(jìn)行測(cè)試,檢查各個(gè)程序模塊是否正確地實(shí)現(xiàn)了規(guī)定的功能。
* 集成測(cè)試把已測(cè)試過(guò)的模塊組裝起來(lái),主要對(duì)與設(shè)計(jì)相關(guān)的軟件體系結(jié)構(gòu)的構(gòu)造進(jìn)行測(cè)試。
* 確認(rèn)測(cè)試則是要檢查已實(shí)現(xiàn)的軟件是否滿(mǎn)足了需求規(guī)格說(shuō)明中確定了的各種需求,以及軟件配置是否完全、正確。
* 系統(tǒng)測(cè)試把已經(jīng)經(jīng)過(guò)確認(rèn)的軟件納入實(shí)際運(yùn)行環(huán)境中,與其它系統(tǒng)成份組合在一起進(jìn)行測(cè)試。
單元測(cè)試 (Unit Testing) * 單元測(cè)試又稱(chēng)模塊測(cè)試,是針對(duì)軟件設(shè)計(jì)的最小單位 ─ 程序模塊,進(jìn)行正確性檢驗(yàn)的測(cè)試工作。
其目的在于發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種差錯(cuò)。
* 單元測(cè)試需要從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計(jì)測(cè)試用例。
多個(gè)模塊可以平行地獨(dú)立進(jìn)行單元測(cè)試。
1. 單元測(cè)試的內(nèi)容 * 在單元測(cè)試時(shí),測(cè)試者需要依據(jù)詳細(xì)設(shè)計(jì)說(shuō)明書(shū)和源程序清單,了解該模塊的I\\\/O條件和模塊的邏輯結(jié)構(gòu),主要采用白盒測(cè)試的測(cè)試用例,輔之以黑盒測(cè)試的測(cè)試用例,使之對(duì)任何合理的輸入和不合理的輸入,都能鑒別和響應(yīng)。
(1) 模塊接口測(cè)試 * 在單元測(cè)試的開(kāi)始,應(yīng)對(duì)通過(guò)被測(cè)模塊的數(shù)據(jù)流進(jìn)行測(cè)試。
測(cè)試項(xiàng)目包括: – 調(diào)用本模塊的輸入?yún)?shù)是否正確; – 本模塊調(diào)用子模塊時(shí)輸入給子模塊的參數(shù)是否正確; – 全局量的定義在各模塊中是否一致;* 在做內(nèi)外存交換時(shí)要考慮: – 文件屬性是否正確; – OPEN與CLOSE語(yǔ)句是否正確; – 緩沖區(qū)容量與記錄長(zhǎng)度是否匹配; – 在進(jìn)行讀寫(xiě)操作之前是否打開(kāi)了文件; – 在結(jié)束文件處理時(shí)是否關(guān)閉了文件; – 正文書(shū)寫(xiě)/輸入錯(cuò)誤, – I/O錯(cuò)誤是否檢查并做了處理。
(2) 局部數(shù)據(jù)結(jié)構(gòu)測(cè)試 * 不正確或不一致的數(shù)據(jù)類(lèi)型說(shuō)明 * 使用尚未賦值或尚未初始化的變量 * 錯(cuò)誤的初始值或錯(cuò)誤的缺省值 * 變量名拼寫(xiě)錯(cuò)或書(shū)寫(xiě)錯(cuò) * 不一致的數(shù)據(jù)類(lèi)型 * 全參考
軟件測(cè)試過(guò)程中有哪些風(fēng)險(xiǎn)
風(fēng)險(xiǎn):(1有詳細(xì)設(shè)計(jì)說(shuō)明書(shū);解決方案:測(cè)試人員要在開(kāi)發(fā)對(duì)相關(guān)設(shè)計(jì)及需求文檔進(jìn)行分析,對(duì)大體模能進(jìn)行分類(lèi),分析業(yè)務(wù)邏輯,在不清楚的地方及時(shí)與開(kāi)發(fā)人員溝通。
風(fēng)險(xiǎn):(2)沒(méi)有統(tǒng)一的界面設(shè)計(jì)規(guī)范。
解決方案:與項(xiàng)目負(fù)責(zé)人確認(rèn)測(cè)試標(biāo)準(zhǔn)。
開(kāi)發(fā)方面:風(fēng)險(xiǎn):(1)所有模塊開(kāi)發(fā)沒(méi)有統(tǒng)一設(shè)計(jì),開(kāi)發(fā)人員有自己的設(shè)計(jì)方式;解決方案:與項(xiàng)目負(fù)責(zé)人確認(rèn)標(biāo)準(zhǔn)方式,與標(biāo)準(zhǔn)方式不一致的地方全部以BUG形式提交。
風(fēng)險(xiǎn):(2)需求變更開(kāi)發(fā)。
解決方案:建議將需求變更形成文檔,對(duì)沒(méi)有文檔的需求變更,在測(cè)試過(guò)程中發(fā)現(xiàn)及時(shí)與開(kāi)發(fā)負(fù)責(zé)人確認(rèn),并存檔相關(guān)變更文檔。
測(cè)試本身:風(fēng)險(xiǎn):(1)人力資源;解決方案:保證穩(wěn)定的人員安排。
風(fēng)險(xiǎn):(2)硬件資源;解決方案:事先分析測(cè)試所需硬件資源,及時(shí)申請(qǐng),保證測(cè)試工作順利進(jìn)行。
風(fēng)險(xiǎn):(3)版本控制;解決方案:嚴(yán)格控制版本,BUG以版本為單位進(jìn)行提交。
在測(cè)試過(guò)程中及BUG確認(rèn)階段禁止任何代碼更新。
風(fēng)險(xiǎn):(4)測(cè)試時(shí)間不足。
解決方案:動(dòng)員測(cè)試人員完成測(cè)試任務(wù),必要時(shí),應(yīng)給予相應(yīng)物質(zhì)獎(jiǎng)勵(lì)。
測(cè)試風(fēng)險(xiǎn)是不可避免的、總是存在的,所以對(duì)測(cè)試風(fēng)險(xiǎn)的管理非常重要,必須盡力降低測(cè)試中所存在的風(fēng)險(xiǎn),最大程度地保證質(zhì)量和滿(mǎn)足客戶(hù)的需求。
在測(cè)試工作中,主要的風(fēng)險(xiǎn)有:一、質(zhì)量需求或產(chǎn)品的特性理解不準(zhǔn)確,造成測(cè)試范圍分析的誤差,結(jié)果某些地方始終測(cè)試不到或驗(yàn)證的標(biāo)準(zhǔn)不對(duì);二、測(cè)試用例沒(méi)有得到百分之百的執(zhí)行,如有些測(cè)試用例被有意或無(wú)意的遺漏;三、需求的臨時(shí)\\\/突然變化,導(dǎo)致設(shè)計(jì)的修改和代碼的重寫(xiě),測(cè)試時(shí)間不夠;四、質(zhì)量標(biāo)準(zhǔn)不都是很清晰的,如適用性的測(cè)試,仁者見(jiàn)仁、智者見(jiàn)智;五、測(cè)試用例設(shè)計(jì)不到位,忽視了一些邊界條件、深層次的邏輯、用戶(hù)場(chǎng)景等;六、測(cè)試環(huán)境,一般不可能和實(shí)際運(yùn)行環(huán)境完全一致,造成測(cè)試結(jié)果的誤差;七、有些缺陷出現(xiàn)頻率不是百分之百,不容易被發(fā)現(xiàn);如果代碼質(zhì)量差,軟件缺陷很多,被漏檢的缺陷可能性就大;八、回歸測(cè)試一般不運(yùn)行全部測(cè)試用例,是有選擇性的執(zhí)行,必然帶來(lái)風(fēng)險(xiǎn)。
軟件測(cè)試人員在軟件開(kāi)發(fā)過(guò)程中的任務(wù)都有哪些?
測(cè)試人員在軟件開(kāi)程中的任務(wù):1找Bug;2、避免軟件過(guò)程中的缺陷;3、軟件的品質(zhì);4、關(guān)注用戶(hù)的需求。
軟件測(cè)試目的1、測(cè)試的最終目的是為了避免錯(cuò)誤的發(fā)生,確保應(yīng)用程序能夠正常高效的運(yùn)行;2、好的測(cè)試用例在于發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤;3、成功的測(cè)試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試;4、好的測(cè)試工程師應(yīng)該做到不僅發(fā)現(xiàn)問(wèn)題,還能夠幫助開(kāi)發(fā)人員分析問(wèn)題;軟件測(cè)試的原則:1、應(yīng)把“盡早和不斷地進(jìn)行軟件測(cè)試”作為軟件開(kāi)發(fā)者的座右銘,實(shí)踐證明單元測(cè)試能夠盡早發(fā)現(xiàn)問(wèn)題,減少后期測(cè)試的錯(cuò)誤量。
2、測(cè)試用例應(yīng)由測(cè)試輸入數(shù)據(jù)、測(cè)試執(zhí)行步驟和與之對(duì)應(yīng)的預(yù)期輸出結(jié)果三部分組成。
3、應(yīng)當(dāng)避免由程序員檢查自己的程序。
(指后期系統(tǒng)測(cè)試階段,不包括單元測(cè)試)4、測(cè)試用例的設(shè)計(jì)要確保能覆蓋所有可能路徑。
在設(shè)計(jì)測(cè)試用例時(shí),應(yīng)當(dāng)包括合理的輸入條件和不合理的輸入條件。
不合理的輸入條件是指異常的,臨界的,可能引起問(wèn)題的輸入條件。
5、充分注意測(cè)試中的群集現(xiàn)象。
經(jīng)驗(yàn)表明,測(cè)試后程序殘存的錯(cuò)誤數(shù)目與該程序中已發(fā)現(xiàn)的錯(cuò)誤數(shù)目或檢錯(cuò)率成正比。
應(yīng)該對(duì)錯(cuò)誤群集的程序段進(jìn)行重點(diǎn)測(cè)試。
6、嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性。
測(cè)試計(jì)劃應(yīng)包括:所測(cè)軟件的功能,輸入和輸出,測(cè)試內(nèi)容,各項(xiàng)測(cè)試的進(jìn)度安排,資源要求,測(cè)試資料,測(cè)試工具,測(cè)試用例的選擇,測(cè)試的控制方法和過(guò)程,系統(tǒng)的配置方式,跟蹤規(guī)則,調(diào)試規(guī)則,以及回歸測(cè)試的規(guī)定等等以及評(píng)價(jià)標(biāo)準(zhǔn)。
7、應(yīng)當(dāng)對(duì)每
軟件測(cè)試時(shí)應(yīng)遵循的基本原則是什么
軟件的生命周期分為:計(jì)劃、需求分析、設(shè)計(jì)、編碼、測(cè)試、運(yùn)行、評(píng)價(jià)。
軟件測(cè)試貫穿了整個(gè)軟件開(kāi)發(fā)周期,所以,在軟件生命周期的各個(gè)階段,都在進(jìn)行軟件測(cè)試。