- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
;测试理论;模型检测的基本思想是用状态迁移系统(S)表示系统的行为,用模态逻辑公式(F)描述系统的性质。
“系统是否具有所期望的性质”转化为数学问题“状态迁移系统S是否是公式F的一个模型?”。
对有穷状态系统,这个问题是可判定的,即可以用计算机程序在有限时间内自动确定。;证明系统;断言(Assertation);位于函数尾部的断言可以用来检验是否该方法的计算是期望的结果,或者说可以用来检验计算出的结果是否具有期望的某些属性。
“assert false; ”这个断言表示永远都不会通过,可将其放置于不应该到达的地方,以确保此处不可达。
对断言的使用要确保不会带来任何的副作用,也就是说不会改变实际类的状态。
比如,对于以下迭代器iter的断言是不合适的,因为该断言检测后会导致迭代器状态的改变,使其指向了下一个对象。
assert iter.next()!=null;
;单元测试;测试配置;测试过程也要精确描述,即测试用例执行的顺序以及时间约束等。
测试用例中还要准确的给出期望结果,以便能够与实际结果比较,从而发现缺陷。
对结果的描述也可能会花费较大的精力,这依赖于系统的复杂性。
测试环境会随着测试需求以及测试用例的增加变得更为复杂和难以管理,因此使用测试工具对测试用例进行管理并执行。;测试框架Junit;JUnit可以使用反射机制在测试环境中调用传递过来的方法,所有某类的test测试方法都放在一个测试类中,这个类需要从JUnit提供的系统类TestCase继承而来。
方法setup在每个测试开始之前执行,其中可以对实例变量等环境相关的内容进行设置。
每个测试结束后会执行tearDown方法,比较适合做一些清理工作。
对某些特征进行检验,通过调用源自类TestCase的父类中Assertion的方法。;Junit开发实例;在很多大型的项目开发中,需要对测试用例进行收集和管理并在合适的时刻重复执行所有的测试用例或者根据情况重复执行部分的测试用例,这叫做回归测试。
JUnit使用TestSuite的概念来支持对测试用例集合的管理。首先创建TestSuite对象,然后通过该对象实现对指定测试用例的组织,如代码所示。
JUnit 4的测试代码示例。
JUnit比较适合开发人员对自己创建的单个类??行测试。事实上,JUnit存在一个强有力的竞争对手,即TestNG框架。
两个框架的不同在于它们的核心设计。
JUnit一直是一个单元测试框架,也就是说,其构建目的是促进单个对象的测试;
而TestNG则是用来解决更高级别的测试问题,它具有JUnit中所没有的一些特性,比如依赖性测试、参数化测试以及多线程测试等特性。;可测试性;第一个可测试性构建的原则就是带有很多规模较小方法的类的测试性要好于那些带有较少方法但每个方法的长度较长的类。
方法的长度越长,则对其所有方面的测试就越困难。
第二个原则就是私有方法的可测试性是较差的,因为由于封装的原因普通的JUnit类无法直接对它们进行访问。
在JUnit版本4之后的protected方法的情况将有所好转,因为一个测试类可以从任意的类继承,比如可从测试的目标类继承。
由于private的这个特点,在设计相关的类方法时,应考虑尽量使用它们来完成特别简单的任务。
从可测试性的角度看多态和继承,原则上给测试带来了挑战,因为子类可以对父类的方法或属性进行重定义,对于父类的测试一般不能直接移植到子类上。
;等价类测试;考查一个类的构造方法,用来创建某学生对象的数据,具有名字、出生年份和专业3个属性。名字属性要求不能为空,出生年份要求介于1900和2000之间;专业取值只能是枚举类型,包括“贸易(TRADE)、计算机(CS)、数学(MATH)”中的一个元素。则对于输入数据可产生如下的等价类:
E1) 名字非空(有效)
E2) 名字为空(无效)
E3) 出生年份小于1900(无效)
E4) 出生年份大于等于1900并且小于等于2000(有效)
E5) 出生年份大于2000(无效)
E6) 专业为国际贸易(有效)
E7) 专业为计算机科学(有效)
E8) 专业为工科数学(有效)
;该方法有三个输入,进行调用时要同时指定这些参数,因此总的测试用例的数量与这些等价类的组合相关。
一种组合方式是对于有效等价类要尽可能采用少的测试用例进行覆盖,比如对于E1、E4和E6三个有效等价类可使用一个测试用例同时覆盖。
对于无效等价类则要慎重一些,其覆盖的规则是每个无效等价类必须与其它有效等价类组合测试,以此保证能够触发该无效值对应的专门处理过程。
这种等价类产生测试用例的组合方法称为弱等价类方法。;在等价类的基础上还可以继续应用边界值分析的方法,其做法是对于每个等价类继续测试其所含的边界,使用测试用例覆盖每个边界点以
您可能关注的文档
最近下载
- 境内医疗器械变更注册申报资料电子目录(参考) .pdf VIP
- 结核分枝杆菌合并乙型肝炎病毒感染诊治专家共识.pptx
- 中纤板电器基础详解.ppt VIP
- 社交礼仪——饮茶礼仪(课件-PPT).pptx VIP
- 基础护理学说课-姜丽.ppt VIP
- 河南诗词大赛题库及答案2024.doc VIP
- 2024年新版全员消防安全知识培训【附最新案例】(77页).pptx VIP
- NB/T 35054-2015_水电工程过鱼设施设计规范.pdf
- (完整版)无菌医疗器械耗材生产企业体系文件 质量手册模板.pdf VIP
- 2025-2026学年小学信息技术(信息科技)三年级上册湘科版(2024)教学设计合集.docx
原创力文档


文档评论(0)