敏捷测试
敏捷宣言
个体与交互 重于 过程和工具
可用的软件 重于 完备的文档
客户协作 重于 合同谈判
相应变化 重于 遵循计划
敏捷测试
强调从用户角度进行测试
重点关注迭代测试新功能,不在强调测试阶段
尽早测试,不间断测试,具备条件即测试
强调持续反馈
预防缺陷重于发现缺陷
敏捷测试&传统测试
传统测试 敏捷测试
测试是质量的最后保护者 开发和测试人员是紧密合作,大家都有责任对软件负责
严格的变更管理 变更是可以接受的,拥抱变更
预先的计划和细节的准备 计划随着进展时常调整
重量级文档 只需要绝对必要的文档
敏捷测试&传统测试2
传统测试 敏捷测试
各阶段测试严格的入口和出口标准 各迭代之间已经没有明显的入口和出口标准
更多在回归测试时进行重量级的自动化测试 所有阶段都需要自动测试,每个人都需要做
严格依赖流程执行 流程不再需要严格执行
测试团队和开发团队是相对独立的 团队合作是无缝隙合作
基于脚本的测试-SBT
Script-based Testing
Scripted Testing(ST)(完全参考测试文档)
探索式测试(ET)
完全抛开测试脚本的测试(完全自由的测试,无任何测试文档和要点支持)
流程
1.了解测试任务重点、测试方向、系统环境,有个整体测试思路
2.详细学习和探索被测系统,了解业务逻辑、具体功能,深入学习被测系统
3.实施阶段,完成主要功能点的测试验收,完成测试点覆盖
4.在上一阶段基础,进一步的深入的发散性的探索测试,挖掘一些深层次东西
5.对前边测试工作做一总结,整理测试信息,根据记录和总结,分析我们测试过程是否有遗漏,覆盖率如何
6.缺陷大扫除:根据上一阶段总结,再针对性的进行大扫除行动0
优点:
更能激发测试人员的创造性和工作乐趣
增加了发现新的或较深入bug的可能性
有利于更加有效地实施自动化
更加适用于敏捷项目
减少了再简单、繁复上用例的无畏编写时间
测试管理上有局限性,较难协调和控制
只有在SUT(系统)已完全可用的前提下才更有作用
ET的生产率很难定义
ET本身较难进行自动化
ST&ET
ST ET
系统性强 自由灵活
容易管理、控制 和ST是互补的
设计在先,执行在后 执行和设计(思考)并行
主要是验证自己的思路 不断和系统交互,带着问题测试
可预见性 学习的过程
局部探索式测试
输入 状态 代码路径 用户数据 执行环境
全局探索式测试
漫游测试法则:商业区、旅馆区、历史区、旅游区、娱乐区、破旧区
基于风险的测试-RBT
定义:一种基于对软件失效的风险评估并以此指导测试计划、设计、执行、结果评价的软件测试类型
那些是风险?
质量风险
管理风险
风险级别=风险可能性×风险严重度
识别风险
可能性 严重程度
复杂性 使用频率
时间压力 失效可视性
高变更率 商业损失
技能水平 组织负面影响和损害
地理分散度 社会损失和法律责任
风险要素分=Sum(单项权分*得分)
基于模型的测试-MBT
主要的MBT工具
Spec Explorer(Mirosoft)
GraphWalker(OpenSource)
Tcases(OpenSource)
modeljunit(OpenSource)