iT邦幫忙

2023 iThome 鐵人賽

DAY 2
0

所謂的軟體測試,就是去比較「實際產出」與「預期產出」之間的差異。藉由定義一組「規定的條件」。來評估程式撰寫正確與否、產品品質是否達標以及設計是否符合使用者或規格書的要求。

換個生活中的例子來講,你想要煮出一碗滷肉飯,你會預期它煮出來的外觀、嚐起來的味道。但因為你的預期存在你腦中,太過於抽象,因此你可以定義一個文件如下,用以概念化你的預期:

* 滷肉飯的飯量與肉量比例是否為 2:3
* 滷肉飯的味道聞起來是否是香的
* 滷肉的色相是否為 #512a0b
* 滷肉飯飄出來的味道是否可以傳到另一個房間
* 滷肉飯吃起來的口感,是否可以讓六成的人說出好吃

費勁了千辛萬苦,終於煮出一碗滷肉飯,於是拿出剛剛定義的文件出來評估眼前的這碗飯。發現五個條件中,只有達成三個,也就是說「預期產出」與「實際產出」是存在落差的,且只有達到 60% 的通過率。那麼下一次在煮滷肉飯時就可以根據這些落差去調整。以提升通過率。上述我們在定義文件的過程,放在軟體中就是在撰寫測試。

然而,上述「檢測滷肉飯」的文件,是否真的全面性的涵蓋了「預期」跟「現實」的差距,真的全面性的檢測了滷肉飯的色、香、味嗎?在撰寫軟體測試時,我們也會疑惑自己寫出的測試案例是否「覆蓋(coverage)」了所有程式碼,也因此我們可以去計算覆蓋率。常見用來計算覆蓋率的方式有:行覆蓋率、語句覆蓋率、函式覆蓋率、分支覆蓋率。

在寫測試的過程中,我們會盡可能地去提高測試通過率、測試覆蓋率,並讓測試環境趨近於真實環境。那麼得到的測試結果,才會比較具有可信度。


上一篇
[Day 1] 前言
下一篇
[Day 3] 軟體測試週期
系列文
手動測試好累喔!一起來寫前端自動化測試吧~30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言