匯智動(dòng)力-軟件測試遵循的基本原則
在實(shí)施測試活動(dòng)時(shí),測試工程師需遵循軟件測試的基本原則。經(jīng)過軟件工程、軟件測試?yán)碚搸资甑陌l(fā)展與總結(jié),概括出7條軟件測試基本原則。
一、 測試證明軟件存在缺陷
無論何種測試活動(dòng),其目的都是為了證明軟件存在缺陷。通過測試活動(dòng)可以減少軟件中存在未被發(fā)現(xiàn)缺陷的可能性,降低漏測風(fēng)險(xiǎn),但即使通過測試未能發(fā)現(xiàn)任何缺陷,亦不能證明被測對象不存在缺陷。在實(shí)際工作中,開發(fā)人員在測試工程師不能發(fā)現(xiàn)缺陷后,經(jīng)常會(huì)說被測對象已經(jīng)沒有任何問題了,這種觀點(diǎn)是極其錯(cuò)誤的。
二、 不可能執(zhí)行窮盡測試
軟件是運(yùn)行在硬件基礎(chǔ)上的邏輯實(shí)體,在復(fù)雜多變的環(huán)境中,任何運(yùn)行環(huán)境發(fā)生變化都可能導(dǎo)致缺陷的產(chǎn)生,除了小型系統(tǒng),利用窮舉法進(jìn)行測試是不可能的。通過風(fēng)險(xiǎn)分析、被測對象測試點(diǎn)優(yōu)先級(jí)分析、軟件質(zhì)量模型及不同測試方法的運(yùn)用來確定測試關(guān)注點(diǎn),從而替代窮盡測試,提高測試覆蓋率。
三、 測試應(yīng)盡早啟動(dòng)、盡早介入
防患于未然,缺陷越早發(fā)現(xiàn),修復(fù)的成本越低。為了盡早發(fā)現(xiàn)缺陷,在軟件系統(tǒng)生產(chǎn)生命周期中,測試(評審)活動(dòng)應(yīng)盡早介入。通常情況下從項(xiàng)目立項(xiàng)開始,每個(gè)階段都進(jìn)行評審活動(dòng)。
四、缺陷存在群集現(xiàn)象
引用經(jīng)濟(jì)學(xué)中的二八原則,一個(gè)軟件系統(tǒng)的核心業(yè)務(wù)及功能往往只占系統(tǒng)的20%左右,但這20%模塊的缺陷數(shù)量可能占了整個(gè)系統(tǒng)的80%左右。測試過程中人力、時(shí)間、資源分配比例應(yīng)根據(jù)系統(tǒng)業(yè)務(wù)功能的優(yōu)先級(jí)匹配,并在測試活動(dòng)結(jié)束后,根據(jù)缺陷分布情況再進(jìn)行調(diào)整。在實(shí)際測試過程中,不可均分測試資源,需考慮測試投入及風(fēng)險(xiǎn)控制,可使用基于風(fēng)險(xiǎn)或操作剖面的測試策略重點(diǎn)測試。
五、 殺蟲劑悖論
害蟲經(jīng)過幾輪藥物毒殺后,其后代將產(chǎn)生抗體,殺蟲劑不再有效。同樣的道理,測試用例經(jīng)過多次迭代測試后,將不能再發(fā)現(xiàn)缺陷。為了解決“殺蟲劑悖論”,測試用例需定期評審、及時(shí)調(diào)整,可根據(jù)軟件質(zhì)量特性結(jié)合被測對象的業(yè)務(wù)場景,設(shè)計(jì)新的測試用例來測試,從而發(fā)現(xiàn)更多潛在的缺陷。
六、 不同的測試活動(dòng)依賴于不同的測試背景
不同的測試背景、測試目標(biāo),需開展不同的測試活動(dòng)。例如,電子商務(wù)業(yè)務(wù)系統(tǒng)與金融證券產(chǎn)品的測試方法可能不一樣,安全性測試與兼容測試性測試方法不一樣。針對不同的測試背景,采用恰當(dāng)高效的測試活動(dòng),是實(shí)施有效測試活動(dòng)的一個(gè)重要環(huán)節(jié)。
七、不存在缺陷的謬論
當(dāng)被測對象無法滿足用戶需求時(shí),即使該系統(tǒng)無任何缺陷,也不能稱為高質(zhì)量的軟件。不能滿足用戶期望的系統(tǒng)即是無用系統(tǒng)。系統(tǒng)無用時(shí),發(fā)現(xiàn)與修改缺陷是毫無意義的。實(shí)施測試活動(dòng)時(shí),一定要考慮用戶背景。一部時(shí)尚酷炫的手機(jī)操作對于老年人而言可能顯得費(fèi)解,即使功能無任何問題,但解決不了老年人的易學(xué)易用性問題。
在實(shí)施測試活動(dòng)時(shí),測試工程師需要時(shí)刻關(guān)注測試目的及所需遵循的原則,利用測試目的及原則指導(dǎo)測試計(jì)劃、方案及執(zhí)執(zhí)行過程,從而提高測試效率。

