软件开发中常见的测试种类

测试驱动开发 TDD:Test-Driven Development

单元测试

单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程 等等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。一个软件单元的正确性是相对于该单元的规约而言的。因此,单元测试以被测试单位的规约为基准。单元测试的主要方法 有控制流测试、数据 流测试、排错测试、分域测试等等。

集成测试

集成测试:集成测试是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。它根据集成测试计划,一边将模块或其他软件单位组合成越来越大的系统,一边运行该系统,以分析 所组成的系统是否正确,各组成部分是否合拍。集成测试的策略主要有自顶向下和自底向上两种。

系统测试

系统测试:系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能 等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务,它被称为测试的 “ 先知者问题 ” 。因此,系统测试应该按照测试计划进行,其输入、输出和其他动态运行行为应该与软件规约进行对比。软件系统测试方法很多,主要有功能测试 、性能测试 、随机测试等等。

验收测试

验收测试:验收测试旨在向软件的购买者展示该软件系统满足其用户的需求 。它的测试数据通常是系统测试的测试数据的子集。所不同的是,验收测试常常有软件系统的购买者代表在现场,甚至是在软件安装使用 的现场。这是软件在投入使用之前的最后测试。

回归测试

回归测试:回归测试是在软件维护阶段,对软件进行修改之后进行的测试。其目的是检验对软件进行的修改是否正确。这里,修改的正确性有两重含义:一是所作的修改达到了预定目的,如错误得到改正,能够适应新的运行环境等等;二是不影响软件的其他功能的正确性。

冒烟测试

冒烟测试(Smoke Testing), 也叫做 BVT(Build Verification Testing)

SMOKE TESTING, also known as “Build Verification Testing”, is a type of software testing that comprises of a non-exhaustive set of tests that aim at ensuring that the most important functions work. The result of this testing is used to decide if a build is stable enough to proceed with further testing.

The term ‘smoke testing’, it is said, came to software testing from a similar type of hardware testing, in which the device passed the test if it did not catch fire (or smoked) the first time it was turned on.

wiki上关于Smoke Testing的解释是:

smoke testing is preliminary testing to reveal simple failures severe enough to, for example, reject a prospective software release. Smoke tests are a subset of test cases that cover the most important functionality of a component or system, used to aid assessment if main functions of the software appear to work correctly. When used to determine if a computer program should be subjected to further, more fine-grained testing, a smoke test may be called an intake test.Alternately, it is a set of tests run on each new build of a product to verify that the build is testable before the build is released into the hands of the test team. In the DevOps paradigm, use of a BVT step is one hallmark of the continuous integration maturity stage.

冒烟测试主要是检查软件的主要功能是否正常工作, 如果通过了冒烟测试, 再继续进行细致的测试; 如果没有, 则返回进行重新开发.

在软件研发中,冒烟测试其实是微软首先提出来的一个概念,和微软一直提倡的每日build(构建版本)有很密切的联系。具体说,冒烟测试就是在每日build(构建版本)建立后,对系统的基本功能进行简单的测试。这种测试强调程序的主要功能进行的验证,而不会对具体功能进行更深入的测试。

冒烟只是这类测试活动更形象化一些的叫法,直接叫做BVT(Build Verification Testing)其实CC先生个人觉得更为贴切。

文档测试

Python中支持文档测试.

冒烟测试和回归测试的区别

1,测试阶段不同:冒烟测试描述的是在将代码更改嵌入到产品的源树中之前对这些更改进行验证的过程。回归测试是指漏洞由开发人员修改之后再次测试的过程。

2,测试稳定性不同:在检查了代码后,冒烟测试是确定和修复软件缺陷的最经济有效的方法。冒烟测试设计用于确认代码中的更改会按预期运行,且不会破坏整个版本的稳定性。回归测试需要验证之前的漏洞是否解决完成。

3,测试目的不同:冒烟测试是代码开发完成后进行的功能完整性测试。但是回归测试是为了验证漏洞是否正确修改且其他功能是否正常。

4,测试性质不同:冒烟测试中发现问题然后反馈给开发人员进行修改,而回归测试是修改完之后进行验证再进行的工程。

5,测试周期不同:冒烟测试只集中考虑了一开始的那个问题,而忽略其它的问题,这就可能引起了新的Bug。SmokeTest优点是节省测试时间,而回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。

References

单元测试 – 廖雪峰
冒烟测试 – 百度百科
Smoke testing – Software Testing Fundamentals文档测试 – 廖雪峰

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据