举某些例子, 软件测试方法有黑盒测试, 白盒测试
按阶段来区分的话有单元测试, 集成测试, 系统测试
按目的来分有性能测试等
对于测试来说应给出相应的标准来量化, 对页面应用等测试(自主进行).
最后是软件测试的自动化以及测试的管理
该课程并不会给出具体的工具, 应该针对应用进行相应的修改
成绩划分(Exam70%, Discussion10%(twice, PPT and report), quiz20%(five times))
1. 概述
1.1 为何软件测试是需要的
- 软件无处不在
- 产品的合格率(利用指数函数的性质来说明多部分系统难以完美)
- 举出例子说明软件失效造成的灾难
- North east Black 停电事故
- Ariane5 爆炸
- Mars Polar Lander 传感器失效
(1) 有错误的软件是不安全的
(2) 世界上大部分的经济损失都是由于软件失效
(3) 充分的测试可以规避风险
(4) 我们希望软件是可靠的
1.2 软件测试的部分内容(什么是缺陷, 历史, 概念)
Error, Fault, Failure, Incident都统称为缺陷
软件产品中所存在的问题, 最终表现为不能满足客户的需求
缺陷之定义:
- 满足用户期望与否
- 非正确执行的可行性
- 所有类型的软件问题
缺陷的源头:
- 需求定义
- 设计
- 实现
- 支持的系统
- 软件测试的完整性
- 更新迭代
软件的开发流程都有可能出现缺陷
什么时候会出现缺陷:
- 该完成没有完成
- 不该完成而去做
- 没有提及的去做了
- 没有提及但是应该完成的没有完成
- ....
大部分情况都会产生缺陷
正确的程序应该具有的特性:
- 没有语法问题
- 运行中没有明显问题
- 没有不合适的语句
- 有效的输入, 正确的输出
- 无效的输入, 正确的输出
- 任何可能的输入, 正确的输出
软件质量, 软件质量保证, 质量控制 (软件质量的评判是多维度的)
软件质量保证给出了一系列章程的制订
质量控制是具体的操作, 是质量保证的具体细节
1.3 软件测试的定义
首先是定义:
- 软件测试是系统化, 有计划的行动步骤
- 通过测试能够给出产品和服务质量的相关数据
- 测试可以发现用户期望实现与否
- 测试是软件质量保证的关键步骤
- verification(验证) 从开发者的角度
- validation(确认) 从用户的角度
关于测试的类型有许多种, 包括:
- 根据测试生成的源来划分(C1)
- 根据生命周期中所处的位置来划分(C2)
- 根据测试目标(C3)
- 根据被测对象的特征(C4)
- 根据模型进行划分(C5)
C1:
根据需求 --> 黑盒
根据代码 --> 白盒
根据形式化模型 --> 模型测试
组件接口 --> 接口测试
C2:
编码 -->单元测试
集成 --> 集成测试
系统集成 --> 系统测试
维护 --> 回归测试
发布之前的版本 --> beta测试
C3:
系统性能 --> 性能测试
etc
测试用例实质上就是一组输入和输出, 最后看预期的结果是否相符
网友评论