軟件測試之功能點(diǎn)覆蓋 軟件測試
很多測試人員為了對功能點(diǎn)進(jìn)行覆蓋費勁了心思,可惜的是當他們將達到功能點(diǎn)覆蓋100%的,系統,仍然不斷出現問(wèn)題,于是領(lǐng)導的責備,用戶(hù)的冷眼,開(kāi)發(fā)人員的譏諷就全來(lái)了,這個(gè)時(shí)候測試人員唯一的解釋就是測試不是萬(wàn)能的,不可能發(fā)現所有的問(wèn)題。
這個(gè)時(shí)候別人一問(wèn):你的功能點(diǎn)不是100%覆蓋了嗎?為什么還有錯誤沒(méi)有發(fā)現,于是測試人員啞口無(wú)言了.
其實(shí)這個(gè)問(wèn)題的關(guān)鍵問(wèn)題在于如何功能點(diǎn)這個(gè)概念.
功能點(diǎn)的概念其實(shí)從開(kāi)發(fā)中來(lái)的,在系統開(kāi)發(fā)的時(shí)候一般會(huì )分層,最上邊的的是系統,然后是子系統、模塊、功能。一般來(lái)說(shuō)功能是一個(gè)系統中最小的單位,這個(gè)概念被引入到了測試中來(lái),于是出現了功能點(diǎn)覆蓋的概念。
功能點(diǎn)覆蓋一直一個(gè)沒(méi)有明確的概念,這個(gè)概念很容易迷惑測試人員,如何算功能點(diǎn)覆蓋了?
功能一般是系統完成一個(gè)具體的操作,比如在人力資源管理系統的中人員基本信息模塊中有一個(gè)增加新人員信息的功能。
我們在對這個(gè)功能進(jìn)行覆蓋的時(shí)候,一般會(huì )考慮幾個(gè)方面
1.合法數據是否可以加入到系統中
2.非法數據是否可以檢驗出來(lái),并給出相關(guān)提示
3.其他操作約束是否可以滿(mǎn)足,
如果這些方面都要測試到,那么用一個(gè)測試用例是不可能覆蓋的,
這里有問(wèn)題了。
我就寫(xiě)了一個(gè)測試用例是否就算覆蓋這個(gè)這個(gè)功能?
我用100個(gè)不同的測試用例進(jìn)行測試是否算覆蓋了這個(gè)功能?
我用里10個(gè)測試用例發(fā)現了一個(gè)bug和用200個(gè)測試用例發(fā)現了一個(gè)bug ,對系統來(lái)說(shuō)是否有什么不同?
所以個(gè)人認為在這個(gè)時(shí)候應該引入一個(gè)概念就是功能測試點(diǎn)的概念
我們在需求報告或者概要設計報告中很容易總結出系統所有的功能點(diǎn),這些功能點(diǎn)是開(kāi)發(fā)人員提供給測試人員的,那么測試人員要做什么?就是確定每一個(gè)功能(點(diǎn))有多少個(gè)地方需要測試,而這些點(diǎn)就是功能測試點(diǎn),
用來(lái)衡量測試人員工作效果的就是對功能測試點(diǎn)的覆蓋
這樣可以很好解釋?zhuān)瑴y試用例的數量和產(chǎn)品質(zhì)量之間的關(guān)系。
比如功能(點(diǎn))覆蓋達到了100%,但功能測試點(diǎn)的覆蓋只有10%,說(shuō)明測試強度不夠,即使所有的功能都涉及到了,但測試強度還是很小的,產(chǎn)品的質(zhì)量同樣是沒(méi)有保證的
同樣的是,一個(gè)功能點(diǎn)我用了10測試用例發(fā)現一個(gè)bug,和用1000測試用例發(fā)現一個(gè)bug,雖然從bug數量上來(lái)說(shuō)是一樣,但后邊一種對代碼覆蓋率要大(按照測試用例的方法來(lái)編寫(xiě)測試用例),所以,說(shuō)明第二個(gè)系統可靠性比第一個(gè)系統要高。
將功能點(diǎn)和功能測試點(diǎn)區分開(kāi)來(lái)還有一個(gè)好處,就是在統計測試人員工作效果的時(shí)候比較好,
對于測試人員的工作成績(jì)不能單純地以發(fā)現bug數量來(lái)說(shuō)明,否則容易造成偏頗,通過(guò)功能點(diǎn)覆蓋和功能測試點(diǎn)覆蓋率來(lái)分解統計可以比較精確反映測試人員實(shí)際工作量
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/