| 首页 ┆网站地图 ┆在线留言 ┆游戏资讯 ┆资源下载 ┆端午节祝福 ┆迅雷在线影视 ┆淘宝网购物推荐 ┆淘宝特价数码专区 | |
![]() | ||
| 编程学堂> JAVA专区 | .NET专区 | PHP 专区 | ASP 专区 | C/C++ | JAVASCRIPT | 数据库 | 软件工程 | 网络技术 | 网站制作 | 编程相关 | 硬件资讯 | |
| 业界相关> 业界新闻 | 操作系统 | 办公技巧 | 病毒安全 | 图形图像 | 常用工具 | 资源下载 | 网站推广 | 即时通讯 | IT故事 | IT健康 | QQ--开心网 | |
| ※高级搜索 |
| 您当前的位置: 主页>软件工程>软件测试>什么是单元测试?如何编写单元测试用例? |
| 什么是单元测试?如何编写单元测试用例? | |
| 来源: 发布时间:2008-04-25 浏览:人次 字体:[大 中 小] |
| 一、 单元测试的概念 单元通俗的说就是指一个实现简单功能的函数。单元测试就是只用一组特定的输入(测试用例)测试函数是否功能正常,并且返回了正确的输出。 测试的覆盖种类 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 } 1.画出程序控制流程图 圈中的数字代表的是语句的行号,也许有人问为什么选4,6,13,8......作为结点,第2行,第3行为什么不是结点,因为选择结点是有规律的。让我们看程序中;第2行,第3行是按顺序执行下来的。直到第4行才出现了循环操作。而2,3行没有什么判断,选择等分支操作,所以我们把2,3,4全部合并成一个结点。其他的也是照这个规则合并,然后就有了上面的流程图。 2.计算圈复杂度 有了图以后我们要知道到底我们有写多少个测试用例,才能满足基本路径测试。 这里有有了一个新概念——圈复杂度 圈复杂度是一种为程序逻辑复杂性提供定量测试的软件度量。将该度量用于计算程序的基本独立路径数目。为确保所有语句至少执行一次的测试数量的上界。 公式圈复杂度V(G)=E+N+2,E是流图中边的数量,N是流图中结点的数量。 公式圈复杂度V(G)=P+1 ,P是流图G中判定结点的数量。 通俗的说圈负责度就是判断单元是不是复杂,是不是好测试的标准。一般来说如果圈复杂度如果大于20就表示这个单元的可测试性不好,太复杂(也许有人觉得无所谓,但是如果你们公司实行了CMMI5的话,对这个是有规定的)。 从图中我们可以看到, V(G)=10条边-8结点+2=4 V(G)=3个判定结点+1=4 上图的圈复杂图是4。这个结果对我们来说有什么意义呢?它表示我们只要最多4个测试用例就可以达到基本路径覆盖。 3.导出程序基本路径。 现在我们知道了起码要写4个测试用例,但是怎么设计这4个测试用例? 导出程序基本路径,根据程序基本路径设计测试用例子。 程序基本路径:基本独立路径就是从程序的开始结点到结束可以选择任何的路径遍历,但是每条路径至少应该包含一条已定义路径不曾用到的边。(看起来不好理解,让我们看例子)。 让我们看上面的流程图:从结点4到24有几条路径呢? 1 B(4,24) 2 C,E,J(4,6,8,24) 3 C,D,F,H,A,B(4,6,13,15,22,4,24) 4 C,D,G,I,A,B(4,6,13,19,22,4,24) 还有吗?? 5 C,D,C,I,A,C,E,J(4,6,13,19,22,4,6,8,24)算吗? 关注此文的读者还看过: |
↓下一篇:什么是黑盒测试及其测试常用的方法介绍 |
| §最新评论:(评论内容只代表网友观点,与本站立场无关!) |
| 注意:请勿在本站发布政治话题、色情及违反法律的内容。 |
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。 |
| 推 荐 文 章 |
| ·如何调试一个跑10000次只失败 | ·谈谈敏捷开发中的7种测试类型... | ·什么是黑盒测试及其测试常用... | ·软件测试过程模型图介绍:V模 | ·谈谈单元测试假成功和假失败... | ·详解单元测试中的问题和解决... | ·如何使用NUnit进行并发测试? | ·为什么需要软件测试及其软件... | ·.net测试覆盖率工具:clover.... | ·软件测试过程中,测试数据如何 | ·几款开放源代码的软件测试工... | ·测试人员应该如何报bug? |
| 图 文 推 荐 | |
![]() | 软件测试:通过WinDbg条件断点收集Log |
![]() | 软件测试过程中,测试数据如何准备? |
![]() | 详解单元测试中的问题和解决方案 |
| 热 门 文 章 |
| ·软件测试过程模型图介绍:V模... | ·什么是黑盒测试及其测试常用... | ·软件测试中如何做好bug统计的... | ·为什么需要软件测试及其软件... | ·测试工作应该做什么?测试人... | ·对比负载测试、压力测试和性... | ·软件测试过程中,测试数据如何... | ·谈谈敏捷开发中的7种测试类型... | ·举例谈谈项目测试工作指导性... | ·软件测试缺陷报告实用写作技... | ·测试人员应该如何报bug? | ·如何使用NUnit进行并发测试? | ·软件测试中常用的一些技巧与... | ·软件测试:通过WinDbg条件断... | ·几款开放源代码的软件测试工... |
| 网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 广告服务 - 返回顶部 - XP系统下载(www.ghost2.cn) Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved . | ![]() |
|