基于模型软件测试综述.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于模型软件测试综述

基于模型软件测试综述   【摘 要】面向对象软件开发应用越来越广泛,自动化测试也随之被程序员认可和接受,随之而来的就是基于UML的软件开发技术的大范围普及和基于模型的软件测试技术的普遍应用。由于被测软件的特点不同,测试的目的也不尽然相同,测试模型相对应的就会有很多种类。笔者在本文详细描述了基于模型的软件测试技术的现状,同时对于不同模型在测试中适用情况做了深入的比较,主要讨论了有限状态机模型、马尔可夫链模型和UML模型。文章最后,笔者就该种测试方法的未来发展前景做了分析。   【关键词】基于模型的软件测试,有限状态机,UML   一、引言   软件工程一直在探讨的一个问题就是提高软件质量的有效方法,无疑软件测试时解决这一问题最重要和直接的方法。软件测试的划分方法有很多种,主流的方法是将软件测试分为针对于程序代码本身的测试和针对于软件编写规范化的测试。针对程序代码本身的测试主要是依据代码语句编写测试用例,然后用测试用例对代码进行测试,直到能够完全测试代码的所有分支路径为止,我们称之为测试完全性原则。针对于软件编写规范化的测试主要是依据软件要实现的功能和设计规范进行用例设计,然后对与之相关的功能和设计属性进行测试,知道能够完全测试所有关联的属性为止,我们认为这样的测试是完全的。近年来,面向对象的软件开发逐渐普及,随之而来的是测试自动化的要求有着显著的提高,这种种技术的发展蓬勃带来了一个必然的后果就是基于模型的软件测试技术越来越被广大程序员接受。此类测试方法从上文的分类上来看属于针对于软件编写规范化的测试,最初主要适用于硬件方面的测试。本文主要介绍几种主要的测试模型以及各自的适用范围,然后阐述了构造模型的必需信息以及测试用例的生成方式。   二、基于模型的软件测试和模型   (一)基于模型的软件测试.首先应该要明确软件模型的概念,是指用抽象化的方式对软件行为和结构进行阐述,前者可以通过一系列的输入输出逻辑和数据流分析来表示,后者则是通过部署图、流程图等图形方式直观表述,基于模型的软件测试就是通过上述两种抽象化方式产生测试用例。相比于针对程序代码本身的测试,基于模型的测试更高效,同时也促进了测试的自动化,使得测试结果更加的准确,也更利于评价。   (二) 软件测试的模型简介.本文主要介绍以下几种典型的模型:   1.有限状态机 该类模型是用状态转移图来表示,并通过状态的覆盖来生成测试用例。这种模型可以将测试用的数据结合图的遍历算法自动生成输入的序列进行相应测试。该种测试模型可以充分结合形式语言与自动机理论来进行分析和设计,适用范围主要是反应式的软件,但由于模型构造的工作规模比较大,自动构造就成为了这一模型的一个关键点。   2. UML模型 又称为统一建模语言,是软件工程中面向对象设计与分析中常用到的规范化建模语言。该模型主要是利用状态图进行行为建模,状态图可以看做是有限状态机的拓展,状态图是一个层次分明的图,可以包括更多低级的有限状态机,低级状态机之间是并行的关系。UML状态图广泛用于对于单个类的建模。   3. 马尔可夫链 常见于数理统计中,是一种统计类模型,也是一种状态机,不同的是马尔可夫链的状态迁移带有概率特征,可以利用概率自动生成测试用例并对测试的结果进行系统且准确的分析。马尔可夫链模型具有很大的适用范围,可以通过状态迁移图来表征。   4.文法模型 实际上是将状态机的不同状态用相应的文法来表示,国内外学者对这方面的研究比较少。   三、基于模型的软件测试过程及相应软件   (一)分析被测软件.这个过程需要充分了解软件的设计需求、用户使用手册;软件用户的识别,穷举用户输入值并对输出做一预期;记录输入和相应的条件;深入理解软件内部构造,进行相应测试进而发现缺陷。   (二)选择合适的测试模型.如上文所介绍的测试模型,都有自己所适用的范围,实际测试中要根据测试的需求和软件自身的特点选择合适的模型。具体的选择标准如下:首先要对模型有全面的了解,以确定每种模型对应的测试应用领域;其次要充分理解软件系统,并根据软件的特点结合模型应用领域选用合适的测试模型;最后是应该充分协调组织、人员和工具的配合。   (三)构造测试模型.这一部分需要根据输入输出的具体情况抽象出软件的各个系统状态,然后依据不同的测试模型有相对应的构造过程。   (四)生成和执行测试用例.测试模型一定确定下来,就可以自动生成测试用例了,同时要注意构造测试路径的时候要考虑到迁移概率、路径最大长度等的限制条件。接下来就需要对生成的测试用例进行测试执行了,实际上就是对仿真脚本的测试。   (五)分析测试结果.基于模型的软件测试也并不能完全防止测试效果不佳的问题,也需要我们人工进行复查,这就需要对于测试结果进行分析,通过状态验证解决测试失效辨识

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档