xxxxxxx 项目测试方案
1 引言
1.1 系统概述
项目背景
1.2 文档概述
本文档描述了 xxxx 系统内部的测试阶段工作的相关情况,内容包括进行测试环境的测试、测试工作的标识以及测试工作的时间安排等,在实际工作中指导测试人员完成测试工作。主要包括以下几点目的:
尽可能发现新系统中的错误,以便开发进行修复,提供系统的可靠性
确定测试策略,并对测试策略加以说明。性能测试详见性能测试方案。
确定所需要的测试资源,对测试工作量进行估计
1.3 范围
设计 xxxxx 系统测试方案,通过以下方案用以验证
系统最小单元是否存在逻辑漏洞 --------- 单元测试
系统内部子模块以及外部的接口是否符合接口规定并正常运行 ----------- 集成测试
系统功能是否满足需求规定并能够正常运行 ------- 集成测试,系统测试,验收测试
系统性能是否满足需求规定并能够正常运行 ------- 性能测试
系统安全性是否满足安全规定并能够正常运行 ------- 安全测试
2 系统测试环境
2.1 测试环境
开发环境: 单元测试
自动化环境:集成测试,系统测试
测试环境:系统测试
生产环境: 压测,验收测试
2.2 测试工具
3 计划
3.1 总体计划
此次项目尝试 TDD 测试驱动开发和测试金字塔两个新理念来规划测试。
TDD 测试驱动开发的理念:开发未动测试先行,分析需求拆分任务;将任务转化为测试用例;编写动能代码,尽快代码测试通过;代码优化重构;重复以上步骤。
测试金字塔的理念:测试工作往前移(对应于测试金字塔是往下沉),要把单元测试、集成测试做得更加充分和完善。而上面的系统测试只需要针对关键业务进行回归测试即可
按照测试阶段划分为几大步:
单元测试(白盒测试):go 语言代码使用 go test 框架实现单元测试,最终分支覆盖率达 90%
集成测试(灰盒测试):接口 wiki 归档,通过 python+robotframework 实现覆盖所有接口,通过接口组合,进行模拟异常和场景测试
系统测试(黑盒测试):新系统与其他系统接入,进行真实场景测试。从一个业务线先开始逐步对接所有业务线进行测试。
验收测试(黑盒测试):财务及业务线进行功能进行验收测试
除此之外之外还要进行专项测试:
性能测试:基于建设目标,评估亿级核心指标,go 脚本模拟亿级请求压力进行性能测试。压力测试和浸泡测试
安全测试:对系统安全防护手段进行测试,接口验签,模块验签,数据库验签
3.2 测试类别及验收标准
3.2.1 单元测试
3.2.2 集成测试
3.2.3 系统测试
3.2.4 验收测试
3.2.5 性能测试
3.2.6 安全测试
3.3 计划执行的测试
3.3.1 系统分析
-------系统架构分析-----
3.3.2 测试设计
宏观上:
进行测试设计时,我们要对系统内部,系统与外部的交互,系统内部各模块以及各模块之间的交互都进行测试。
系统内部:
各模块之间的交互测试
系统与外部的交互:
微观上:
系统测试时,要先关注主要功能和业务流程是否正确实现,这就需要场景法来完成测试。业务流程测试没有问题,我们再去关注条件的等价类、边界值等细节测试。(先整体后细节)
使用场景分析法,梳理出所有功能场景和业务场景(功能场景的组合)
使用判定表分析法,根据每个功能场景输入输出条件进行覆盖 (每种条件组合用等价类边界值分析法继续发散覆盖)设计用例
使用功能图分析法,根据状态迁移图(控制流程图)设计状态迁移用例;根据逻辑模型使用判定表分析法(每种条件组合用等价类边界值分析法继续发散覆盖)进行设计局部用例;迁移用例和局部用例结合覆盖所有路径
使用错误推测法,基于经验和直觉,针对程序可能发生错误设计用例
3.3.3 测试入口准则
1.单元测试:用例全部通过,输出报告
2.集成测试:用例全部通过,输出报告
3.系统测试:用例全部通过,输出报告
4.验收测试:用例全部通过,输出报告
5.性能测试:用例全部通过,输出报告
6.安全测试:用例全部通过,输出报告
3.3.4 测试通过标准
1 设计用例全部执行完成,因其他因为未执行用例有相应记录
2.无业务逻辑错误,所有缺陷均有结论
3.性能测试符合要求
4.安全测试符合要求
3.4 测试用例
3.4.1 单元测试用例统计
-----xxxx-----
3.4.2 集成测试用例统计
-----xxxx-----
3.4.3 系统测试用例统计
-----xxxx-----
3.4.4 验收测试用例统计
-----xxxx-----
3.4.5 性能测试用例统计
详见性能测试报告
3.4.6 安全测试用例统计
详见安全测试报告
4 测试实施
4.1 实施策略
开发环境:单元测试
自动化环境:集成测试,安全测试
压测环境:性能测试
测试环境:系统测试
预发布环境:系统测试
生产环境:验收测试
4.2 缺陷管理
测试期间发现的 bug 统一录入到 tapd 项目中,录入时进行各个阶段的分类,根因标识
上线前所有 bug 必须有结论,遗留问题需项目经理,开发,测试达成共识,评估风险是否可以带风险上线
5 测试输出文档
测试方案
测试用例
缺陷列表
测试报告
性能测试报告
安全测试报告
6 复盘
1.缺陷复盘
2.用例复盘
3.方案复盘