如何做報表測試
報表測試根據項目的定義有大有小,有時只是作為軟件的一個部分進行測試,有時整個項目都是測試各種報表.但不論如何,報表的作用始終都是將系統中已經存在的數據根據用戶的設置計算加工/整理匯總/最終以清晰的格式展示給用戶,以便用戶進一步做數據分析或統計。
軟件中的報表實現一般分為定義報表的所需數據(一般可以通過選擇或手工輸入條件來縮小數據範圍)和定義報表格式兩個部分.報表格式除了如國家各行業標準中規定的報表使用固定格式外,大多是根據企業或用戶的需要定製報表。
所以,做報表測試時要注意以下方面:
1、數據的正確
用戶使用報表就是期望通過一個簡單方便的平台能快速的查找到他所需要的數據.所以在測試報表時首先就要檢查報表中的數據是不是用戶需要的數據,如果沒有加工的數據,是否保持了原貌;加工過的數據查看加工的結構是否和手工加工的結果一致.簡言之,需要測試以下內容。
數據的來源:來源於哪張表,哪個字段,數據庫中的數值與界面數據的對應.如數據庫中性別的數據可能是0或1,但界面顯示為男或女,這個對應關係是否正確。
數據的範圍:是否只顯示了報表設置的對應範圍;特別要注意邊界數據,要清楚報表的需求,是否需要過濾掉被選擇的數據.如時間選擇為2006-9-27~2007-9-27,那麼是否應該包含9-27這天。
數據的對應關係:數據庫中的字段是否與報表中的信息對應。
數據的格式:小數位,千位符,四捨五入等是否與報表設置一致;單位或稅率轉換是否正確;組合顯示的數據是否合理。
數據的排序:排序方式是否與報表設置一致(如果沒有設置,是否有一個清晰的默認排序方式,如按字母或數字排序)。
流水號:如報表有使用流水號,流水號的生成和格式是否正確;取消操作是否會生成流水號。
明細與合計的一致性:各部分明細或小節是否與最後總和一致。
測試這一部分內容需要對業務邏輯相當熟悉,對數據庫的設計也要非常了解.必要時可以通過自己寫查詢語句查看數據。
有些報表的條件有多有少,但測試方法都是一樣.根據條件通過等價類劃分和排列組合設置各種條件組合.千萬不要盲目的測試,否則會導致該測的沒測,多餘的測試做了一堆..一般來說有類別劃分的(一般界面表現為下拉框),每個類別都要測試到,如性別中的男,女都要測試.輸入的可以用等價類來劃分要測試的數據。
2、格式的正確
數據驗證正確後,就需要看看報表的輸出格式是否符合要求.可以從以下幾方面來檢查。
報表的整體風格:報表是否符合規定的或用戶設置的格式
報表標題:報表的標題是否是正確的報表名稱;如報表中有嵌入的數據(會跟隨用戶的選擇而變化的).需要檢查數據是否正確,如XX企業9月份財務報表,這個9月就是用戶選擇的;或者XX公司2006-9-27~2007-9-27的網站訪問量,這個時間段也是用戶選擇的。
公司的一些標誌:如logo,名稱,地址之類的是否正確。
報表的頁首與頁尾:是否採用了一致的規則。
分頁:當輸出的內容多時,分頁是否正確;翻頁功能是否正確。
友好性:數據或圖表是否清晰,一目了然,數據的展示符合用戶的習慣;需要特別提醒的數據(如合計,異常數據)是否突出顯示;複雜算法處,用戶不明白或容易混淆處是否有注釋;一些默認的格式是否讓人感覺舒服,如對齊,邊界,間隔等。
3、權限的控制
對於有權限控制的系統,報表當然也應該和用戶所具有的權限相一致.需要從兩方面校驗權限的控制。
報表的條件定義:在條件選擇區域,有些下拉框中應該不能顯示用戶權限範圍外的數據.如普通文員在使用報表時,報表名稱下拉框中是不可以顯示管理者才能查看的報表的.有些以輸入的文本框有級別的劃分時,都應該要測試輸入超越權限的數據的相應。
注意這裡一定要測試每個條目。
報表內容:報表中的內容不能顯示用戶本沒有權限查看的數據。
4、報表的輸出
報表在電腦上生成後,並不是報表的結束.報表一般都需要打印出來他用,如開會或者提交審批之類.所以報表的打印功能也是非常重要的.測試主要分成三部分:
打印設置
打印預覽
實際打印效果
除了打印之外,用戶有可能需要導出報表做進一步的分析或用於和其他報表的比較.所以也應該提供導出報表的功能.一般可以導出為CSV,Excel,pdf,html,xml格式.看公司需要了.這裡主要要檢查導出的報表默認屬性是否為讀寫,然後導出的內容是否正確,與生成的報表相一致。
5、報表與報表之間的關係
有些報表都使用了相同的數據,只不過針對不同的需要做了不同的處理.所以報表與類似報表之間要做些測試,看看數據是否一致。
6、報表的性能
用戶在設置好條件後都希望不要等待報表太長時間,當然有時數據量大時等待時間長些也是合理的.但是在做報表的開發時或測試人員可以提出一些意思來提高報表的性能。
報表的條件設置區域應該設置默認值以避免用戶不輸入任何條件直接生成報表所造成的長時間等待.例如開始和結束時間可以默認為當前的一個月,一些輸入文本框可以根據用戶的身份默認一個數值。
生成報表時用類似進度條表現進度,避免用戶盲目的等待
提供讓用戶選擇每頁顯示多少條數據的選項, 默認為最小的選項,這樣可以避免無謂的資源浪費。
生成報表的語句盡量採用最優的查詢語句,多調試幾遍,查看語句的性能。
注意:如果可以所有的條件為空時,需要測試條件為空時的性能。
7、報表控件的獨特性
一般公司會用專門的報表控件來生成報表,例如MS的Report service, Crystal報表等.所以最好先了解一般的報表生成流程和這類報表控件的特點,這樣在測試時就可以有的放矢,而不是盲目的比較。
8、一般性測試
測試報表條件選擇區域,主要需要注意如下問題:
每個字段的類型校驗
每個字段的長度校驗
每個字段中輸入特殊字符的校驗(包括空/空格)
通配符的測試(對信息量大的系統,建議最好作處理不支持通配符以避免性能的低下)
字段與字段之間的關係的測試(如約束關係或排斥關係)