精华内容
下载资源
问答
  • 单元测试用例设计

    2012-06-25 21:04:10
    单元测试用例设计
  • 单元测试用例设计技术软件测试输入数据是测试用例的核心,我们对输入数据的定义是:被测试函数所读取的外部数据及这些数据的初始值。外部数据是对于被测试函数来说的,实际上就是除了局部变量以外的其他数据,我们把...
  • 描述单元测试用例设计,提供有单元测试用例模板
  • 本文档举例并描述了单元测试用例设计模板,并且给出了几种设计测试用例的方法
  • 软件单元测试用例设计;逻辑覆盖;语句覆盖法;A = 2 B = 0 CASE1 X = 3;A = 2 B = 0 CASE1路径ace X = 3;条件;测试用例;测试用例;组合编号;测试用例;测试用例; ;基本路径覆盖法是在程序控制流图的基础上通过分析控制...
  • 2021最新产品需求模板系列-单元测试用例设计文档.doc
  • 单元测试用例用来证明一个独立的单元是否实 现了单元设计说明书中的要求 单元测试不仅仅要进行正向测试,同时还应该作逆向测试
  • 详细介绍单元测试用例设计方法,从语句,分支,条件,边界,等价,错误猜测等设计介绍。
  • 本文档介绍了测试说明的一般设计过程,描述了一些结构化程序设计单元测试中采用的用例设计技术,同时也增加了面向对象编程中对类进行单元测试所采用的测试用例设计技术,这些可作为软件测试人员的参考阅读资料。
  • python单元测试用例设计

    千次阅读 2019-05-24 14:37:18
    在刚学习编程的时候总是忘记处理一些特例(尤其是动态语言可以传各种值),为了养成良好的编程和测试习惯,在编写单元测试用例的时候, 我们注意考虑下如下测试用例(等价类划分): 正常值功能测试 边界值(比如最大...

    前言

    在刚学习编程的时候总是忘记处理一些特例(尤其是动态语言可以传各种值),为了养成良好的编程和测试习惯,在编写单元测试用例的时候, 我们注意考虑下如下测试用例(等价类划分):

    • 正常值功能测试
    • 边界值(比如最大最小,最左最右值)
    • 异常值(比如 None,空值,非法值)

    实战操作

    def binary_search(array, target):
        if not array:
            return -1
        beg, end = 0, len(array)
        while beg < end:
            mid = beg + (end - beg) // 2  # py3
            if array[mid] == target:
                return mid
            elif array[mid] > target:
                end = mid
            else:
                beg = mid + 1
        return -1
    
    
    def test():
        """
        如何设计测试用例:
        - 正常值功能测试
        - 边界值(比如最大最小,最左最右值)
        - 异常值(比如 None,空值,非法值)
        """
        # 正常值,包含有和无两种结果
        assert binary_search([0, 1, 2, 3, 4, 5], 1) == 1
        assert binary_search([0, 1, 2, 3, 4, 5], 6) == -1
        assert binary_search([0, 1, 2, 3, 4, 5], -1) == -1
        # 边界值
        assert binary_search([0, 1, 2, 3, 4, 5], 0) == 0
        assert binary_search([0, 1, 2, 3, 4, 5], 5) == 5
        assert binary_search([0], 0) == 0
    
        # 异常值
        assert binary_search([], 1) == -1
    

    当然我们也不用做的非常细致,要不然写测试是一件非常繁琐累人的事情,甚至有时候为了测试而测试,只是为了让单测覆盖率好看点。 当然如果是web应用用户输入,我们要假设所有的参数都是不可信的。 但是很多内部调用的函数我们基于约定来编程,如果你瞎传参数,那就是调用者的责任了。

    展开全文
  • 一概述 0 二基本概念 0 2.1 正面测试 Positive Testing0 2.2 负面测试 Negative Testing 1 2.3 分支测试 1 2.4 黑盒测试 1 2.5 白盒测试 1 三单元测试围 2 四 常见测试用例设计方法及举例 2 4.1 用于语句覆盖的基...
  • 单元测试用例设计原则

    千次阅读 2014-04-23 18:21:29
    问题: 1没有数据构造和清理的过程 用户数据,业务数据 ...单元测试用例目的: 提供覆盖率:  测试的覆盖种类  1.语句覆盖:语句覆盖就是设计若干个测试用例,运行被测试程序,使得每一条可执行语句


    点击查看原文

    问题:

    1没有数据构造和清理的过程

    用户数据,业务数据

    2.没有对业务数据返回和业务逻辑做判断的一个过程

    3. 对于一个业务测试用例单一

    4. 方法名比较乱

    5.测试方法前没有注释

    6.重复代码要重构

     

     

    单元测试用例目的:

    提供覆盖率:

            测试的覆盖种类
            1.
    语句覆盖:语句覆盖就是设计若干个测试用例,运行被测试程序,使得每一条可执行语句至少执行一次。
            2.
    判定覆盖(也叫分支覆盖):设计若干个测试用例,运行所测程序,使程序中每个判断的取真分支和取假分支至少执行一次。
            3.
    条件覆盖:设计足够的测试用例,运行所测程序,使程序中每个判断的每个条件的每个可能取值至少执行一次。
            4.
    判定——条件覆盖:设计足够的测试用例,运行所测程序,使程序中每个判断的每个条件的每个可能取值至少执行一次,并且每个可能的判断结果也至少执行一次。
            5.
    条件组合测试:设计足够的测试用例,运行所测程序,使程序中每个判断的所有条件取值组合至少执行一次。
            6.
    路径测试:设计足够的测试用例,运行所测程序,要覆盖程序中所有可能的路径。
            
    用例的设计方案主要的有下面几种:条件测试,基本路径测试,循环测试。通过上面的方法可以实现测试用例对程序的逻辑覆盖,和路径覆盖。

     

     在开始测试时,要先声明一下,无论你设计多少测试用例,无论你的测试方案多么完美,都不可能完全100%的发现所有BUG,我们所需要做的是用最少的资源,做最多测试检查,

     

    最终目的:通过不通的用例输入来测试代码的业务逻辑问题,在版本发布前提早发现问题。

     

    方式:

    所有用例执行后,能覆盖每行代码。

     

    如何设计测试用例:

     

     1、了解软件的原始需求(测试目的)

      在编写一个软件或者模块的测试用例时候,一定要明白这个功能的原始需求,也就是软件的使用者(客户)的需求。理解原始需求后,编写的测试用例才更有目的性。

      2、熟悉软件的功能需求(测试点)

      这个功能需求是指软件的细化需求点,这个一般在需求文档里面都会体现。这里要做的是把需求稳定的“粗略”的需求,细化成一个个小需求点。

      熟悉功能需求后,要知道软件是怎么使用的,这也才能覆盖到各种操作。

      总之,测试用例一定要全部覆盖所以的需求点,这是最基本的一点。

      3、熟悉软件的实现原理(测试点)

      在理解原始需求和软件的功能需求后,软件有什么功能,如何使用就基本上都知道啦。这时候在根据需求编写测试用例,基本上都能覆盖的比较全面。

      在此基础上,熟悉软件的实现原理,理解软件的内部处理。

      (1)熟悉原理的过程是进一步深入熟悉软件的过程。如果单单是从需求点上面覆盖案例,测试用例只能覆盖“表面”的一层。一些内部的处理流程也许没有覆盖到,

      而这些没有覆盖到的代码很可能就是一个风险点。

      (2)熟悉模块原理后,还有一点就是易于分析软件模块的关联性。一个大型的软件,都是一些小模块的组合而成。软件越是大型,耦合就越大。“互相影响”就会越多,

      设计用例单单是从模块本身考虑的话,很可能就会对其他模块造成风险。

      4、用户场景和网上问题(测试点)

      从用户的使用场景考虑,这些在一些网络设备比较重要。比如软件后期在一些真实的使用环境中使用。

      还要就是从一些网上问题总结出来的,那些地方容易出错。在设计案例的时候需要考虑进去

     

    写好单元测试的建议:

    ·         一次只测试一个代码单元
    当你试图测试一个代码单元,而这个单元有多个用例。

    ·         不要做无谓的断言

    ·         让每个单元测试保持独立

    ·         模拟所有的外部服务和状态

    ·         不要使用测试单元配置

    ·         命名单元测试要清晰一致

    ·         先为那些有最少依赖的方法写单元测试

    ·         不光是对外暴露的方法,所有方法都应该写单元测试

    ·         每个单元测试方法只用一个断言

    ·         为例外和异常创建单元测试

    ·         使用最合适的断言方式

    ·         断言的参数顺序要合适

    ·         确保测试代码独立于生产代码之外

    ·         单元测试内不要有任何打印输出

    ·         测试类中不要有静态变量

    ·         不要写自己的catch代码块,只有test失败的情况,不存在catch情况

    ·         不要依赖间接测试

    ·         使用build脚本整合测试用例

    ·         不要跳过单元测试

    ·         使用XML格式化工具捕获结果

    展开全文
  • 详尽介绍了单元测试的依赖资源 单元测试主要用到的方法 完成的标准 十分的经典
  • 卷号卷内编号密级【行政培训考核系统软件】DYX01-01-2010项目单元测试用例Version 2.0作者: 何晶日期版本说明作者2010-08-020.1修改“后台系统设置”单元测试用例何晶2010-08-030.2修改“批量导入”单元测试用例何晶...

    卷号卷内编号密级

    【行政培训考核系统软件】

    DYX01-01-2010

    项目单元测试用例

    Version 2.0

    作者: 何晶

    日期版本说明作者2010-08-020.1修改“后台系统设置”单元测试用例何晶2010-08-030.2修改“批量导入”单元测试用例何晶2010-08-040.3增加“文章管理”单元测试用例何晶2010-08-050.4修改“学习资讯”单元测试用例何晶2010-08-060.5修改“在线课堂”单元测试用例何晶2010-08-070.6修改“在线测试”单元测试用例何晶2010-08-080.7修改“我的网校”单元测试用例何晶2010-08-091.0通过评审,发布何晶2010-09-162.0修改数据库设置,通过评审,发布何晶

    修订文档历史记录

    目 录

    1.基本信息设置(后台设置)III

    1.1系统管理设置III

    1.2 课程设置III

    1.3 指定测试IV

    1.4在线调查V

    1.5文章管理V

    2.前台测试系统(前台设置)VI

    2.1登录设置VI

    2.2 学习资讯VII

    2.3 在线课堂VII

    2.4 在线测试VIII

    2.5 我的网校IX

    2.6 学习论坛IX

    基本信息设置(后台设置)

    1.1系统管理设置

    用例标识TestCase-行政培训考核系统-001模块名称用户信息管理开发人员陆澍、徐永芹版本号0.1用例作者何晶设计日期2010年08月02日测试人员何晶测试类型□功能□性能□边界□余量□可靠性□安全性□强度□人机界面⊙其它(单元测试)用

    用户管理

    权限分配前

    客户

    进入后台,打开用户管理

    点击 添加用户 进行学员的添加,并可以对学员的信息及档案进行增删改查

    点击用户名称 对用户进行用户权限的分配输

    据姓名:谢鸿鸣 工号:0623001 职务:局长、党组书记 单位:如东工商局机关

    部门:局长室 岗位:综合管理 学历 。。。

    点击 姓名 进行权限分配预

    果将用户信息写入到数据库中

    可以对用户权限进行自由的设置实

    与预期结果相同 结论通过 测试日期2010年08月02日

    1.2 课程设置

    用例标识TestCase-行政培训考核系统-002模块名称课程设置开发人员陆澍、徐永芹版本号1.0用例作者何晶设计日期2010年08月03日测试人员何晶测试类型□功能□性能□边界□余量□可靠性□安全性□强度□人机界面⊙其它(单元测试)用

    对系统中的课程进行设置前

    点击添加,可以对课程进行初始化设置

    对试题和测试参数进行设置

    对题库、题型、难度、题目内容等进行设置输

    果能将试题、难度、题型进行设置,写入数据库实

    测试效果与预期结果一致结论通过测试日期2010年08月03日

    1.3 指定测试

    用例标识TestCase-行政培训考核系统-003模块名称指定测试开发人员陆澍、徐永芹版本号1.0用例作者何晶设计日期2010年08月04日测试人员何晶测试类型□功能□性能□边界□余量□可靠性□安全性□强度□人机界面⊙其它(单元测试)用

    进行参数设置和导入试题,操作和课程设置一样。考试单位、考试部门、考试岗位设置里可单独选指定的单位、部门、岗位人员进行考试,如果其中的某一项不限制考试人员,请全部选择。即这3项设置必须同时设置,不能留空。

    将某类课题指定给某个学员测试输

    据将法律类试题 指定与 刘浩进行测试预

    果将某类试题能指定给某人进行测试实

    测试结合相同结论通过测试日期2010年08月04日

    1.4在线调查

    用例标识TestCase-行政培训考核系统-004模块名称在线调查开发人员陆澍、徐永芹版本号1.0用例作者何晶设计日期2010年08月05日测试人员何晶测试类型□功能□性能□边界□余量□可靠性□安全性□强度□人机界面⊙其它(单元测试)用

    对各类事件进行网上调查前

    选择调查主题类型

    设置调查回答形式

    设置调查内容输

    展开全文
  • Counter单元测试用例以及桩设计的简单描述
  • 如何编写单元测试用例(白盒测试)。 一、 单元测试的概念单元通俗的说就是指一个实现简单功能的函数。单元测试就是只用一组特定的输入(测试用例)测试函数是否功能正常,并且返回了正确的输出。测试的覆盖种类1....


    一、 单元测试的概念

            单元通俗的说就是指一个实现简单功能的函数。单元测试就是只用一组特定的输入(测试用例)测试函数是否功能正常,并且返回了正确的输出。
            测试的覆盖种类
            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 = 1;
     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)算吗?
                不算,为什么?因为上面的4条路径已经包括了所有的边。第5条路径已经不包含没有用过的边了。所有的路径都遍历过了。
                好了,现在我们有了4条基本独立路径根据独立路径我们可以设计测试用例。

                1 B(4,24)
                输入数据:i_count=0,或者是i_count<0的某一个值。
                预期结果:i_temp=0.

                 2 C,E,J(4,6,8,24)
                输入数据: i_count =1;i_flag=0 
                预期结果:i_temp=101.

                 3 C,D,F,H,A,B(4,6,13,15,22,4,24)
                输入数据: i_count =1;i_flag=1 
                预期结果:i_temp=10.


                 4 C,D,G,I,A,B(4,6,13,19,22,4,24)
                 输入数据: i_count =1;i_flag=2     
                 预期结果:i_temp=20.
                
                这里的输入数据是由路径和程序推论出来的。而要注意的是预期结果是从函数说明中导出,不能根据程序结构中导出。
                
                为什么这么说?
                让我们看程序中的第3行。
                int i_temp=1;假如开发人员一不小心写错了,变成了int i_temp=0;根据程序导出的预期结果就会是一个错误的值,但是单元测试不出来问题。
                那单元测试就失去了意义。

                有人也许会问这么简单的函数就有4个测试用例,如果还复杂一些的怎么办?上面的测试用例还可以简化吗?答案是可以。
                我们来看 路径    1 B(4,24)和   4 C,D,G,I,A,B(4,6,13,19,22,4,24),路径1是路径4的真子集,     所以1是可以不必要的。上图的圈复杂度是4。这个结果对我们来说有什么意义呢?它表示我们只要最多4个测试用例就可以达到基本路径覆盖。所以说圈复杂度标示是最多的测试用例个数,不是一定要4个测试用例才可以。不过有一点要申明的是测试用例越简化代表你的测试越少,这样程序的安全性就越低了。

    四、完成测试
                
                接下来根据测试用例使用工具测试NUNIT,VS2005都可以。
                接下来根据测试结果编写测试报告,测试人,时间,结果,用例,是否通过,格式网上一大把,每个公司的格式也不一样就不说了。

    转载于:https://www.cnblogs.com/chxtdbk/p/7447115.html

    展开全文
  • 单元测试就是只用一组特定的输入(测试用例)测试函数是否功能正常,并且返回了正确的输出。 测试的覆盖种类 1.语句覆盖:语句覆盖就是设计若干个测试用例,运行被测试程序,使得每一条可执行语句至少执行一次。 2....
  • 叫你怎么编写测试用例,告诉你什么是黑盒测试和白盒测试,让你尽快的对测试进行入门!
  • 分享给大家供大家参考,具体如下:单元测试测试用例简介测试用例是一组单元测试,这些单元测试一起核实函数在各种情形下的行为都符合要求要为函数编写测试用例,可先导入模块 unittest 以及要测试的函数,再创建一...
  • 单元测试测试用例设计方法 1.用于语句覆盖的基路径法 基路径法保证设计出的测试用例,使程序的每一个可执行语句至少执行一次,即实现语句覆盖。基路径法是理论与应用脱节的典型,基本上没有应用价值,读者稍作...
  • 软件测试用例设计

    2021-03-23 15:10:58
     1、测试用例设计原则  设计测试用例时,应遵循以下原则:  1)基于测试需求的原则。应按照测试类别的不同要求设计测试用例。例如,单元测试依据详细设计说明,集成测试依据概要设计说明,配置项测试依据软
  • 为什么我们要写单元测试用例

    千次阅读 2018-05-10 09:06:53
    前戏一些程序员会对单元测试用例存在误区,例如:~这东西没啥用,就是走个形式主义。~每次都要先写完代码,集成测试都通过之后,然后再补单元测试用例,为的是可笑的leader要求的测试覆盖率达标。~为什么我还要写一...
  • 单元测试用例编写总结

    万次阅读 2018-03-19 14:09:59
    单元测试用例编写总结 1 背景 测试是开发的一个非常重要的方面,可以在很大程度上决定一个应用程序的命运。良好的测试可以在早期捕获导致应用程序崩溃的问题,但较差的测试往往总是导致故障和停机。 单元测试...
  • 函数一: getMaxInTwo(int a,int b) { if a>=b return a; else return b; } 函数二: getMaxInThree(int a,int b,int c) { a=a+1; int max=getMaxInTwo(a,b)... } 单元测试用例设计: getMaxInTwo的UT用例: (3,2)

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 52,999
精华内容 21,199
关键字:

单元测试用例的设计