软件测试阶段与计划
软件测试过程
单元测试
单元测试又称为模块测试,是最小单位测试
- 单元测试具有独立性,可以与系统其他部分分隔离出来,从而完成测试,其依据是详细设计
- 其测试对象是软件设计的最小单位模块与组件,类、文件、窗口、函数、菜单、报表或一个存储过程都可以作为一个单元进行测试
- 单元测试可以发现的缺陷类型
(1)计算错误
(2)需求或功能遗漏
(3)程序路径选择错误 - 执行方法:代码扫描工具:SonarQube + PMD
测试原则
- 尽可能保证测试用例相互独立(测试用例中不能直接调用其他类的方法,而应在测试用例中重写模拟方法)
- 此阶段一般由软件的开发人员来实施,用以检验所开发的代码功能符合自己的设计要求
单元测试的好处
- 尽早的发现缺陷
- 利于重构
- 简化集成
单元测试的不足
- 不可能覆盖所有的执行路径,所以不可能保证捕捉到所有路径的错误
- 每行代码需要3~5行代码进行单元测试,存在投入与产出的平衡
集成测试
集成测试:是将已分别通过测试的单元按设计要求组合成系统或子系统,再进行的测试。目的在于检查这些单元之间的接口是否存在问题。
-
测试目标:API
对集成的组件之间的接口和组件与组件的协同工作进行测试。 -
测试依据
(1)软件和系统设计文档
(2)系统架构
(3)定义和描述接口的文档、工作流和用例等 -
执行方法
(1)工具:Postman
(2)自动化测试框架:python + requests + ddt + nose2
测试原则
- 尽早集成测试关键模块
- 尽早测试包含I/O的模块
集成测试的好处
- 可以检查一系列的环境配置正确与否
- 可以迅速定位BUG
- 可以为功能测试和性能测试提供支持
集成测试的不足
- 难以完成业务场景测试
- 无法测试前端页面
系统测试
是充分运行软件系统,以验证系统是否满足产品的质量需求
系统测试分为:
- 功能测试
- 非功能测试
(1)性能测试、容量测试
(2)安全性测试
(3)兼容性测试
(4)可靠性测试
集成测试和系统测试之间的比较
- 测试内容:集成测试是测试各个单元模块之间的接口,系统测试是测试整个系统的功能和性能;
- 测试角度:集成测试偏重于技术的角度进行测试,系统测试是偏重于业务的角度进行测试。
验收测试
验收测试:也称交付测试,是针对用户需求、业务流程进行的正式的测试,以确定系统是否满足验收标准,由用户、客户或其他授权机构决定是否接受系统。
- 在软件产品完成了系统测试之后、产品发布之前所进行的测试
- 验收测试一般会根据产品产品需求(用户故事),严格的逐项的检查产品,确保所开发的软件产品符合用户预期的各项要求。
软件测试计划
测试计划
为什么要编写测试计划?
- 领导能够根据测试计划做宏观调控,进行相应资源配置等
- 测试人员能够了解整个项目测试情况,以及项目测试不同阶段所要进行的工作等
- 便于其他人员了解测试人员的工作内容,进行有关配合工作
什么时间开始编写测试计划?
- 测试需求分析前总体测试计划,测试需求分析后详细编写测试计划
测试计划编写六大要素?
- Why -为什么要进行这些测试
- What -测试哪些方面,不同阶段的工作内容
- When -测试不同阶段的起始时间
- Where-相应的文档、缺陷的存放位置、测试环境等
- Who- 项目相关人员组成,安排哪些测试人员测试
- How-如何去做,使用哪些测试工具以及测试方法进行测试
测试报告
什么是测试报告?
- 测试报告是测试阶段最后的文档产出物
- 测试报告是指把测试的过程和结果写成文档,对发现的问题和缺陷进行分析,为纠正软件中存在的质量问题提供依据,同时为软件验收和交付打下基础
测试报告的元素?
- 引言(目的,背景,缩略语,参考文献);
- 测试概要(测试方法、范围、测试环境、工具);
- 测试结果与缺陷分析(功能、性能);
- 测试结论与建议(项目概况、测试时间、测试情况、结论性汇总);
- 附录(缺陷统计);
软件测试管理及工具
配置管理
- 通过技术或行政手段对软件产品及其开发过程和生命周期进行控制、规范的一系列措施。配置管理的目标是记录软件产品的演化过程,确保软件开发者在软件生命周期中各个阶段都能得到精确的产品配置
- 配置管理工具是指支持完成配置项标识、版本控制、变化控制、审计和状态统计等任务的工具,如cvs、vss、Harvest、ClearCase等
禅道的使用
- 需求管理
- 用例管理
- bug管理