关键词:
编写单元测试用例的方法
一、 单元测试的概念
单元通俗的说就是指一个实现简单功能的函数。单元测试就是只用一组特定的输入(测试用例)测试函数是否功能正常,并且返回了正确的输出。
测试的覆盖种类
1.语句覆盖:语句覆盖就是设计若干个测试用例,运行被测试程序,使得每一条可执行语句至少执行一次。
2.判定覆盖(也叫分支覆盖):设计若干个测试用例,运行所测程序,使程序中每个判断的取真分支和取假分支至少执行一次。
3.条件覆盖:设计足够的测试用例,运行所测程序,使程序中每个判断的每个条件的每个可能取值至少执行一次。
4.判定——条件覆盖:设计足够的测试用例,运行所测程序,使程序中每个判断的每个条件的每个可能取值至少执行一次,并且每个可能的判断结果也至少执行一次。
5.条件组合测试:设计足够的测试用例,运行所测程序,使程序中每个判断的所有条件取值组合至少执行一次。
6.路径测试:设计足够的测试用例,运行所测程序,要覆盖程序中所有可能的路径。
用例的设计方案主要的有下面几种:条件测试,基本路径测试,循环测试。通过上面的方法可以实现测试用例对程序的逻辑覆盖,和路径覆盖。
二、开始测试前的准备
在开始测试时,要先声明一下,无论你设计多少测试用例,无论你的测试方案多么完美,都不可能完全100%的发现所有BUG,我们所需要做的是用最少的资源,做最多测试检查,寻找一个平衡点保证程序的正确性。穷举测试是不可能的。所以现在进行单元测试我选用的是现在一般用的比较多的基本路径测试法。
三、开始测试
基本路径测试法:设计出的测试用例要保证每一个基本独立路径至少要执行一次。
函数说明 :
当i_flag=0;返回 i_count+100
当i_flag=1;返回 i_count *10
否则 返回 i_count *20
输入参数: int i_count
int i_flag
输出参数: int i_return
代码:
1 int Test(int i_count, int i_flag)
2 {
3 int i_temp = 0;
4 while (i_count>0)
5 {
6 if (0 == i_flag)
7 {
8 i_temp = i_count + 100;
9 break;
10 }
11 else
12 {
13 if (1 == i_flag)
14 {
15 i_temp = i_temp + 10;
16 }
17 else
18 {
19 i_temp = i_temp + 20;
20 }
21 }
22 i_count--;
23 }
24 return i_temp;
25 }
软件测试培训第12天
今天花了一整天时间在安装Linux的操作系统,途中遇到各种问题,在老师帮助下逐步慢慢解决。 一.安装gccgcc cloog-ppl ppl(libppl.so.7/libppl_c.so.2)&nbs 查看详情
软件测试培训第7天
今天一天也是快节奏的在讲解CSS结构,CSS的内容分开讲来操作的话是比较简单,但其难就难在内容非常多,需要每天不断地练习来记住每一个用法。一天CSS已经全部讲解完,进度是非常的快,然而... 查看详情
软件测试培训第14天
今天的课程是就Mysql数据库进行了更进一步的练习与讲解,通过自己创建数据表并且添加数据从而进行更复杂的查询练习,对数据库的内容也慢慢有了一些了解:MySql数据类型整型(int)小数(decimal(8,2))字符串(varchar)日期(d... 查看详情
软件测试培训第11天
. 今天的内容通过传输过一些Linux系统上的软件在linux环境下进行安装,由于安装内容和操作都相对庞大所以安装过程中出现了不少问题导致安装进度非常缓慢,最终在临放学之际老师带领着我们从头开始将... 查看详情
软件培训第8天
上午时间将Javascript的部分内容了解了一下,并且也进行了按钮的练习测试,包括弹窗变色,修改的值数等。Javascript内容是非常的多,也是实现网页大部分结构所必需的。梳理下上午所整理的学习... 查看详情
软件测试培训第24天
边界条件测试以边界情况的处理作为主要目标专门设计测试用例的方法。边界条件测试是单元测试中最重要的一项任务。软件经常在边界上失效,边界条件测试是一项基础测试,也是后面系统测试中的功能测试的重点,边界测试... 查看详情
软件测试培训第28天
单元测试单元测试是以程序设计说明书为指导,测试模块范围内的重要控制路径,以揭露错误。当程序编好以后,将它录制在媒体上,或者直接由终端键盘输入到机中进行调试。测试的相对复杂性和所发现的错误受到单元测试所... 查看详情
软件测试培训第4天
...; 继昨天的Mysql数据库的部分查询系统之后,今天则把软件测试中用到的查询命令全部学完,分别是高级查询中的连接查询,联合查询,以及相关子查询。高级查询要比昨天所学的查询复杂不少,命令也比较多,而Mysql的习题... 查看详情
软件测试培训第25天
...就形成了事件流。这种在软件设计方面的思想可以引入到软件测试中,可以生动地描绘出事件触发时的情景,有利于设计测试用例,同时使测试用例更容易理解和执行。在测试一个软件的时候,在 查看详情
软件测试培训第17天
数据表的操作:表的创建1.表是数据库存储数据的基本单位。一个表包含若干字段或记录;语法:create table表名(属性名数据类型[完整性约束条件],属性名数据类型[完整性约束条件],……属性名数据表格[完整性约束条件]);2.主... 查看详情
软件测试培训第18天
数据库的视图视图是一种虚拟的表,是从数据库中一个或者多个表中导出来的表。数据库中只存放了视图的定义,而并没有存放视图中的数据,这些数据存放在原来的表中。使用视图查询数据时,数据库系统会从原来的表中取出... 查看详情
软件测试培训第9天
Linux的命令比起mysql数据库来说相对简单,一些命令执行起来也是非常容易,今天主要认识学习了vi编辑器和权限的相对操作,以下是整理的文档内容: vi编辑器三种模式:命令、编辑、尾行命令到编辑模式的切换:a.光标向... 查看详情
软件测试培训第26天
等价类划分方法一.方法简介1.定义是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。2.划... 查看详情