Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > Java基础相关 >

单元测试文献综述 PDF 下载


分享到:
时间:2021-07-10 08:27来源:http://www.java1234.com 作者:转载  侵权举报
单元测试文献综述 PDF 下载
失效链接处理
单元测试文献综述 PDF 下载


本站整理下载:
提取码:6s5n 
 
 
相关截图:
 
主要内容:
一、摘要:
在软件开发过程中,人们对软件进行分析,设计和实现,采用多种方法保证软件质量,但在工作过程中不可避免地会出错。因此,软件产品中隐藏着许多bug,尤其是对于大型和复杂的软件。有些错误是致命的,如果我们不消除这些错误,将遭受巨大的损失。在这种情况下,必须对软件测试进行仔细规划并充分实施。为了保证软件的质量和可靠性,需要在分析,设计等开发步骤完成之前对软件进行严格的技术评价。然而,由于人的能力有限,审查无法发现所有的错误。此外,在编码阶段还导入了许多错误,如果这些错误和缺陷一直持续到软件交付,它们肯定会暴露出来。而在那个时候,纠正这些错误不仅需要付出更高的代价,而且往往会带来非常糟糕的后果。软件测试是软件质量保证的关键步骤,故在软件开始工作之前,需要对软件需求进行分析,最后对设计规范的描述和编码进行了评述。总的来说软件测试是程序检测错误的执行过程。它设计一套测试用例,考虑软件开发每个阶段的内部规范和程序结构,利用这些测试用例运行程序,找出错误的流程。此外,软件系统由一个或多个对象、类、函数、组件或模块的单元构成的。如果要保证软件系统的质量,那首先必须保证组成系统的单元的质量,也就是要开展单元测试活动。通过充分的单元测试确定并修复单元中的问题,从而为系统的质量打下基础。 
二、技术路线:
单元测试通常是自动运行的,但也可以手动运行。通过手动单元测试,可以用于step-by-step教学文档。然而,单元测试的目的是分离程序单元并验证其合法性。自动化使目标更加高效,并能够从上述单元测试中获益。相反,设计不当或精心设计的单元测试可能被认为是包含多个软件组件的集成测试用例。在自动测试中,为了实现隔离的效果,测试在测试框架中从被测试程序单元的特定操作环境执行。单独执行有助于充分揭示被测试代码与其他程序单元或产品数据空间之间的依赖关系。这些依赖性可以通过单元测试排除。此外,单元测试分为静态测试和动态测试:
静态测试技术是单元测试中最重要的方法之一,适用于新开发和重用的代码。通常,它使用工具扫描分析或代码审核等方法在代码完成并成功编译或汇编后进行。测试人员主要由软件开发人员及其开发团队成员组成。同时,静态测试要求编码的标准和规范:
(1)可靠性:经证明,按照某一标准或规范编写的代码比不符合该标准或规范的 代码更可靠,软件缺陷更少。
(2)可读性和维护性。符合设备标准和规范的代码,易读,易理解,易维护。
(3)移植性。代码通常需要在不同的硬件上运行,或者使用不同的编译器进行编 译。如果代码符合标准,则迁移到其他平台相对容易,而且没有任何障碍。
静态测试技术还包括代码评审。它也是一种有效的测试方法。根据相关数据统计,代码审查可以发现超过60%的代码缺陷,它不仅可以有效地发现缺陷,而且可以获得各种缺陷预防经验,为提高代码质量奠定了坚实的基础。即使没有完成所有代码的检查,或者只有部分代码被审查,也尽可能多地执行代码检查。其中,代码评审包括代码走查和正式会议审查。代码互查是日常业务中被最广泛利用的代码评审方法之一,因为实施容易且比较自由,走查是比较正式的代码评审程序。会议审查是通过分阶段检查源代码中的逻辑或语法错误来检查和评估错误的最正式的方法。这不仅需要软件开发者的自我检查,还需要组织代码检查小组来检查代码,因此可以认为这是拿代码与标准和规范对照的补充。
单元测试除了测试其功能外,还需要确保代码在结构上是可靠的,健全的和响应的。 仅使用静态测试是不够的。还要要执行动态测试,即必须要运行单元。为了验证业务逻辑的有效性和单元的实际表现行为,需要设计更合适的测试用例。为了隔离单元,根据被测试单元的接口,以此开发相应的驱动程序和桩程序:(1)驱动程序也称为驱动程序模块,用于模拟被测模块的上层模块,可以调用被测模块。在测试过程中,驱动模块接收测试数据,调用待测试模块,并向待测试模块发送相关数据。(2)桩程序,也称桩模块,用于模拟被测定模块所调用的下层模块。桩模块由被测试模块调用,测试模块通常只进行很少的数据处理。驱动程序和桩程序可以隔离被测试单元并继续测试。驱动程序作为人口,可以设置不同的数据参数来完成不同的测试用例。 此外动态测试包括类测试,由于类是面向对象软件的基本单位,所以面向对象的单元测试通常是基本类或其子类的测试。类的单元测试可以看作是对于类的成员函数的测试。
三、技术工具分析:
3.1现状与应用范围:
单元测试通常用于测试程序代码,这确定了测试工具与特定编程语言密切相关,因此单元测试工具存在于相对不同的编程语言中。大多数集成开发环境都提供单元测试工具,并提供测试驱动开发方法所需的环境。XUnit系列工具是典型的测试工具家族:
(1)JUnit是针对Java的单元测试工具。
(2)CppUnit是C++单元测试工具。
(3)NUnit是C#(.NET)单元测试工具。
(4)HtmlUnit、JsUnit、PhPUnit、PerlUnit、XmlUnit则分别是针对HTML、 JavaScript、PHP、Perl、XML的单元测试工具(框架)
除了上述典型的xUnit 单元测试框架之外,还有Google Test单元测试框架,它是基于xUnit 架构的测试框架,在不同平台上(Linux,Mac OS X,Windows,Cygwin,Windows CE和Symbian)为编写C++测试而生成的,支持自动发现测试、丰富的断言集、用户定义的断言、death测试、致命与非致命的失败、类型参数化测试、各类运行测试的选项和XML的测试报告等。
3.2 Java单元测试工具分析与比较:
Jtest是Java语言的自动化白盒测试工具。 通过自动化Java单元测试和代码标准验证来提高代码可靠性。 首先jtest分析每个java类,然后自动生成并运行junit测试用例。这可以最大限度地覆盖代码并在执行时暴露未处理异常的代码,并可以确保DBC规范开发的代码是正确的。还可以通过扩展测试用例的自动生成功能来添加Junit用例。基于350多个现有编码标准,用户可以自动检查和纠正大多数常见编码规则的偏差,并可以定制和防止代码问题,如未处理的异常,功能错误,内存泄漏,性能问题和安全风险。不过其价格昂贵,但也有其优势:
1)使预防代码错误成为可能,从而大大节约成本,提高软件质量和开发效率。
2)使单元测试——包括白盒、黑盒以及回归测试成为可能。
3)使代码规范检查和自动纠正成为可能。
4)鼓励开发团队横向协作来预防代码错误。

 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐