软件测试分类(自动化测试暂不描述)
根据项目流程阶段划分测试
上图是一个典型瀑布式软件开发流程,那么各项软件测试工作是在项目开发流程中循序渐进的进行的。下面将介绍个测试含义。
单元测试:单元测试是对软件中的基本组成单位进行的测试。目的是检验软件基本组成单位的正确性。
集成测试:集成测试是在软件系统集成过程中所进行的测试。目的是检查软件单位之间的接口是否正确。
系统测试:系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等是否满足其规约所指定的要求。
验收测试:验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,向软件购买都展示该软件系统满足其用户的需求。
单元测试阶段:
模块接口测试
通过所测模块的数据流进行测试。调用所测模块时的输入参数与模块的形式参数的个数、属性和顺序是否匹配。
局部数据结构测试
局部数据结构是为了保证临时存储在模块内的数据在程序执行过程中完整、正确、模块的局部数据结构往往是错误的根源。
路径测试
对模块中重要的执行路径进行测试。
错误处理测试
比较完善的模块设计要求能遇见出错的条件,并设置适当的出错处理,以便在一旦程序出错时,能对出错程序重做安排,保证其逻辑上的正确性。
边界条件测试
软件经常在便捷上失效,边界条件测试是一项基础测试,也是后面系统测试中的功能测试的重点。
集成测试阶段:
在集成测试中,我们主要关注以下内容:
1. 把各个模块连接起来时,穿越模块接口的数据据是否会丢失。
2. 各个了模块组合起来,能否达到预期要求的功能。
3. 一个模块的功能是否会对另一个模块的功能产生不利影响。
4. 全局数据据结构是否有问题。
5. 单个模块的误差积累起来是否会被放大,从而达到不可接受的程序。
系统测试阶段:
一般系统的主要测试工作都集中系统测试阶段。根据不同的系统,所进行的测试种类也很多。
功能测试:
功能测试是对产品的各功能进行验证,以检查是否满足需求的要求。
性能测试:
性能测试是通过自动化测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
安全测试:
安全测试检查系统对非法入侵的防范能力。
兼容测试:
兼容性测试主要是测试系统在不同的软硬件环境下是否能够正常的运行。
验收测试阶段:
功能确认测试
安全可靠性测试
易用性测试
可扩充性测试
兼容性测试
资源占用率测试
用户文档资料验收
冒烟测试、回归测试、随机测试
这三种测试在软件功能测试过程中,既不算具体明确的测试阶段也不算是具体的测试方法。
冒烟测试:
是指在对一个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。
引入到软件测试中,就是指测试小组在正规测试一个新版本之前,先投入较少的人力和时间验证一个软件 的主要功能,如果主要功能都没有实现,则打回开发组 重新开发。这样做的好处是可以节省大量的时间成本和人力成本。
回归测试:
回归测试是指修改了旧代码后,重新时行测试以确认修改后没有引入新的错误或导致其他代码产生错误。
回归测试一般是在进行软件的第二轮测试开始的,验证第一轮中发现的问题是否得到修复。当然,回归也是一个循环的过程,如果回归的问题通不过,则需要开 发人员修改后再次进行回归,直到通过为止。
随机测试:
是指测试中的所有输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。
随机测试可以发现一些隐蔽的错误,但是也有很多缺点,比如测试不系统,无法统计代码覆盖率和需求覆盖率,发现的问题难以重现。一般是放在测试的最后执 行。其实随机测试更专业的升级版叫 探索性测试
安全测试
安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程。
安全测试也在越来越受到企业的关注和重视,因为由于安全性问题造成的后果是不可估量的。尤其对于互联网产品最容易遭受各种安全攻击。