一、V模型实际是软件开发瀑布模型的变种,反映了测试活动与分析和设计的关系。
优点:将复杂的测试工作按阶段划分为各个小阶段来实现
从多角度测试系统找出更多的缺陷
缺点:软件测试容易误导为软件开发的最后一个阶段
需求、设计阶段产生的问题不能很早发现
质量控制和测试效率无高效发挥
V模型失败的原因是它把系统开发过程划分为具有固定边界的不同阶段。由于V模型在软件开发编码完成后才介入测试工作,导致一些需求和设计中的问题在后期验收测试中才发现。
二、W模型,相对于V模型,增加了软件各开发阶段中同步进行的验证和确认测试活动。
优点:测试和开发同步进行,有利尽早发现问题
增加非程序角度测试系统的思想
测试准备及设计工作提前,提高测试质量及效率
缺点:把软件开发视为需求、设计、编码等一系列串行的活动
开发和测试保持一种线性的前后关系
无法支持迭代、自发性以及变更调整
三、H模型体现测试流程的完整性
优点:将测试从开发中独立出来,利于研究更深的测试技术
同时测试多个项目时,可测试技术重复利用
高效调整测试人员
缺陷修复时不受项目组内部人员限制
缺点:独立的测试组对系统认识不够深入
影响测试质量及测试效率
H模型揭示了一个原理:软件测试模型是一个独立的流程,贯穿于整个软件产品的周期,与其他流程并发地进行
四、X模型的基本思想是由Marick提出的是对V模型的改进,X模型提出针对单独的程序片段进行相互分离的编码和测试。
优点:强调单元测试及集成测试的重要性
引入探索性测试使测试模型与现实更接近
缺陷修复时不受项目组内部人员限制
缺点:只强调测试过程中的部分内容
没有对需求测试、验收测试等内容进行说明
X模型还定位了探索性测试,对测试人员的熟练程度要求比较高
五、前置测试模型将开发和测试的生命周期整合在一起,标识了项目生命周期从开始到结束之间的关键行为。
前置测试模型认识到验收测试中所包含的3个要素:基于测试的需求、验收标准和验收测试计划
六、软件测试类型——按照开发阶段划分
单元测试->集成测试->系统测试->验收测试
1.单元测试可以作为规格说明来工作,测试能够以规格说明为基础。
2.集成测试关注的是模块间的接口,接口之间的数据传递关系,单元组合后是否实现预计的功能,其目的是要找出在模块接口上面,包裹整体体系结构上的问题。测试的依据是来自系统的高层设计(架构设计或概要设计)
3.系统测试是站在用户的角度上对系统做功能性的验证,同时还对系统进行一些非功能性的验证,包括压力测试、安全性测试、容错测试、恢复性测试。系统测试一般使用黑盒测试技术,并有独立的测试人员完成。
4.验收测试主要包括易用性测试、兼容性测试、安装测试、文档测试等几个方面的内容。
六、软件测试类型——按照实施组织划分
1.开发方测试
描述:由公司内部的用户进行的受控测试。
证实软件满足规定的需求
注重产品的界面和特色
开发方测试通常也叫“验证测试”或“α测试”。开发方通过检测和提供客观证据,证实软件的实现是否满足规定的需求。
Alpha测试(即α测试)是由一个用户在开发环境下进行的测试,并且在开发者对用户“指导”下进行测试。Alpha测试不能由程序员或测试员完成。
2.用户测试
描述:由最终用户在客户场所进行验证
不受开发者控制
注重产品的支持性
用户测试是在用户的应用环境下,用户通过运行和使用软件,检测与核实软件实现是否符合自己预期的要求。通常情况下用户测试不是指用户的“验收测试”,而是指用户的使用性测试。
Beta测试(即β测试)通过被看成是一种“用户测试”。Beta测试主要是把软件产品有计划地免费分发到目标市场,让用户大量使用,并评价、检查软件。
3.第三方测试
描述:介于开发方和用户方间的组织的测试
保证测试工作的客观性
评审需求、设计、用户类文档
单元测试、功能测试、性能测试等
六、软件测试类型——按照测试技术划分
1.黑盒测试(功能测试)
描述:对界面测试
对功能测试
从用户角度出发
优点:不需要了解程序内部的代码及实现
与软件的内部实现无关
在做自动化测试时较为方便
黑盒测试用例设计方法包括 等价类划分法、边界值分析法、错误推测法、因果图法、判定表法、正交试验设计法、功能图法、场景分析法等
2.白盒测试(结构测试)
描述:检查所有的结构及路径是否正确
检查软件内部动作是否按规定进行
优点:可以检查内存的泄露
可以检查异常处理分支语句是否正确
执行了多少逻辑,可以作为衡量测试是否完整的一个指标
3.灰盒测试
描述:关注输出对于输入的正确性
关注内部表现
介于白盒和黑盒测试之间
优点:能够进行基于需求的覆盖测试和基于程序路径覆盖的测试
测试结果可以对应到程序内部路径,便于Bug的定位、分析和解决
能够保证设计的黑盒测试用例的完整性,防止遗漏软件的一些不常用的功能或功能组合