软件测试的目的:
尽可能早的发现缺陷并确保其得以修复
软件缺陷:
- 未实现产品说明书的功能
- 出现了产品说明书指明不应该出现的错误
- 实现了产品说明书未提到的功能
- 软件未实现产品说明书虽未明确提及但应该实现的目标
- 软件难以理解,不易使用,运行缓慢或——从测试人员的角度看——最终用户会认为不好
常用软件设计文档的清单
结构文档、数据流图、状态转换图、流程图、代码注释
测试提交清单:
- 测试计划:描述用于验证软件是否符合产品说明书和客户需求的整体方案。包括质量目标、资源需求、进度表、任务分配、方法等
- 测试用例:列举测试的项目。描述验证软件的详细步骤
- 缺陷报告:描述执行测试用例找出的问题
- 测试工具和自动测试
- 度量、统计和总结:测试过程的汇总。采用图形、表格和报告等形式
软件开发模型:
- 瀑布模型:
构思->分析->设计->开发->测试->最终产品(无法回溯) - 螺旋模式:
1、确定目标,可选方案和限制条件
2、明确并化解风险
3、评估可选方案
4、当前阶段开发和测试
5、计划下一阶段
6、确定进入下一阶段的方法 - 敏捷软件开发:
宣言:
通过过程和工具理解个人和交流的作用
通过全面的文档理解运行的软件
通过合同和谈判得到客户的协作
在计划的执行中做出对变更的响应
也就是说,在一方面有价值的时候,更应评价它在另外一方面的价值
测试原则
- 完全测试程序是不可能的
- 软件测试是有风险的行为(基于风险的测试)
- 测试无法显示潜伏的软件缺陷
- 找到的软件缺陷越多,说明软件缺陷越多
- 并非所有软件缺陷都需要修复:
1、没有足够的时间
2、不算真正的软件缺陷
3、修复的风险太大
4、不值得修复
测试和质量保证(QA):
软件测试员的目的是尽可能早地找出软件缺陷,并确保其得以修复
软件质量保证人员的主要职责是创建和执行改进软件开发过程,并防止软件缺陷发生的标准和方法
一些测试概念
黑盒测试:
只需知道软件要做什么——无法看到盒子里的软件是如何运行的
又称功能性测试或行为测试
白盒测试:
可以访问程序员的代码,并通过检查代码的线索来协助测试——可以看到盒子里面
测试员根据代码检查结果判断或多或少可能出错的数目,并据此制定测试
静态测试
指测试不运行的部分——只是检查和审核
动态测试
指通常意义上的测试——使用和运行软件
通过性测试
确认软件至少能什么,而不考验其能力
运用最简单最直观的测试用例
实效性测试
纯粹为了破坏软件而设计和执行的测试用例
蓄意工具软件的薄弱环节
探索测试
了解软件、设计测试、执行测试同时进行
测试用例
指进行测试时使用的特定输入,以及测试软件的过程步骤
…下次再码字