首页 > 编程知识 正文

单元测试的方法有哪些(单元测试的内容)

时间:2023-05-05 05:34:39 阅读:66369 作者:3550

一、单元测试概念

单元是指实现简单功能的函数。 单元测试是指只在一组特定的输入(测试用例)中测试函数是否正常工作并返回正确的输出。

测试的封面种类

1 .语句覆盖:语句覆盖是设计一些测试用例,并运行被测试程序,使每个可执行语句至少执行一次。

2 .判断盖(也称为分支盖) )设计几个测试用例,运行测量的程序,至少执行一次程序中每次判断的真正分支和假分支。

3 .条件覆盖:设计足够的测试用例,运行测量的程序,使程序中每个判断的每个条件的可能值至少运行一次。

4 .判定——条件涵盖:设计足够的测试用例,运行测量的程序,以便程序中的每个判定的每个条件的可能值运行至少一次,并且每个可能的判定结果也至少运行一次。

5 .条件组合测试:设计足够的测试用例,运行测量的程序,至少运行一次程序中每个判断的所有条件取值组合。

6 .路径测试:必须设计足够的测试用例,运行测量的程序,覆盖程序中所有可能的路径。

用例的设计方案主要如下。 条件测试,基本路径测试,循环测试。 通过以上方法,可以实现测试用例对程序的逻辑覆盖和路径覆盖。

二.开始测试前的准备

在开始测试时,首先声明无论测试用例设计得多好,无论测试计划有多完善,都不可能完全100%地发现所有错误。 我们需要的是用最少的资源进行最多的测试检查,平衡并保证程序的正确性。 全面的测试是不可能的。 因此,要进行现在的单元测试,选择现在普遍使用的基本路径测试法。

三.开始测试

基本路径测试法:设计的测试用例保证每个基本独立路径至少执行一次。

函数说明: i_flag=0; 返回i_count 100

i_flag=1时; 返回i_count *10

否则返回i_count *20

输入参数: int i_count、

int i_flag

输出参数: int i_return;

代码:

1inttest(intI_count,int i_flag )。

2 {

3 int i_temp=0;

4while(I_count0)

5 {

6if(0==I_flag ) )。

7 {

8 i_temp=i_count 100;

9布莱克;

10 }

11 else

12 {

13if(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行不是节点。 因为节点的选择有规则。 看看程序吧; 第二行、第三行按顺序执行。 直到第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。 这个结果对我们有什么意义呢? 这表明我们最多可以在四个测试用例中达到基本的路径覆盖。

3 .导出程序的基本路径。

我知道现在至少要写四个测试用例,你怎么设计这四个测试用例?

导出程序基本路径,并根据程序基本路径设计测试实例。

基本路径:基本独立路径是指从程序的开始节点到结束节点选择任意路径进行遍历。 但是,每个路径必须至少包含一条未使用定义路径的边。 (看起来很难理解,我们来看看例子吧。

看看上面的流程图吧。 节点4到24有多少条路径?

1b (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 )要计算吗?

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。