软件测试2019:第二次作业

(1)单元测试的定义

按阶段测试是一种基本的测试策略,单元测试是测试执行过程的第一个阶段。单元测试是编写测试代码,用以检测特定的、明确的、细颗粒的功能!  严格来说,单元测试只针对功能点进行测试,不包括对业务流程正确性的测试。单元测试不仅仅是要保证代码的正确性,一份好的单元测试报告,还要完整地记录问题的所在和缺陷以及正确的状态,方便后面代码的修复,重构和改进;

(2)单元测试目的

首先保证代码质量,

其次保证代码的可维护,

再此保证代码的可扩展,目的之一代码的代码质量;

(3)单元测试的一般步骤

1.接口功能性测试: 接口功能的正确性,即保证接口能够被正常调用,并输出有效数据

是否被顺利调用

参数是否符合预期

2.局部数据结构测试:保证数据结构的正确性
变量是否有初始值或在某场景下是否有默认值
变量是否溢出
3.边界条件测试:测试
 变量无赋值(null);
变量是数值或字符;
主要边界:最大值,最小值,无穷大;
溢出边界:在边界外面取值+/-1;
临近边界:在边界值之内取值+/-1;
字符串的边界,引用 "变量字符"的边界;
字符串的设置,空字符串;
字符串的应用长度测试;
空白集合;
目标集合的类型和应用边界;
 集合的次序;
 变量是规律的,测试无穷大的极限,无穷小的极限;

4.所有独立代码测试:保证每一句代码,所有分支都测试完成,主要包括代码覆盖率,异常处理通路测试
 语句覆盖率:每个语句都执行到了
 判定覆盖率:每个分支都执行到了
条件覆盖率:每个条件都返回布尔
路径覆盖率:每个路径都覆盖到了

5.异常模块测试,后续处理模块测试:是否包闭当前异常或者对异常形成消化,是否影响结果。

JAVA的单元测试JUNIT4,Junit是以Java为框架的测试,目前开发所用的单元是Junit框架

(1):业务流程的一般是按照需求的预期效果,跑完整个业务流程,包括以前开发的流程
是否实现了预期
是否影响到了以前的流程
全流程是否顺利
数据是否符合预期

(2):代码测试:

@BeforeClass 全局只会执行一次,而且是第一个运行
@Before 在测试方法运行之前运行
@Test 测试方法
@After 在测试方法运行之后允许
@AfterClass 全局只会执行一次,而且是最后一个运行
@Ignore 忽略此方法
JUNIT4是以org.junit为框架进行的测试,以注解的形式来识别代码中需要测试的方法

(3):断言测试与及常用断言:

断言列表:
-------------->assertTrue(String message, boolean condition)             要求condition == true
-------------->assertFalse(String message, boolean condition)            要求condition == false
-------------->assertEquals(String message, XXX expected,XXX actual) 要求expected期望的值能够等于actual
-------------->assertArrayEquals(String message, XXX[] expecteds,XXX [] actuals) 要求expected.equalsArray(actual)
-------------->assertNotNull(String message, Object object)          要求object!=null
-------------->assertNull(String message, Object object)             要求object==null
-------------->assertSame(String message, Object expected, Object actual)     要求expected == actual
-------------->assertNotSame(String message, Object unexpected,Object actual) 要求expected != actual
-------------->assertThat(String reason, T actual, Matcher matcher)  要求matcher.matches(actual) == true

-------------->fail(String message) 要求执行的目标结构必然失败,同样要求代码不可达,即是这个方法在程序运行后不会成功返回,如果成功返回了则报错;

(4):运行器指定:

单元测试中,每个类都是由于JUNIT4框架中的Runner运行器来执行的。一般情况下,在没有指定运行器的时候,是由系统默认选择(TestClassRunner)的运行器执行。包括类中的所有方法都是由该运行器负责调用和执行。当我们需要指定的时候,则通过类级别注解 @进行选择,一般是根据不同类型选择不同执行器;

(5):参数化测试:

参数化测试的目标是为了一次性完成同类型测试,将相同类型的数据按照一定的顺序批量地传入测试方法,并得出结论;

为了测试类指定一个ParameterizedRunner运行器

进行参数设置:将测试结果和期望结果,以每一组都是一个数组的形式存放以形成二维数组,转化为list返回并注解

参数初始化:设置测试方法要入参的参数,并按照"参数设置"的顺序利用构造方法进行初始化的赋值

测试调用:写一个测试方法进行调用,将参数传递到要测试的类的方法中并返回数据

并且参数化测试需要创建一单独用于测试的测试类。并定义两个变量用于接受测试结果和预期目标。数据存放以二维数组的方式,两个为一组,接着便是通过构造方法进行数据初始化;

(6):打包测试:

将有需要的一起执行程序一起打包,然后执行
运行器:Suite. class
我们把需要打包一起测试的测试类作为参数传递给该注解。然后直接运行代码,此处的测试类可以直接设置为空,只需要添加注解;

以上是·我对JUNIT单元测试的简单熟悉。

 

转载于:https://www.cnblogs.com/xiaochenhuimin/p/10586631.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值