這種方法是在有假設的前提下進行的,所以具有一定的局限性。假如所有報表的同一列都取錯了數據的話,那么這個方法就失效了。盡管如此,這個方法還是可以幫助我們在測試初期快速發現一些簡單的數據錯誤缺陷。
2.修改數據庫數據
部分報表的數據,由于數據的驗證比較煩瑣,可以通過修改數據庫表對應字段數據的方式,來驗證報表數據是否如預期設置生成報表。
在測試“廠商服務質量報告”時,為了驗證報表是否只統計“接警操作員”和“修復操作員”為同一個人對應的故障數據,我們可以在數據庫中修改某一故障記錄對應的“修復操作員”的數據,將它修改為和“接警操作員”不一致的數據,然后進入系統,生成對應統計條件的報表數據,驗證系統是否有將這條“修復操作員”和“接警操作員”不相同的故障記錄也統計出來,通過這種方式來驗證數據的正確性。
3.特征數據的準備
對于有特殊計算要求的報表,我們要準備相應的特征數據。在本系統中,每臺設備在省行、分行等各級機構,分別設置了直接維護人員、監護人員、督辦人員三個管理員。當ATM產生故障時,這些管理員要對這些故障進行響應和處理。為了統計管理員們及時響應故障、及時處理故障的情況,系統設計了響應及時率、處理及時率之類的及時率計算數據。對于這類報表數據正確性的驗證,筆者使用邊界值和等價類劃分的測試用例設計方法,設計了及時率測試用例。具體舉例如下。
處理及時率的計算方法是:將“故障修復時間”與“故障報警時間”的差值與配置文件中的“故障處理超時時間”進行對比。當差值小于或等于配置文件的設置,則說明處理及時;反之為處理超時。在實際測試時,筆者修改配置文件中的“故障處理超時時間”為10秒,然后修改某故障記錄的 “故障修復時間”與“故障報警時間”的差值分別等于9秒、10秒、11秒,然后執行報表生成操作,驗證系統是否正確統計及時和超時的數據。
通過這個例子說明,在進行類似需要進行類比操作后才能得到的統計數據,可以考慮將測試用例設計方法融入測試設計中,設計特征數據來進行測試,避免測試的盲目性。
4.報表數據的正確性驗證
ATM監控系統的報表統計的“原始數據”是通過后臺程序在指定時間,對日常交易數據、管理數據進行統計、分析后生成的,所以在進行ATM監控系統的報表測試時,還需要對生成的報表中間數據的正確性進行測試。這部分測試的重點是,驗證后臺程序是否將符合條件的交易數據、管理數據生成報表中間數據,即驗證報表中間數據的正確性。
例如,在進行生成故障報表數據的測試時,為了驗證系統沒有將“維護結果”為“尚未處理”的報警記錄生成報表中間數據,但是 “維護結果”為“成功”和“失敗”的報警記錄可以生成報表中間數據的功能。筆者特意設計了三筆不同“維護結果”(成功、失敗、尚未處理)的報警記錄,執行生成報表中間數據的腳本,然后到“故障統計分析”報表中,驗證生成的報表數據是否正確(如果報表中間數據生成有誤,這里得到的報表是錯誤的)。采用這種方式間接驗證程序是否如預期的要求生成了正確的報表中間數據。
5.留意四舍五入對報表數據的影響
在生成的統計報表中,報表數據不可避免的會發生四舍五入的情況。對于普通比例列的計算,只需驗證是否正確四舍五入即可。這里提到要留意四舍五入對報表數據的影響,主要是指四舍五入對于合計列的影響。如:對于合計列,要注意百分比的合計結果應為100%,合計列的數值要等于所有統計列之和。
單設備與多設備測試
為了驗證程序在選擇單設備和多設備時處理是否都正確,筆者特意對報表模塊,在選擇單設備和多設備的兩種情況下分別進行測試。這部分測試,可以說是功能測試中的一項邊界測試。由于測試目的明確,所以筆者將它單獨出來說明。通過這部分測試,筆者發現了部分報表在單設備情況下,處理有誤的缺陷。
權限和訪問安全性測試
在報表測試中,除了功能測試、數據正確性測試外,我們不要遺漏權限控制和訪問安全性的測試。為了驗證報表在權限控制和訪問安全性的控制,筆者使用不同機構的用戶對報表模塊的所有報表進行測試,驗證權限控制,以及報表正確篩選數據的功能。指定機構級別的用戶只能看到指定機構級別的數據和設備。例如:使用三級機構的用戶登錄系統,進入某個報表界面,即使是直接選中“省行”執行生成報表操作,也只能列出該機構所屬設備對應的信息。
原文轉自:http://www.uml.org.cn/Test/200801312.asp