代码改变世界

测试类型

2017-02-08 09:09  伞外听雨  阅读(218)  评论(0编辑  收藏  举报

按阶段划分:

一、单元测试

二、集成测试

三、确认测试

四、系统测试

五、验收测试

 

什么是单元测试?
单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。

对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。

总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。

单元测试包含内容:
入口和出口函数
输入和输出信息
错误处理信息
部分边界数值测试

 

什么是集成测试?
集成测试,也叫组装测试或联合测试。
在单元测试的基础上,将所有模块按照设计要求(如根据结构图〕组装成为子系统或系统,进行集成测试。
实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。

集成测试包括两种方法:
非增量式集成
增量式集成
自顶向下增量式测试
自底向上增量式测试

 

什么是确认测试?
确认测试的目的是向未来的用户表明系统能够像预定要求那样工作。
经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是确认测试的任务,即软件的功能和性能如同用户所合理期待的那样。

确认测试范围:
文档
源码
版本
模块
人员
环境
工具

 

什么是系统测试?
系统测试,英文是System Testing
将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试.
系统测试是针对整个产品系统进行的测试
目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案
系统测试发现问题之后要经过调试找出错误原因和位置,然后进行改正。是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。
对象不仅仅包括需测试的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。

系统测试范围
功能、界面、性能、安全性、安装、卸载、易用性、兼容性等

 

什么是验收测试?
它是一项确定产品是否能够满足合同或用户所规定需求的测试。这是管理性和防御性控制
主要确认软件是否按合同要求进行工作,既是否满足软件需求规格说明书中的要求。

验收测试分类:
非正式的验收测试
А(alpha)测试
软件开发公司组织内部人员模拟各类用户行为对即将上市的产品进行测试。
ß(beta)测试
软件开发公司组织各方面的的典型客户在日常工作中实际使用,并要求用户报告异常情况、提出改进意见,然后公司再进行完善。
正式的验收测试
有正规的测试过程,需要制定测试计划、定义测试方案、选择测试用例,进行测试,结果提交。着重考虑软件是否满足合同规定的所有功能和性能,文档资料是否完整、准确,人机界面和其他方面。

 

按是否运行程序划分?

静态测试
不运行被测试的软件,而只是静态的检查代码、界面或者文档

动态测试
实际运行被测试的软件,输入相应的测试数据,检查实际的输出结果是否和预期结果相一致的过程。

按是否查看代码?
1、黑盒测试
把软件看成一个黑盒子,不管内部逻辑和内部特性,只依据规格说明书检查程序的功能是否符合功能说明

2、白盒测试
又称为结构测试。着重于程序内部结构和算法,不关心功能和性能指标。

3、灰盒测试
介于白盒和黑盒测试之间,基于程序运行时刻的外部表现同时又结合程序内部逻辑结构来设计用例,执行程序并采集程序路径执行信息和外部用户接口结果的测试技术。

 

按是否查看代码-灰盒测试?
灰盒测试有啥缺点?当然,凡事都有优点和缺点,灰盒测试自然也不例外。下面列举它的主要缺点。
不适用于简单的系统,所谓的简单系统,就是简单到总共只有一个模块。由于灰盒测试关注于系统内部模块之间的交互。
如果某个系统简单到只有一个模块,那就没必要进行灰盒测试了。对测试人员的要求比黑盒测试高,
从上面的介绍来看,灰盒测试要求测试人员清楚系统内部由哪些模块构成,模块之间如何协作。因此,对测试的要求就提高了。
因此,会带来一定的培训成本。不过捏,依照俺的经验,培训难度不大。稍微有点基础的测试人员,都可以在短期培训之后胜任。
不如白盒测试深入。显然,灰盒不如白盒那么深入。不过,考虑到灰盒测试相比白盒测试有显著的成本优势,该缺点不是太明显。

 

回归测试
对软件的新版本测试时,重复执行上一个版本测试时使用的测试用例。防止出现“以前应用没有的问题现在出问题了” 。
1、回归测试是指重复以前的全部或部分的测试用例。
2、新加入测试的模组,可能对其他模组产生副作用,故须进行某些程度的回归测试。
3、回归测试的重心,以关键性模组为核心。

冒烟测试(BVT测试(Build Verification Test ))
冒烟测试的对象是每一个新编译需要正式测试的版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。

随机测试(又名猴子测试)
测试数据是随机产生的,在测试用例之外。只能作为一个测试的补充。