在2月的最后一個(gè)星期,經(jīng)歷了半年的設計、開(kāi)發(fā)、測試的報表系統進(jìn)入了UAT階段。我是這個(gè)基于OLAP技術(shù)報表系統的測試人員,從系統需求分析、設計,到后來(lái)的IT、ST,還有現在的PT,我都一直參與其中。這個(gè)報表測試系列的總結,也是這個(gè)項目觸發(fā)而來(lái)的。
OLAP (On-Line Analysis Processing),聯(lián)機分析處理,是一種用于組織大型商務(wù)數據庫和支持商務(wù)智能的技術(shù)。在參與這個(gè)項目之前,OLAP相關(guān)的維度(Dimension)、Cube、Measure等概念,我完全沒(méi)有認識。而現在的我也只是知其皮毛,而這些也是在項目的過(guò)程中,一點(diǎn)一點(diǎn)積累和惡補回來(lái)的。因此,在本文中,我更多地是站在一個(gè)測試人員的角度,去看基于OLAP的報表系統的測試。其中涉及到一些專(zhuān)業(yè)技術(shù),可能會(huì )有誤解,還請各位讀者指正。
1. 了解系統架構
根據黑盒測試方法的原則,不管報表系統內部采用的是什么技術(shù),我們只需要定義好Input/Output就能測試出系統是否正確運行。然而,這對于基于OLAP技術(shù)開(kāi)發(fā)的系統,遠不足夠。了解報表系統架構,是指我們需要去了解系統的組件、每個(gè)組件的職能、組件之間的聯(lián)系、數據流的走向。當有了清晰明確的概念后,我們才可以明確測試用例需要涵蓋的范圍;當遇到Defect時(shí),就更容易追蹤問(wèn)題的根源了。
系統架構一般在FS中有概述,在A(yíng)DS中有詳細描述。對于測試人員而言,除了認真閱讀這些文檔外,還要在A(yíng)DS的Review Meeting中仔細地聽(tīng),并多發(fā)問(wèn)。請不要認為自己的問(wèn)題對于設計人員而言是簡(jiǎn)單而沒(méi)有意義的。相反,你的發(fā)問(wèn),可以使設計人員反復地去思考設計。他解釋的過(guò)程,也是理順思路的過(guò)程。經(jīng)得起推敲的設計,才是合理的設計。
2. 維度缺失測試
基于OLAP技術(shù)的系統,一般包含有兩大組件Data Ware和Cube。Data Ware就相當于一個(gè)數據倉庫,用來(lái)儲存生成報表的源數據;Cube就是那個(gè)多維度的數據集,我們可以把它想象成一個(gè)魔方,每一條棱都是一個(gè)維度,而中間的方格就是維度切片下的各個(gè)數據。那么讓我們想象一下,如果魔方?jīng)]有了棱會(huì )如何呢?這個(gè)就是我們這里所說(shuō)的維度缺失測試。
維度缺失,指的是事實(shí)數據找不到與之對應的維度值。這也屬于異常數據的一種。例如,Data Ware中有營(yíng)業(yè)點(diǎn)A的銷(xiāo)售數據,然而維度中卻沒(méi)有營(yíng)業(yè)點(diǎn)A的定義,那么這條銷(xiāo)售數據應該放置在Cube的哪個(gè)地方呢?是暫時(shí)不處理,等待維度補全后再重新填入Cube;還是使用推斷成員的技術(shù),自動(dòng)補充缺失維度呢?這是設計時(shí)需要確定,也是測試時(shí)需要關(guān)注的問(wèn)題。
3. 測試點(diǎn)的選取
MILY: 宋體; FONT-SIZE: 10pt; mso-bidi-font-family: 宋體; mso-font-kerning: 0pt">產(chǎn)品 |
區域 |
營(yíng)業(yè) |
Jan-11 |
Feb-11 |
Mar-11 |
Apr-11 |
Total |
Iphone |
大中華 |
中國大陸 |
10 |
10 |
10 |
10 |
40 |
港澳 |
10 |
10 |
10 |
10 |
40 | ||
Subtotal |
20 |
20 |
20 |
20 |
80 | ||
美洲 |
美國 |
15 |
15 |
15 |
15 |
60 | |
加拿大 |
15 |
15 |
15 |
15 |
60 | ||
Subtotal |
30 |
30 |
30 |
30 |
120 | ||
Subtotal |
50 |
50 |
50 |
50 |
200 | ||
Ipad |
歐洲 |
英國 |
20 |
20 |
20 |
20 |
80 |
法國 |
20 |
20 |
20 |
20 |
80 | ||
Subtotal |
40 |
40 |
40 |
40 |
160 | ||
美洲 |
美國 |
25 |
25 |
25 |
25 |
100 | |
加拿大 |
25 |
25 |
25 |
25 |
100 | ||
Subtotal |
50 |
50 |
50 |
50 |
200 | ||
Subtotal |
90 |
90 |
90 |
90 |
360 | ||
Total |
140 |
140 |
140 |
140 |
560 |
基于OLAP技術(shù)的報表系統中,我們選取數據測試點(diǎn)的原則:
n 維度的統計值
原因在于報表中每一行所應用的Measure都是一樣的,所以說(shuō)只要一行中的一個(gè)算對了,整一行都會(huì )算對。如上表所示,底色為黃色的統計值我們都需要驗證。
n Total值
Total值的測試主要是應用在統計值不是簡(jiǎn)單的求和的情況下。如,百分比,或者需要應用公式的統計值。這些Total值不是簡(jiǎn)單的將所有維度值進(jìn)行相加,而是需要從源數據中重新抽取數據應用公式計算而來(lái)的。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/