一、按是否执行软件可分为以下测试类型:
1、静态测试:
静态测试是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。静态方法通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。(程序的语法、结构、接口、过程、需求文档、设计文档、流程图、参数、循环嵌套、分支嵌套,递归、空指针)
静态测试方法:方案—代码走查、桌面检查、代码审查等方法对软件产品进行测试,静态测试可用于白盒测试中。
2、动态测试:
运行被测程序本身,包括黑盒和白黑测试。
3、一般先进行静态测试,再进行动态测试,原因:
1、一般先进行静态分析,将静态分析的结果作为依据,再使用代码检查和动态测试的方式对静态分析结果进行进一步确认,提高测试效率及准确性。
2、静态测试(代码检查一般能发现20%~30%的bug,代码检查看到的问题本身还不是问题的征兆,为接下来的动态测试减少缺陷,提高效率)->动态测试。
二、按测试过程和策略可分如下测试类型(阶段):
1、单元测试:对软件设计单元、功能模块进行测试,测试内容包括模块程序结构检查、代码测试和模块内功能测试。(主要是静态测试)(白盒测试)
测试内容:
2、集成测试:对软件设计单元、功能模块组装、集成为系统时,对软件单元、功能模块的接口、连接进行测试(静态测试和动态测试)。(白盒、黑盒测试)
集成测试模块组织方式:
2.1、一次性组装
3、确认测试
确认测试又称有效性测试。有效性测试是在模拟的环境下,运用黑盒测试的方法,验证被测软件是否满足需求规格说明书列出的需求。任务是验证软件的功能和性能及其他特性是否与用户的要求一致。对软件的功能和性能要求在软件需求规格说明书中已经明确规定,它包含的信息就是软件确认测试的基础。(黑盒测试)
测试内容包括:
安装与反安装测试
可靠性测试:故障率
安全性测试:
是指测试软件系统防止非法入侵的能力。“安全”是相对而言的,一般地,如果黑客为非法入侵花费的代价(考虑时间、费用、危险等因素)高于得到的好处,那么这样的系统可以认为是安全的。
时间及空间性能测试
易用性测试
可移植性测试 :
可移植性测试,英文是Portability testing。又称兼容性测试。
可移植性测试是指测试软件是否可以被成功移植到指定的硬件或软件平台上。
可维护性测试
文档测试
4、系统测试:
是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试,系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案。系统测试发现问题之后要经过调试找出错误原因和位置,然后进行改正。是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。对象不仅仅包括需测试的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。(黑盒测试)
测试内容:加兼容性测试,对系统硬件、其他软件及其之间接口、协调性的测试。
6、验收测试
用户进行的测试。(黑盒测试)
Alpha测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由程序员或测试员完成。Alpha测试发现的错误,可以在测试现场立刻反馈给开发人员,由开发人员及时分析和处理。目的是评价软件产品的功能、可使用性、可靠性、性能和支持。尤其注重产品的界面和特色。Alpha测试可以从软件产品编码结束之后开始,或在模块(子系统)测试完成后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。有关的手册(草稿)等应该在Alpha测试前准备好。
Beta测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。因而,Beta测试是在开发者无法控制的环境下进行的软件现场应用。在Beta测试中,由用户记下遇到的所有问题,包括真实的以及主管认定的,定期向开发者报告,开发者在综合用户的报告后,做出修改,最后将软件产品交付给全体用户使用。Beta测试着重于产品的支持性,包括文档、客户培训和支持产品的生产能力。只有当Alpha测试达到一定的可靠程度后,才能开始Beta测试。由于Beta测试的主要目标是测试可支持性,所以Beta测试应该尽可能由主持产品发行的人员来管理。
由于Alpha和Beta测试的组织难度大,测试费用高,测试的随机性强、测试周期跨度较长,测试质量和测试效率难于保证,所以,很多专业软件可能不再进行Beta测试。随着测试技术的提高,以及专业测试服务机构的大量涌现,很多软件的Beta测试外包给这些专业测试机构进行测试。
二、按软件用例设计方法(按是否针对程序内部结构)可分为黑盒测试和白黑测试(测试设计方法)
1、黑盒测试:数据驱动和基于规格说明的测试
2、白盒测试:逻辑驱动和基于程序的测试
黑盒测试用例设计方法及白黑测试用例设计方法,见用例设计方法章节。