流程測(cè)試——流程需求分析
軟件在發(fā)展初期,大部分實(shí)現(xiàn)的都是單一功能,如計(jì)算器,用戶期望計(jì)算器實(shí)現(xiàn)加、減、乘、除等運(yùn)算功能,單一輸入,單一輸出,無(wú)論是軟件開發(fā)還是測(cè)試,相對(duì)來(lái)說(shuō)較為容易。
隨著用戶需求越來(lái)越復(fù)雜,對(duì)軟件系統(tǒng)的價(jià)值要求越來(lái)越高,軟件系統(tǒng)不再僅僅實(shí)現(xiàn)一些基礎(chǔ)功能,如信息的增、刪、改、查,而是在基礎(chǔ)功能平臺(tái)上,實(shí)現(xiàn)更多流程性、事務(wù)性的功能。
【案例1 信用卡申請(qǐng)功能流程】
銀行提供用戶在線申請(qǐng)信用卡功能,用戶訪問(wèn)申請(qǐng)地址,輸入身份證號(hào)碼,輸入個(gè)人信用證明,銀行后臺(tái)自動(dòng)校驗(yàn),如果符合,則根據(jù)規(guī)則發(fā)放信用卡,如不符合則拒絕,或發(fā)起人工審核??赡苌婕暗牧鞒虉D如圖1所示。

圖1 信用卡在線申請(qǐng)業(yè)務(wù)處理流程
如今絕大多數(shù)的業(yè)務(wù)系統(tǒng)由用戶管理、權(quán)限管理、工作流管理、基礎(chǔ)數(shù)據(jù)維護(hù)四大核心組件構(gòu)成,每個(gè)核心組件中涉及信息的增加、修改、刪除、查詢等相關(guān)操作。測(cè)試工程師測(cè)試任何軟件,應(yīng)當(dāng)先理解被測(cè)的業(yè)務(wù)結(jié)構(gòu),從而根據(jù)用戶需求優(yōu)先級(jí)制定合理的測(cè)試計(jì)劃與策略。
從用戶角度考慮,用戶期望軟件完成其所需的業(yè)務(wù)流程,其他功能則是輔助流程的,因此流程測(cè)試是日常測(cè)試工作中非常重要的內(nèi)容。
流程測(cè)試是測(cè)試工程師將被測(cè)對(duì)象的各個(gè)功能通過(guò)業(yè)務(wù)流程貫穿起來(lái)運(yùn)行,模擬真實(shí)用戶實(shí)際的工作流程,從而驗(yàn)證流程的正確性。
流程測(cè)試通常分為三個(gè)步驟:流程需求分析、流程測(cè)試設(shè)計(jì)、流程測(cè)試執(zhí)行。
流程
需求分析
業(yè)務(wù)流程,一般可能由多個(gè)功能、多種角色、多種權(quán)限組合而成,過(guò)程中涉及較多的測(cè)試點(diǎn),進(jìn)行流程時(shí),需分析業(yè)務(wù)流程涉及哪些具體的功能、角色及權(quán)限。
【案例2 ECShop用戶購(gòu)買商品流程】
ECShop系統(tǒng)的“注冊(cè)用戶購(gòu)買商品”業(yè)務(wù)流程如圖2所示。

圖2 注冊(cè)用戶商品購(gòu)買流程
上圖是ECShop注冊(cè)用戶登陸平臺(tái)后購(gòu)買商品的基本流程,從登陸->查詢->瀏覽商品到最終的收貨節(jié)點(diǎn),從用戶應(yīng)用角度分析,僅涉及一個(gè)角色、一種權(quán)限,雖然過(guò)程中包含多個(gè)功能點(diǎn),但測(cè)試工程師針對(duì)這樣的流程測(cè)試時(shí),無(wú)須關(guān)注每個(gè)節(jié)點(diǎn)的功能性特性,僅需考慮軟件系統(tǒng)是否正確實(shí)現(xiàn)了對(duì)應(yīng)的業(yè)務(wù)流程,具體每個(gè)節(jié)點(diǎn)的驗(yàn)證性測(cè)試活動(dòng)應(yīng)該單獨(dú)開展。
也有些流程較為復(fù)雜,以請(qǐng)假流程來(lái)說(shuō),過(guò)程中可能涉及多個(gè)角色、多種權(quán)限,如圖3所示。

圖3 員工請(qǐng)假流程
測(cè)試工程師測(cè)試圖3所描述的請(qǐng)假流程時(shí),需分析該流程中包含哪些角色、需要哪些權(quán)限,判定路徑有幾條。
需確定被測(cè)流程共涉及幾種角色,因?yàn)槊糠N角色對(duì)應(yīng)的權(quán)限不同,測(cè)試工程師應(yīng)當(dāng)從用戶角色考慮流程的合理性,而不僅僅關(guān)注系統(tǒng)實(shí)現(xiàn)。
上述流程圖共涉及普通員工、部門領(lǐng)導(dǎo)、公司領(lǐng)導(dǎo)、人事四種角色,測(cè)試用例設(shè)計(jì)時(shí)至少需要?jiǎng)?chuàng)建這四種角色的用戶,才能真實(shí)的模擬用戶行為。
不同的角色對(duì)應(yīng)不同的權(quán)限,通過(guò)流程測(cè)試,可發(fā)現(xiàn)權(quán)限設(shè)計(jì)方面的缺陷,以請(qǐng)假流程為例,部門領(lǐng)導(dǎo)應(yīng)該具有審批普通員工的請(qǐng)假單權(quán)限,但不應(yīng)當(dāng)具有審批公司領(lǐng)導(dǎo)請(qǐng)假單的權(quán)限。測(cè)試流程前需確保權(quán)限功能的正確性。
路徑,是流程包含的分支路徑。分支路徑說(shuō)明了業(yè)務(wù)流程的復(fù)雜度,以員工請(qǐng)假流程為例,共有4條路徑,分別是:
路徑1:1、2、3
路徑2:1、2、4
路徑3:5、6、7
路徑4:5、6、8
路徑根據(jù)其處理業(yè)務(wù)流程的方式不同,劃分為基本流、備選流及異常流等三種形式。
基本流從流程開始直至流程結(jié)束,中間無(wú)任何異常分支,往往表述一個(gè)正向的業(yè)務(wù)流程,也是優(yōu)先級(jí)較高的流程,簡(jiǎn)單而言,即流程中所有功能都輸入軟件系統(tǒng)可接受的數(shù)據(jù),從而完成整個(gè)業(yè)務(wù)流程。如圖5- 37員工請(qǐng)假流程中“普通員工提交請(qǐng)假單->部門領(lǐng)導(dǎo)->同意->人事記錄請(qǐng)假信息”是基本流。
盡管在流程流轉(zhuǎn)過(guò)程中出現(xiàn)了異常,但仍能回到基本流主線,最終完成用戶期望的業(yè)務(wù)行為,這樣的流程稱為備選流。以ECShop用戶進(jìn)行訂單支付時(shí),密碼輸入錯(cuò)誤后重新輸入,系統(tǒng)驗(yàn)證正確后完成支付,這樣的業(yè)務(wù)過(guò)程即屬于備選流。
針對(duì)業(yè)務(wù)流程,一般分解到基本流與備選流即可,但筆者認(rèn)為在實(shí)際的測(cè)試過(guò)程中,應(yīng)當(dāng)根據(jù)實(shí)際業(yè)務(wù)情況增加異常流分支劃分。異常流是在備選流的基礎(chǔ)上,違反系統(tǒng)約束最終導(dǎo)致用戶期望結(jié)果未能達(dá)成的路徑。同樣以訂單支付為例,系統(tǒng)調(diào)用支付接口,用戶密碼輸入錯(cuò)誤超過(guò)3次,導(dǎo)致支付行為鎖定,無(wú)法完成后續(xù)業(yè)務(wù),這樣的處理路徑,理解為異常流。
簡(jiǎn)單的業(yè)務(wù)流程,通過(guò)文字描述即可,但很多時(shí)候流程相對(duì)較為復(fù)雜,此時(shí)測(cè)試工程師最好繪制流程圖,這樣更利于后續(xù)的測(cè)試用例設(shè)計(jì)。分析流程的時(shí)候,根據(jù)流程的重要程度及使用頻率確定流程的優(yōu)先級(jí)。

