测试概念
一、测试原则:
- 尽早测试、所有测试基于满足用户需求
- 制定测试计划、搭建测试环境
- 根据功能优先级来安排测试工作
- 考虑风险:不能按进度完成和执行测试计划的任何事件、行为和环境
- 测试用例必须有测试数据和预期结果,且严格执行测试用例
- 测试用例需覆盖合理的输入条件和不合理的输入条件
- 注意测试群体现象(某个模块测试缺陷越多,隐藏的缺陷也可能越多)
- 对每个测试结果做全面检查
- 保存测试文档,做迭代测试
- 软件测试对象:软件开发过程中产生的所有文档和源程序
二、测试目的:
- 测试的目的就是发现软件中的各种缺陷
- 测试只能证明软件存在缺陷,不能证明软件不存在缺陷
- 测试可以使软件中缺陷降低到一定程度,而不是彻底消灭
- 以较少的用例、时间和人力找出软件中的各种错误和缺陷,以确保软件的质量
三、功能需求分析
- 需求分析:业务需求、用户体验、功能需求,参考:需求说明书、原型图
- 验证需求正确性:是否正确的完成了用户的真实需求
- 验证需求完整性:保证需求中没有遗漏任何必须的元素
- 模糊的需求明确化,不易明确化的需求可以划分为若干个可以明确的小需求。
- 需求文档变更及时通知:需求要形成文档,发生变更时需通知到所有成员
四、非功能性需求:性能、安全、可用性、兼容性、可访问性
- 一致性:是否有互相矛盾、歧义的地方。
- 可测性:是否可以测试,有准确的预期输入和结果,否则需要提醒相关风险。
- 可行性:需求可以在有效的资源内被完成。比如:预算、进度、技术。
- 必要性:确认需求是否为必须,如果去除是否有任何问题。
- 优先级:为每个需求确定其优先级,便于后期在必要时对需求进行取舍。
- 明确性:需求的陈述需要精确且可测量。比如:性能指标不能以很快来描述。
- 可追溯性:明确需求被哪些功能模块所调用。保证变更需求时可以追溯影响的范围。
五、有效的测试数据:测试数据的设计必须使得每个系统级的需求都能得到测试和验证
- 确定所需要的数据规模(10条还是10000条)
- 区分不同需求对测试数据特点的要求
- 确保测试数据完整性,不仅验证需求点本身,还能验证特殊场景和出错场景
- 测试执行期间数据完整性、独立性
- 条件:模拟的测试数据只要满足需求验证要求,不一定从头开始造很全的数据。
六、测试用例:在有效的时间内为每个需求设计尽可能的测试过程,必要时可按优先级顺序完成
- 测试用例组成:用例id、前置条件、测试方法构建的实际输入、期望输出、实际输出、其它
- 用例编号、测试项目、测试标题、重要级别、预置条件、测试输入、操作步骤、预期输出
- 用例评审:发现不足、改进用例、提高测试质量
- 用例维护:需求变更、补充完善、测试用例数量大
- 设计测试用例:对各个功能模块或UI界面进行测试点分析提取测试点
七、测试方法:构造测试用例的方法
功能测试用例(黑盒测试):参考文档是需求说明书
优点:软件开发方法改变,用例依旧有效;开发与测试并行,缩短测试周期。
缺点:用例冗余、测试不足(无法发现程序实现了未规定行为)
1、等价类划分:密码规定为6-16位英文字母或数字及下划线
分为四类:小于6位、大于16位数、6-16位数不符合字母数字下划线(无效类等价)、6-16位数且符合英文数字下划线(有效类等价)
2、边界值分析法:年龄20-35岁 19 20 21 34 35 36 (选取正好等于,刚刚大于或刚刚小于边界的值、不仅考虑输入条件,同样也要考虑输出产生的测试情况)
3、 场景法:
4、 流程图
基本流:登录在线购物网站,选择物品、登录账号、付钱交易、生成订购单
备用流:账号不存在。账号或密码错误、用户账号余额不足、用户账号没有钱、用户退出系统
场景:成功购物、账号不存在、账号或密码错误(返回基本流登录账号)、余额不足(提示约不足请充值)、账号没钱(提示余额为0请充值)
八、软件缺陷
- 未达到产品说明书标明的功能
- 出现产品说明书标明不会出现的问题
- 产品说明书未明确指出,但应实现的目标未实现
- 软件功能超出了指定的范围
- 不易使用、效果不佳
- 缺陷特征:不易发现,不易重现
- 产生原因:需求要求、设计缺陷、代码错误、其它
软件生命周期:制定计划、需求分析、软件设计、编码、软件测试、软件维护、软件停用
九、测试结束标准
- 超过测试时间
- 执行完测试用例,缺陷全部解决(严重、主要、次要、一般、较小错误和测试建议)
- 严重错误和主要错误的缺陷修复率必须达到100%、3.4级80%、56级60%
- 系统通过验收测试,满足需求规格说明书的要求(测试用例执行覆盖率应达到100%,测试需求覆盖率应达到100%)
- 查出某一预订数目的故障,即Bug过多,需开发完再执行测试
十、测试三个阶段
- 初测期,功能测试,主要功能和关键路径
- 细测期,系统测试(功能、界面、兼容性、可用性、性能)----通过后功能冻结
- 回归测试与验收测试,复查所有bug修复情况-----通过后代码冻结
十一、测试工具作用
- 提高测试质量
- 减少重复工作
- 实现测试自动化
十二、测试类型
黑盒测试:针对软件的功能需求进行测试,通过测试来检测每个功能是否符合需求,不考虑程序内部的逻辑结构,基于需求文档。
白盒测试:必须知道软件内部工作过程,通过测试来检测软件内部是否按照需求、设计正常运行,基于源程序。
性能测试:模拟10到50个用户同时测试
压力测试/负载测试:用户增加到1000乃至上万
强度测试:50到100用户同时对系统进行大量的数据查询操作
单元测试
集成测试
系统测试
动态测试
静态测试