李 喚,周曉光,邢 穎,楊萌柯,潘 彥
(北京郵電大學自動化學院 教育部信息網絡工程研究中心,北京 100876)
基于優化Markov鏈使用模型的電子商務平臺可靠性測試
李 喚,周曉光,邢 穎,楊萌柯,潘 彥
(北京郵電大學自動化學院 教育部信息網絡工程研究中心,北京 100876)
近年來,隨著互聯網的迅猛發展,國內外消費者習慣發生了翻天覆地的改變,電子商務在消費市場上扮演著越來越重要的角色。電子商務平臺作為電子商務的基礎設施,支撐電子商務業務中信息流、貨物流、資金流的正常流轉,其可靠性高低對于電子商務有重要意義。本文,首先利用簡化的可用性測試對Markov鏈使用模型進行優化,然后利用優化后的 Markov鏈對電子商務平臺實例進行建模示范。本文中提出的優化的 Markov鏈使用模型,融合時下互聯網行業的可用性測試,通過可用性測試獲得符合實際使用場景的轉移概率,建立的可靠性測試使用模型更有現實參考價值。該模型指導的可靠性測試能保證電子商務平臺運行穩定,電子商務業務順利進行,是電子商務發展的重要前提。
電子商務平臺;Markov鏈;使用模型;可用性測試;可靠性測試
在計算機技術、互聯網迅速發展的大背景下,國內外消費者的個人消費習慣發生改變,電子商務成為市場主力軍之一。據eMarketer公司數據顯示,2013年,美國有73%、日本78.3%、西歐地區有72.3%的網民已經轉化為電子商務用戶,亞太地區網購用戶與互聯網用戶之比較低,印尼僅有9.5%、中國為49.3%、墨西哥為20.4%、印度為23.5%,近年來,亞太等新興地區電子商務增長遠遠超過其他地區,并在 2012年首次超過西歐地區成為全球第二大市場[1-2]。2015年中國電商的總量已經超過了美國電商總量,占據最大的電商市場位置。我國電子商務崛起,離不開阿里巴巴、京東、蘇寧等電商企業。近年來電子商務為我國國民經濟增長做出突出貢獻,電子商務平臺每天的交易額驚人,阿里巴巴旗下天貓平臺在2017年11月11日單日交易量1682億元,連續9年刷新“雙11”交易量紀錄[3]。電子商務平臺作為電子商務的基礎設施,協調、整合電子商務的信息流、貨物流、資金流,其安全、可靠至關重要,衡量平臺是否可靠,需引入可靠性測試。
美國 IEEE協會對于軟件可靠性的權威定義有兩層含義[4]:
(1)指定運行環境中和指定時間規定下,待測軟件不引發整個待測軟硬件系統失效的概率[5]。
(2)在滿足指定的軟件時鐘周期和指定運行條件的情況下,待測軟件執行完成預期功能的能力。
簡而言之就是,待測軟件的一次使用過程當中不引起失效的概率。軟件可靠性測試是用于驗證軟件可靠性是否滿足軟件的可靠性要求、評估軟件的可靠性水平的一種軟件測試。目前,軟件可靠性測試主要有兩種測試方法,一種是 J.D Musa提出的基于運行剖面的可靠性測試方法[6],另一種是 Mills[7]和 James A.Whittaker[8]提出的基于使用模型的統計測試方法。兩種方法都是基于統計學的基本原理,在統計測試中的一個難點是獲取真實的使用模型,而確認使用模型中各模塊間的轉移概率是難點中的難點,目前主要依靠領域專家經驗估計得到一個具體的概率,領域專家的估計會加入自身的主觀意識,不夠客觀,有時會與真實的使用情況有出入。
國內外一些學者對 Markov鏈使用模型優化做了大量研究,國外學者在模型優化的研究更深入,比如X. Devroey等人提出軟件測試中的優先級劃分方法[9],J. Smith等人根據同行評審提升測試效果[10],M. Garg則對各種充分性判定方法進行了比較分析[11];近些年,國內學者在 Markov鏈使用模型優化中也做出了很多努力,如2005年,顏炯基于UML圖拓展對Markov模型進行了深入而全面的研究,在實時軟件的統計約束等方面都做了很好的描述[12],2009年的馬成功等人先后就Markov模型中的缺陷提出了二階 Markov鏈的使用模型[13-14],2010年,Lulu等人將軟件測試和自學習結合[15],2012年,Yi Jin等人針對測試中軟件缺陷的不同程度劃分等級,從而給出了新的軟件可靠性衡量標準[16],2014年,Gary Yu-Hsin Che針對測試用例的不同測試點,提出了測試用例優先級排序的方法[17]。2015年,Yang Zhao等人提出了三區間參數的Markov模型優化方法[18]。
本文以優化 Markov鏈使用模型進行軟件可靠性測試研究,該研究的核心問題在轉移概率的確認,本文將時下互聯網行業流行的可用性測試融入可靠性測試,采取細分軟件用戶類型策略,選擇具有代表性的用戶進行簡化的可用性測試,通過對可用性測試的記錄單分析、統計得出轉移概率,構造出一種基于可用性測試結果的 Markov鏈使用模型。最后使用本文方法對一電子商務平臺進行 Markov鏈使用模型建模,指導讀者使用該優化模型方法。
使用模型是指系統使用中所有可能的情形及其發生的概率。Markov鏈使用模型是使用馬爾可夫過程來描述軟件使用過程,依據馬爾可夫過程的性質可知,該模型下任何下個狀態只依賴于當前狀態,與歷史狀態無關。
Markov鏈使用模型是由狀態、邊、轉移條件及轉移概率組成的。狀態表示軟件在實際使用過程中的某一具體狀態;邊表示軟件在使用過程中狀態間的轉移關系即從一個狀態轉移到另一個狀態;轉移條件是軟件在使用過程中發生狀態轉移的條件;轉移概率是軟件在使用過程中轉移條件出現后,軟件從某一狀態轉移到另一狀態的概率。每一個使用模型都有一個初態和至少一個終態。初態是使用模型的初始狀態,是軟件一次使用的開始。終態是使用模型的終止狀態,是軟件一次使用的終止。軟件的使用模型就是從初始狀態開始,經過若干個中間狀態,最終到達某一終止狀態的遷移。值得一提的是,每個狀態的所有出邊的轉移概率之和為 1,初態只有出邊沒有入邊,終態只有入邊沒有出邊。
圖1是簡單的 Markov鏈使用模型范例。其中Enter為初態,Exit為終態,集合S={S0, S1, S2}為中間狀態,集合Condition={a, b, c, d, e, f, g}為轉移條件,轉移條件后為其轉移概率。

圖1 簡單的Markov鏈使用模型范例Fig. A example of simple markov chain using model
構建軟件 Markov鏈使用模型依據的是軟件的需求說明文檔,不需要軟件的代碼,所以軟件的Markov鏈使用模型的構建工作無需在軟件完成后啟動,可與軟件開發工作并行開展,在一定程度上縮減了工作時間。在 Markov鏈使用模型的構建過程中要根據需求說明文檔中的相關內容確定其實際構成中的各個元素,分別為:狀態、邊、轉移條件和轉移概率,需要經歷兩個環節[19]:
第一步是通過需求說明文檔和歷史數據確定軟件運行中具體執行過程中的狀態和各個狀態間的關聯關系(邊)。在第一步中通過需求說明文檔對于軟件各功能模塊的描述可以確定使用模型中的各個狀態,通過文檔中對于功能模塊間的交互描述可確定狀態間是否具有關聯關系即邊。
第二步是確定模型中狀態轉移條件及轉移概率。目前,工程實踐中有效確認方案有:
(1)每個狀態間的轉移概率都假設相同;
(2)由可靠性測試人員與領域專家根據需求說明文檔及相關經驗估計轉移概率;
(3)當可靠性測試人員有軟件使用信息時,可通過AHP方法或者輪盤賭算法來確定轉移概率。
顯然,以上三種確定轉移概率的方法都有自身的局限性,方法(1)假設轉移概率都相同沒有考慮軟件間功能使用頻次的差異,誤差大;方法(2)可靠性測試人員根據需求文檔及經驗進行估計,個人的主觀看法不一定能代表用戶的實際使用情況,可能存在較大誤差;方法(3)需要軟件使用信息即表示該軟件是開發完成可進行使用的狀態,意味著使用模型構建需與軟件開發工作串行開展,不利于節省人工。基于以上三個方法的局限性,本文提出優化Markov鏈使用模型的方法。
本文將優化Markov鏈使用模型的重點聚焦在確認使用模型的轉移概率上,借鑒可用性測試利用典型用戶進行測試的想法,結合可用性測試的實際情況對 Markov鏈使用模型的構建過程進行了優化。
國際標準化組織(ISO)在 IOS FDIS 9241-11標準中認為,可用性是指當用戶在特定的環境中使用產品完成具體任務時,交互過程的有效性、交互效率和用戶滿意度[20]。可見,可用性主要針對的是軟件的有用性和有效性。
可用性測試是對軟件可用性進行評估的一種方法,它由測試者邀請用戶使用產品原型或產品完成操作任務,通過觀察、記錄和分析用戶行為和相關數據對軟件可用性進行評估。可用性測試適用于產品界面和界面原型的評估,通常需要在一個裝有攝像和監視裝置的專門實驗室內進行。由于在使用模型構建過程中關注的并不是產品界面,本文在后文中借鑒可用性測試方法的部分會對其測試側重點及部分測試過程進行適當的修改。

圖2 可用性測試步驟Fig.2 Usability testing steps
圖2是可用性測試步驟[21]。其中,“準備測試對象”、“準備測試環境”和“招募用戶”可以同時進行且必須在“確定測試目標”之后,確認測試目標是一切的前提。當準備好測試對象、系統以及用戶后開始進行測試。可用性測試結束后分析測試人員在測試過程中收集的用戶行為反應數據并撰寫報告。
本文利用可用性測試為構建 Markov鏈使用模型提供轉移概率,關注的是軟件各系統模塊(狀態)之間的轉移頻次,不是軟件的界面,針對此實際情況,結合互聯網公司的可用性測試經驗[22],在此對本文用到的簡化的可用性測試步驟進行定義及說明。
簡化的可用性測試共分為五大階段,與圖2的可用性測試步驟對比說明如下:
簡化的可用性測試是服務于構建使用模型的,因此它的測試目標十分明確即確定軟件各功能模塊之間的轉移頻次,我們默認該測試目標是運用簡化的可用性測試的條件,因此在簡化的可用性測試步驟中不涉及“確認測試目標”。

圖3 簡化的可用性測試步驟Fig.3 Simplified usability testing steps
1. 在“準備測試對象”階段被測對象可以是產品原型也可以是開發完全的產品,這為構建軟件使用模型與軟件開發并行開展提供了條件。
2. 在“準備測試環境”階段,由于我們使用此簡化的可用性測試是為獲得最符合軟件真實使用情景的轉移概率,因此測試環境最好是在用戶真實使用軟件的場所,只需對用戶操作軟件原型或軟件的屏幕進行錄制用于后期分析即可。
3. 相對于圖2中的“招募用戶”階段,簡化的可用性測試要進行細分,更名為“確定測試用戶”,包括四個子階段,分別是:(1)“確定目標用戶”,通過軟件需求文檔及公司戰略目標確定軟件的目標用戶;(2)“確定目標用戶重要度”,確定軟件各功能模塊是為哪些類目標用戶設計,目標用戶每多一個主要供其使用的功能模塊就將其重要程度加 1,目標用戶的重要程度初值都設為 1(目標用戶都是軟件投入使用可能涉及到用戶,都應納入選擇測試用戶的范疇,但不同的功能模塊對不同類的目標用戶支持程度不同,使用中涉及到越多功能的用戶,占參與測試的用戶比例應越大,特引入重要程度這一變量);(3)“確定目標用戶比率”,根據各類目標用戶重要程度值的大小確定該類用戶在招募用戶中的占比;(4)“招募用戶”,發布招募信息招募參與測試的用戶。
4.“測試”階段,分兩種情況,一是若測試使用的是開發完成的可用軟件則可在測試開始前由開發人員為軟件各個功能模塊的進入與跳出埋點進行記錄,二是人工觀察記錄各功能間的轉移情況及次數。
5.“分析結果、獲取數據”階段,依據獲得的數據計算使用模型各邊的轉移概率。
圖3為本文簡化的可用性測試步驟。
簡化的可用性測試,是用于輔助優化 Markov鏈使用模型的確認轉移概率的方案,相較于 1.2中提到的三種轉換概率確認方案,該方案有三點優勢:(1)依托于可用性測試使用真實用戶進行測試,根據極限的性質可知當參與簡化可用性測試的用戶無限多時統計得到的轉移概率就無限接近于真實值,轉移概率確認更準確;(2)在簡化的可用性測試中選取用戶時選取目標用戶并對不同類型目標用戶依重要程度選取不同的比例,用戶選取依據具體軟件,更有針對性,在參與測試的用戶數量不能達到無限多的理想狀態時,因用戶類型高度匹配被測軟件的目標用戶群而大大提高了轉移概率的精度;(3)在測試階段統計數據的方式多樣,埋點可解放人工、精確獲取我們想要的數據,人工觀察記錄可節省開發資源,同時在軟件開發完成之前即可進行,由于可用性測試中用戶操作速度可控人工觀察記錄也能保證收集的數據的精確度。
一由本實驗室自主開發的圖書電子商務平臺,有兩個業務主角:用戶與管理員,在該平臺,用戶可以瀏覽商品、查詢商品、注冊、登錄、查看購物車、修改購物車、生成訂單、訂單查詢、修改個人信息及留言評論操作,管理員可以登錄,對商品、用戶、訂單、公告信息、留言評論及管理員進行管理。
為其構建本文中優化的 Markov鏈使用模型,第一步通過需求說明文檔確定該圖書電子商務平臺運行中具體執行過程中的狀態和各個狀態間的關聯關系,如圖4、5、6所示。

圖4 某電子商務平臺運行過程Fig.4 The operation of an e-commerce platform
第二步確定模型中各邊的轉移概率,此處利用本文簡化的可用性測試確定。具體步驟如下:
1.“準備測試對象”,本實驗室自主開發的圖書電子商務平臺已經完成開發,故使用該真實系統作為測試對象。
2.“準備測試環境”,本實驗室自主開發的圖書電子商務平臺基于B/S架構,用戶可通過本地瀏覽器進行使用,為在可用性測試中高度還原用戶實際使用場景,測試環境確定為被測用戶家,在進行簡化的可用性測試時利用攝像機對用戶的使用過程進行錄制。
3.“確定測試用戶”,(1)“確定目標用戶”,由需求文檔可知,該電子商務平臺中有管理員、用戶兩個用戶,由于平臺的戰略定位為“編程路上,有我相伴”,目前平臺投放的市場為大學校園,因此平臺用戶主要為正在學習編程的在校大學生,所以本次簡化的可用性測試中需要進行測試的目標用戶為管理員及在校大學生;(2)“確定目標用戶重要度”,首先管理員與在校大學生的重要程度初值為 1,根據需求文檔可知,該電子商務平臺共16個功能,其中注冊、登錄、瀏覽商品、查詢商品、查看購物車、修改購物車、生成訂單、訂單查詢、修改個人信息、留言評論共10個功能為針對用戶設置,登錄、管理商品、管理用戶、管理管理員、管理訂單、管理公告、管理留言共7個功能針對管理員設置,所以在校大學生的重要程度為11,管理員重要程度為8;(3)“確定目標用戶比率”,由于管理員與在校大學生的重要程度分別為 8、11,因此管理員與在校大學生在招募被測用戶中的占比為 8:11;4)“招募用戶”,可利用社交網絡發布招募信息招募參與測試的用戶,本次實驗利用學校BBS招募參與測試的在校大學生,參與測試的管理員則由該電子商務網站的管理員來擔任。

圖5 某電子商務平臺User moduleFig.5 User module of an e-commerce platform

圖6 某電子商務平臺Administrator moduleFig.6 Administrator module of an e-commerce platform
本次簡化的可用性測試選取10名管理員和 14名在校大學生作為參與測試的用戶。
4.“測試”,錄制參與測試的用戶在自己家使用一次從登錄到退出電子商務平臺的全過程。
5.“分析結果、獲取數據”,通過觀看參與測試的用戶的使用全過程,整理得出各狀態間轉移統計表如下:
將利用簡化的可用性測試得出的轉移概率帶入該電子商務狀態轉移圖得出該電子商務網站的Markov鏈使用模型如圖7、8、9。
本實驗通過簡化的可用性測試對真實用戶的真實行為進行統計,使該電子商務平臺的 Markov鏈使用模型中的轉移概率更符合其真實使用情況,更為精確,當實驗中參與測試的用戶無限多時該Markov鏈使用模型可完全描繪該電子商務平臺的實際使用情況。
在經濟、技術高速發展的今天,電子商務商業模式成為時下熱門,電子商務平臺作為電子商務業務的載體需要對電子商務的信息、貨物及資金進行管理和維護,因此電子商務平臺的可靠性至關重要。本文利用簡化的可用性測試對 Markov鏈使用模型進行優化,反映用戶真實使用場景的特性,建立的可靠性測試使用模型更有現實參考價值,該Markov鏈使用模型可指導完成對電子商務平臺的可靠性測試,保證電子商務平臺在真實業務場景中正常運行,從而助力電子商務業務的順利開展。

表1 某電子商務網站各狀態間轉移統計Tab.1 The transfer statistics between various states of an e-commerce website

圖7 某電子商務平臺Markov使用模型(總)Fig.7 The Markov chain usage model of an e-commerce platform (overall)

圖8 某電子商務平臺Markov使用模型(User module)Fig.8 The Markov chain usage model of an e-commerce platform (User module)

圖9 某電子商務平臺Markov使用模型(Administrator module)Fig.9 The Markov chain usage model of an e-commerce platform (Administrator module)
[1] eMarketer. Ecommerce Sales Topped $1 Trillion for First Time in 2012[EB /OL]. 2013-2-5[2014-3-24].
[2] eMarkete. B2C Ecommerce Climbs Worldwide, as Emerging Markets Drive Sales Higher[EB /OL]. 2013-6-27[2014-3-24].
[3] 楊長坡. 1秒32. 5萬筆交易1天賣了1682億 天貓再次刷新紀錄[EB/OL]. http://henan. 163.com/nanyang/17/1113/07/D33S628004398DOR.html, 2017-11-13.
[4] Whittaker J A, ACM Trans. Software Engineering and Methodology [M], 1993, 2(2): 93-103.
[5] Lyu MichaelR. 軟件可靠性工程手冊[M], 劉喜成等譯. 北京: 電子工業出版社, 1996. 110-112.
[6] John D. Musa. Operational profiles in software-reliability engineering [J]. IEEE Software, 1993, 10(2): 14-32.
[7] H D. Mills, M Dyer, R C. Linger. Cleanroom Software Engineering [J]. IEEE Software, 1987(9): 19-24.
[8] J A. Whittaker, J. H. Poore. Statistical testing for Cleanroom Software Engineering [C]//Hawaii International Conference on System Sciences, 1992.
[9] Devroey X, Perrouin G, Cordy M, et al. Towards statistical prioritization for software product lines testing[C].Proceedings of the Eighth International Workshop on Variability Modelling of Software-Intensive Systems. ACM,2014: 10.
[10] Smith J, Tessler J, Kramer E, et al. Using peer review to teach software testing[C]. Proceedings of the ninth annual international conference on International computing education research. ACM, 2012: 93-98.
[11] Garg M, Lai R, Huang S J. When to stop testing: a study from the perspective of software reliability models[J]. IET software, 2011, 5(3): 263-273.
[12] 顏炯. 基于 UML 的軟件統計測試研究[D]. 國防科學技術大學, 2005.
[13] 馬成功. 基于馬爾可夫鏈模型的軟件可靠性測試方法的研究[D]. 電子科技大學, 2009.
[14] 陳麗敏. 基于馬爾可夫鏈模型的軟件可靠性測試方法研究[D]. 電子科技大學, 2010.
[15] Lulu H Y. Optimal Software Testing Case Design Based on Self-Learning Control Algorithm[C]. Parallel and Distributed Processing with Applications (ISPA), 2010 International Symposium on. IEEE, 2010: 478-482.
[16] Jin Y, Xun L, Ping L, et al. Markov Reliability Model Based on Error Classification[C]. Parallel Architectures, Algorithms and Programming (PAAP), 2012 Fifth International Symposium on. IEEE, 2012: 224-231.
[17] Chen G Y H, Wang P Q. Test Case Prioritization in a Specification-based Testing Environment[J]. Journal of Software,2014, 9(8): 2056-2064.
[18] Zhao Y. The optimization method of Markov chain usage model based on three-parameter interval number[C]. Grey Systems and Intelligent Services (GSIS), 2015 IEEE International Conference on. IEEE, 2015: 528-530.
[19] 桂明明. 基于擴展UML的軟件可靠性測試模型構建方法研究[D]. 杭州電子科技大學, 2016.
[20] ISO/DIS 9241-11, Guidance on usability[S], 1997 .
[21] 劉穎. 人機交互界面的可用性評估及方法[J]. 人類工效學,2002, 8(2): 35-38. DOI: 10. 3969/j. issn. 1006-8309. 2002.02. 009.
[22] Steven Krug. 《點石成金 訪客至上的Web和移動可用性設計秘笈》, 2016.
E-commerce Platform Reliability Testing Based on Optimized Markov Chain Usage Model
LI Huan, ZHOU Xiao-guang, XING Ying, YANG Meng-ke, PAN Yan
(School of Automation, Beijing University of Posts and Telecommunications, Beijing 100876, China)
In recent years, with the rapid development of the Internet, consumer habits at home and abroad have undergone tremendous changes. E-commerce has played an increasingly important role in the consumer market. As the infrastructure of e-commerce, e-commerce platform supports the normal flow of information flow, goods flow and capital flow in e-commerce business. Its reliability is of great significance to e-commerce. In this paper, firstly optimize the Markov chain using a simplified usability test model, and then use the optimized Markov chain to model e-commerce platform examples. This paper proposes an optimized Markov chain usage model, which integrates usability tests of the Internet industry at present, and obtains the transition probabilities that meet the actual usage scenarios through usability tests. The established reliability test usage model is more realistic reference value.The reliability testing guided by this model can ensure the stable operation of e-commerce platform and the smooth progress of e-commerce business, which is an important prerequisite for the development of e-commerce.
E-commerce platform; Markov chain; Use model; Usability testing; Reliability testing
C931.6
A
10.3969/j.issn.1003-6970.2017.12.008
本文著錄格式:李喚,周曉光,邢穎,等. 基于優化Markov鏈使用模型的電子商務平臺可靠性測試[J]. 軟件,2017,38(12):42-48
中央高校基本科研業務費專項資金資助(編號:2017RC27);國家自然科學基金項目(編號:61702044), 課題名稱:面向測試用例自動生成的回溯機制研究;基于自適應約束構建與復雜程序結構約束求解的軟件缺陷自動確認研究
李喚(1992-),女,碩士研究生,主要研究方向:物流系統信息化及網絡化,軟件測試;邢穎(1978-),女,講師、碩導,主要研究方向:軟件測試、人工智能;楊萌柯(1987-),女,講師,主要研究方向:智慧物流與電子商務,信息技術應用與管理;潘彥(1978-),男,碩士研究生,主要研究方向:物流信息化,自動化編程。
周曉光(1957-),男,教授、博導,主要研究方向:自動化物流系統,物聯網技術及其應用。