TeemuKanstrén是一名科學(xué)家,目前在芬蘭VTT技術(shù)研究中心工作,他還是多倫多大學(xué)的一名客座博士后。他的工作涉及:以改進行業(yè)現(xiàn)狀,和生產(chǎn)實際有用的解決方案并幫助行業(yè)伙伴接受采納它們?yōu)槟康牡淖詣踊瘻y試領(lǐng)域的研究和開發(fā)。他軟件行業(yè)工作了好幾年,已幫助眾多合作伙伴開發(fā)和采用以基于模型的測試技術(shù)為基礎(chǔ)的測試自動化解決方案。他是開源的基于模型的測試工具OSMO Tester的主要創(chuàng)造者。2010年他獲得了芬蘭大學(xué)測試自動化和基于模型的測試的博士學(xué)位。
|
介紹
測試設(shè)計是測試過程中重要的部分之一。一個好的測試用例不僅要為被測系統(tǒng)( SUT )提供一些輸入,還要驗證系統(tǒng)是否如預(yù)期進行。也是說,它有助于確認利益相關(guān)者要求得以實現(xiàn)。但測試設(shè)計可以做的遠不止這些。理想情況下,測試設(shè)計有助于溝通兩方對這些需求的理解,驗證他們能被正確實施,并引發(fā)對利益相關(guān)者可能增加的更大價值的討論。
基于模型的測試(MBT)(下文都簡稱為:基模測試)是一種技術(shù),有時被標(biāo)榜為“自動化測試設(shè)計”。雖然一定程度上這并沒有錯,但它或許會給人以錯誤的印象。基模測試工具從一個由用戶指定的測試模型生成測試用例。沒有測試模型,該工具無法生成任何測試用例。沒有好的測試模型,該工具無法生成好的測試用例。因此,基模測試里,任務(wù)從測試設(shè)計變成了測試模型設(shè)計。不是設(shè)計單個測試集,我們設(shè)計了一個用于生成任何數(shù)量的測試用例的測試模型。
例子
為了給這個概念提供一個具體的理解,首先我們舉一個簡單的例子。這里所說的例子使用OSMO Tester MBT生成器的符號,它基于Java編程語言。這種情況下,測試模型是使用標(biāo)準(zhǔn)的Java編程語言結(jié)構(gòu)編寫的,但卻被設(shè)計成被另一個稱作測試生成器的程序以不同的方式執(zhí)行,以生成測試用例。有時候,這種模型被稱為模型程序。
圖1舉了一個簡化電信系統(tǒng)(其中多個移動終端被連接(注冊)到潛在多個服務(wù)器之一上,彼此相互調(diào)用)的這種符號的例子。
其他類似工具用于各種其他平臺,比如Python (PyModel)和.NET (Spec Explorer, NModel)。其他基于Java的工具和符號,包括ModelJUnit和Conformiq Designer。許多工具也定義了自己的建模語言,并提供一種方法將模型以不同的方式進行可視化。
根據(jù)用戶的喜好,可以選擇不同的工具提供一個熟悉的工作環(huán)境以及不同的算法和不同的特征等。
[BINDER]中可找到一個MBT工具列表。
圖1.模型程序示例