分享

单元测试用例设计原则

 kekokeko 2013-05-29

问题:

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格式化工具捕获结果

 

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多