第五讲单元测试与Junit介绍优秀PPT.ppt
《第五讲单元测试与Junit介绍优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第五讲单元测试与Junit介绍优秀PPT.ppt(77页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单元测试单元测试第五讲第五讲主要内容1.单元测试介绍 2.单元测试 Quick Start3.运用JUNIT4.测试的一些技巧5.边界条件6.MOCK对象简介7.单元测试与软件设计1.单元测试介绍1.1什么是单元测试单元测试是开发者写的一小段代码,用于检验被测代码的一个很小的、明确的功能是否正确。通常而言,一个单元测试是用于推断某个特定条件下某个特定的函数的行为。执行单元测试,是为了证明某段代码的行为确定和开发者所期望的一样。1.2单元测试的目的及早发觉软件开发过程中实现或者设计带来的缺陷跟踪具体设计文档中设计的实现,发觉具体设计文档中存在的错误验证单元代码和具体设计文档的一样性发觉在编码过程
2、中引入的错误单元测试标准是什么单元测试标准通常为具体设计说明书但是在没有具体设计说明书的状况下可以以注释为测试标准单元测试过程单元测试支配单元测试设计单元测试实现单元测试执行单元测试评估单元测试支配时辰表工作量任务安排资源支配测试工具结束标准风险分析风险应对输出单元测试支配文档单元测试设计对哪些单元进行测试被测单元的关系被测单元与其他模块的关系测试策略选择如何设计测试用例如何设计单元测试代码输出单元测试用例文档单元测试实现编写测试用例编写测试规程测试脚本编写测试驱动构建桩构建输出测试用例输出测试规程输出测试代码和脚本单元测试执行搭建测试环境执行测试脚本记录测试结果跟踪缺陷回来测试输出单元测试报
3、告单元测试策略自顶向下的单元测试方法 先对最顶层的单元进行测试,把顶层单元所调用的单元做成桩模块。其次对其次层单元进行测试,运用上面已测试的单元做驱动模块。依次类推直至测试完全部的模块。优点 可以节约驱动函数开发的工作量,测试效率较高缺点 随着被测单元一个个的加入,测试过程将变得困难,并且开发和维护的成本将增加。自底向上的单元测试孤立的单元测试混合的单元测试自底向上的单元测试先对最底层的单元进行测试,模拟主调单元构建驱动模块。然后再对上面一层做单元测试,用下面已经测试通过的模块做桩模块。依次类推,直至测试完全部的模块。优点 可以节约桩模块开发的工作量,测试效率高缺点 不是纯粹的单元测试,底层函
4、数的测试质量对上层函数的测试将产生很大的影响。孤立的单元测试方法 不考虑模块和模块之间的关系,为每个模块设立桩模块和驱动模块。每个模块进行独立的单元测试优点 该策略最简洁,最简洁操作。可以达到很高的覆盖率。似乎纯粹的单元测试缺点 该策略效率很低,须要构建大量的驱动和桩混合的单元测试自顶向下和自底向上的测试策略综合了集成的概念,随着单元测试的进行,可以看到系统一个初步集成的概貌,但是测试覆盖率会越来越难保证。并且在每个单元测试之前必需保证相关的单元的正确性。孤立的测试策略比较独立,覆盖率简洁保证,并且可以并行进行,但工作量大。所以接受混合方法比较好。单元测试用例设计单元测试用例设计方法黑盒白盒单
5、元测试用例编写思路为系统运行起来设计测试用例为正向测试设计用例为逆向测试设计用例为满足特殊需求而设计用例为代码覆盖而设计测试用例单元测试用例设计五要点单元接口局部数据结构独立路径出错处理边界条件理解需求和设计设计测试用例搭建单元测试环境执行测试补充和完善测试用例分析结果,给出评价1.3 我须要做什么呢它的行为和我的期望一样吗?它的行为始终和我的期望一样吗?我可以依靠单元测试吗?单元测试说明我的意图了吗?1.4不写单元测试的借口编写单元测试太花时间了运行测试的时间太长了测试代码并不是我的工作我并不清晰代码的行为,所以也就无从测试但是这些代码都能编译通过公司请我是为了写代码,而不是写单元测试假如我
6、让测试员失去工作,我会觉得内疚公司不会让我在真实系统中运行单元测试2.单元测试 Quick Start2.1测试对象找寻数组中的最大数:public class Largest public static int largest(int list)int index,max=Integer.MAX_VALUE;for(index=0;index max)max=listindex;return max;2.2设计测试排序测试:【9,7,8】9【7,9,8】9【7,8,9】9重复值:【7,9,8,9】9单值:【1】1负值:【-9,-8,-7】-7.空值2.3执行测试执行测试并修正错误理解单元测试
7、3.运用JUNITJunit简介Junit的定位Junit的安装Junit的体系结构Junit的运用3.1构建单元测试 TestAccount.java Account.java准备要测试的条件调用要测试的方法验证被测试方法的行为是否和结果一样完成后清理各种资源testCreateAccount()testCreateAccountDef()testCreateAccountDup()createAccount()3.2 JUNIT的各种断言lassertEquals(String message,expected,actual)lassertEquals(String message,exp
8、ected,actual,tolerance)lassertNull(String message,Object object)lassertNotNull(String message,Object object)lassertSame(String message,expected,actual)lassertNotSame(String message,expected,actual)lassertTrue(String message,boolean condition)lassertFalse(String message,boolean condition)lfail(String
9、 message)l自定义断言3.3 JUNIT框架import junit.framework.*;/引入测试包public class TestSimple extends TestCase/继承 TestCase public TestSimple(String name)/默认运用父类的实例化方法 super(name);public void testAdd()/书写以test开头的断言,凡是以test开头的都会 /被junit自动运行 assertEquals(2,1+1);public void testAdds()/一个测试方法里也可以有多个断言 assertEquals(2,
10、1+1);assertEquals(4,2+2);assertEquals(-8,-12+4);测试类也能调用其他测试类:单独的类、包、甚至完整的一个系统。这可以通过创建test suite来取得。任何测试类都能包含一个名为suite的静态方法:Public static Test suite();现假设有第2个类TestClassTwo,它运用brute-force算法来找寻旅行销售商Bob的最短行程。但这个算法是困难度是指数级的。默认状况下你不想包括这些测试。3.4 JUNIT测试的组成(1)import junit.framework.*;public class TestClassTw
11、o extends TestCase public TestClassTwo(String method)super(method);public void testLongRunner()public void testShortTest()public void testAnotherShortTest()public static Test suite()TestSuite suite=new TestSuite();suite.addTest(new TestClassTwo(“testShortTest”);/装入测试方法 suite.addTest(new TestClassTwo
12、(testAnotherShortTest);return suite;3.4 JUNIT测试的组成(2)import junit.framework.*;public class TestClassComposite extends TestCase public TestClassComposite(String method)super(method);static public Test suite()TestSuite suite=new TestSuite();/执行第一个测试类全部的测试 suite.addTestSuite(TestClassOne.class);/执行其次个测
13、试类中指定的测试 suite.addTest(TestClassTwo.suite();return suite;假设对于每个测试,你都须要某种数据库连接,这时,你不须要在每个测试方法中重复建立连接和释放连接了,而只须在setup和teardown方法中分别建立和释放连接。执行每个测试方法之前会执行setup,之后会执行teardownJUnit和异样对测试而言,下面两种异样我们可能会感爱好:从测试代码抛出的可预料异样。由于某个某块(或代码)发生严峻错误,而抛出的不行预料异样。如有一个名为sortMyList()的方法,假如传入参数是一个nulllist,那么我们希望该方法抛出一个异样。在这种
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第五 单元测试 Junit 介绍 优秀 PPT
限制150内