一、软件测试
1.含义及目的
- 在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其 是否能满足设计要求进行评估的过程。
- 目的:尽可能多的发现软件缺陷。但是并不作为衡量测试能力的标准。测试目的不仅仅为了找出错误,通过分析错误产生的原因和错误的分布特征,帮助项目管理者发现当 前所采用的软件过程的缺陷,以便改进。
2.软件测试V模型
V 模型是软件测试过程中的常见⼀种模型,它反映了开发过程和测试过程的关系,在测试软件中起着重要作⽤。
V模型的左半部分是开发人员的要做的事,右半部分是测试人员需要做的事情。
- 需求分析: 根据客户需求来设计软件,满足用户所需功能。
- 概要分析: 主要是架构的实现,指搭建架构,表述各模块功能、模块接口连接和数据传递的实现等各项事务。
- 详细设计: 对概要设计中表述的各个模块进行深入分析,对各个模块组合进行分析等。
- 软件编码: 按照详细设计好的模块功能表,编程人员编写出实际的代码。
- 单元测试: 单元测试是对程序中单个子程序或具有独立功能的代码段进行测试的过程。
- 集成测试: 集成测试在单元测试的基础上,先通过单元模块组装成系统或子系统,再进行测试。还要检查模块之间的接口是否正确。
- 系统测试: 系统测试针对整个产品进行测试,验证系统是否满足需求规格说明的定义,以及软件系统的正确性和性能等是否能满足。
- 验收测试:确保软件准备就绪,向需求方展示软件能够满足需求。 验收测试又分为α测试和 β测试。
α测试: 指的是由用户,测试人员,开发人员等共同参与的内部调试 。
β测试: 指的是内测后的公测,即完全交给最终用户测试。
3.几种软件产生的缺陷
- 软件未达到客户需求的功能和性能 。
- 软件超出了客户需求的范围 。
- 软件出现客户需求不能容忍的错误。
- 软件的使用未能符合客户的习惯和工作环境
二、软件测试的分类
1.软件开发阶段角度
单元测试,集成测试,系统测试,验收测试。
2.根据软件结构与算法角度
- 白盒测试
白盒测试又被称为结构测试,透明盒测试、逻辑驱动测试或基于代码测试,是对软件代码实现的细节做细致检查。对于白盒测试,测试员必须要全面了解程序的内部逻辑结构,对所有逻辑路径进⾏测试。 - 黑盒测试
黑盒测试也称为功能测试,是通过测试来检测每个功能是否都能正常使用,在黑盒测试中,把程序当作⼀个不可开的黑盒子,在完全不考虑程序内部特性的情况下,对程序接口进⾏测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当的接受输入程序而产生正确的输出信息。 - 灰盒测试
是介于白盒测试和黑盒测试之间的,灰盒测试关注输出对于输⼊的正确性,但同时也关注内部实现,不过这种关注不像白盒测试那么详细,完整,只是通过⼀些表征性的现象,事件,标志来判断内部的运行状态,有时候输出是正确的,但内部存在错误点。这种情况非常多,如果每次都通过白盒测试来操作,效率低,因此采用灰盒测试的方法。
3.软件测试角度
软件测试面角度又分为功能和性能两个方面。
(1)功能测试
主要检查实际功能是否符合用户的需求,因此测试的大部分工作也是围绕软件的功能进行。
功能测试也称为行为测试(behavioral testing) ,根据产品的性能,操作描述和用户方案,测试⼀个产品的特性以确定他们满足的设计需求。
功能测试主要包含:
- 逻辑功能测试
- 界面测试
- 易用性测试
- 安装测试
- 兼容性测试(软件本身的兼容性和不同平台下的兼容性)
(2)性能测试
通过自动化的测试工具模拟多种正常峰值以及异常负载条件来对系统的各项性能指标进行测试。
通常情况下性能测试包括:时间性能和空间性能两种。
* 时间性能:主要指软件的⼀个具体响应时间。例如⼀个注册需要的时间,⼀个商品购买需要的时间等。
* 空间性能:主要指软件运行时所消耗的系统资源,如硬件资源,cpu,内存,网络消耗等。