软件测试与评审是软件质量保证的主要手段,也是软件交付前的必要步骤。
一、测试方法
软件有“错误”和“缺陷”两个概念。错误指软件开发过程,缺陷指软件产品。错误是导致缺陷的原因。
为了发现错误和缺陷,应设计合适的测试用例。测试用例由测试数据和预期结果构成。
高效测试指用最少的测试用例,发现最多的错误和缺陷。
(一)、软件测试的阶段
分为 单元测试、集成测试、系统测试。
1、单元测试
又称为模块测试,编程阶段,程序员自行进行,用于检查模块是否实现了规定的功能和算法,发现其中的错误。
单元测试计划应在详细设计阶段制定。
单元测试可以着重对模块接口、数据结构、执行路径、出错处理、边界条件进行测试。
2、集成测试
也称组装测试,对由各模块组装而成的程序进行测试,目标是发现模块间的接口和通信问题。
集成测试计划应在概要设计阶段制定。
分为渐增和非渐增两种方式。
3、系统测试
软件测试中最后最完整的测试,在单元测试和集成测试的基础上进行,从全局来考察软件系统的功能和性能要求。
系统测试计划在需求分析阶段制定。
系统测试分为确认测试和验收测试。
确认测试依据需求说明书进行检查,由开发方或第三方进行?
验收测试如果由甲方委托,则由甲方进行;如果是多用户使用产品,则进行a测试和b测试。a测试在开发场所进行,b测试则为公开测试。
经过系统测试就可以交付了。
(二)白盒测试 和 黑盒测试
这些都是指具体的测试方法。其中,
白盒测试用于单元测试
黑盒测试用于集成测试和系统测试阶段。
(三)缺陷的分类和级别
(四)调试
二、评审方法
评审是一种评估手段,以确定软件开发是否与计划保持一致,并使其得到改进。包括:
1)软件需求评审
2)概要设计评审
3)详细设计评审
4)软件验证和确认评审
5)功能检查
6)物理检查
验证程序和文档是否已齐备
7)综合检查
用户或用户委托的专家进行检查
8)管理评审
对计划执行情况进行审查。此项工作由中立的评审机构或第三方机构进行。
注意事项:
1)测试不能代替评审
软件开发早期,尚未有成品供测试,但可以进行评审。评审越到位,就会少走弯路,后面的测试成本就越低。
2)评审应关注产品,而不应评论开发人员
3)评审应关注实质问题,而不是像文档格式这类的鸡毛蒜皮
4)评审只为发现问题,而不是问题解决方案讨论会
5)评审应被安排进入项目计划并足够重视
6)评审人员应对项目及相关材料足够了解
三、验证与确认
四、测试自动化
适合自动化的测试工作为:
1)测试用例的生成
2)测试的执行控制
3)测试结果与标准的对比
4)测试结果分析及统计
五、面向对象的测试
不同于传统测试策略,分为:
面向对象分析的测试
面向对象设计的测试
面向对象编程的测试
面向对象的单元测试
面向对象的集成测试
面向对象的系统测试