zoukankan      html  css  js  c++  java
  • 第六周作业----单元测试

    一、单元测试的概念。

    单元测试(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方法,测试自己要单元测试的方法或类。并跟踪调试。

  • 相关阅读:
    韩式英语
    Daily dictation 听课笔记
    words with same pronunciation
    you will need to restart eclipse for the changes to take effect. would you like to restart now?
    glottal stop(britain fountain mountain)
    education 的发音
    第一次用Matlab 的lamada语句
    SVN的switch命令
    String的split
    SVN模型仓库中的资源从一个地方移动到另一个地方的办法(很久才解决)
  • 原文地址:https://www.cnblogs.com/charliePU/p/5383126.html
Copyright © 2011-2022 走看看