• 第六周作业----单元测试


    一、单元测试的概念。

    单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。

    二、单元测试的目的。

    单元测试的目的在于发现各模块内部可能存在的各种错误。

    • 验证代码是否与设计相符合;
    • 发现设计和需求中存在的错误;
    • 发现在编码过程中引入的错误;
    • 使得代码重构成为可能。

    三、单元测试的策略。

    1. 自顶向下的单元测试策略
    方法:先对最顶层的基本单元进行测试,把所有调用的单元做成桩模块。然后再对第二层的基本调用的单元做成桩模块。使用上面已测试的单元做驱动模块。依此类推直到测试完所有基本单元。
    优点:在集成测试前提供早期的集成途径。不需要开发驱动模行上和详细设计的顺序一致。

    缺点:随着测试的进行,测试过程越来越复杂,开发和维护成本增加。

    总结:比孤立单元测试的成本高很多,不是单元测试的一个好的选择。

    2. 自底向上的单元测试策略
    方法:先对最底层的基本单元进行测试,模拟调用该单元的单元做驱动模块。然后再对上面一层进行测试,用下面已被测试过的单元做桩模块。依此类推,直到测试完所有单元。

    优点:在集成测试前提供系统早期的集成途径。不需要开发桩模块。

    缺点:随着测试的进行,测试过程越来越复杂。

    总结:比较合理的单元测试策略,测试周期较长。

    3. 孤立单元测试策略
    方法:不考虑每个单元与其它单元之间的关系,为每个单元设计桩模块或驱动模块。每个模块进行独立的单元测试。

    优点:简单、容易操作,可达到高的结构覆盖率。

    缺点:不提供一种系统早期的集成途径。

    总结:最好的单元测试策略。

    四、单元测试工具。

    1.java、android语言的单元测试工具—JUnit.

    下面讲解一下平时我是怎么单元测试的。我的环境(myeclipse 2013 pro+junit4)

    step 1. 把junit的jar包添加到buildpath。右键项目名,选择“Build Path”—>”Add Library”.出现下图所示。选择“JUnit”,项目目录下会多出“JUnit4”,右键选中,点击“add to build path”.

    image

    step2. 新建测试类,编写测试方法。添加JUnit注解.常用的注解有@Test,@Before,@After.执行顺序是Before->Test->After. 一般Before方法中邪初始化操作,如数据库的连接;Test方法中写具体要测试的函数,如查询数据库;After方法中一般写数据库连接的释放。具体看单元测试的是什么。

    image

    step 3. 右键测试类,选择“Run as”->”JUnit Test”

    结果:image

    2. C#单元测试工具。(VS2015 社区版)。

    step1. 下载单元测试插件。联机搜索插件“Unit Test Generator”并下载,这是进行单元测试要用到的插件工具。

    image

    step 2. 新建项目,创建C#类库。(实际中对应自己编写的模块,即要测试的类)。

    step 3. 右键刚创建的类,选择“创建单元测试”。可以看到VS自动创建了一个“Class1Tests”的类库,其中看到有“TestClass”和“TestMethod”,这是单元测试专用的测试类和测试方法。

    image

    step 4. 下一步,点击上方工具栏的“测试”-“窗口”-“测试资源管理器”。测试资源管理器出现在屏幕的左边,在这里可以清晰地看到测试结果。现在点击测试资源管理器的“全部运行”。运行结果如图所示。

    image

    我目前只使用过上诉两种单元测试工具。但是,有时候我也不会借助单元测试工具,我会自己写一个main方法,测试自己要单元测试的方法或类。并跟踪调试。

  • 相关阅读:
    svn和git的优缺点
    idea 的MAVEN Lifecycle 基本用法
    递归SQL---树形结构
    基本:linux命令
    2017年9月22日01:42:08
    简述数据库的设计过程
    HelloH5+搭建
    【Java报错】Message: 3 字节的 UTF-8 序列的字节 2 无效
    css class嵌套
    【java报错】Could not instantiate listener
  • 原文地址:https://www.cnblogs.com/charliePU/p/5383126.html
Copyright © 2020-2023  润新知