测试计划包括什么?最重要的是什么?
测试计划包括产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容
目的:明确测试任务和测试方法,保持测试实施过程中的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更
最重要的是测试策略与测试方法。它直接影响到测试任务的执行阶段,所以一般情况下都会对测试策略与方法,以及产生的测试用例进行评审。
测试报告
项目基本情况+测试过程、预期、实际+用例覆盖率、bug率具体数据+总结、分析结论【是否可上线】+为项目复盘提供数据准备
项目简介:项目名称、产品名称、版本
测试环节目标与实现(单元测试、集成测试、系统测试、验收测试等 分支主干测试)、存在的问题、测试结果
数值:用例覆盖率+bug率(严重一般建议)
结论是否可上线
静态分析与动态方法
两者本质的区别是是否真正的运行程序。
- 静态分析是利用工具,对程序进行特性分析。
- 动态方法则是通过测试用例对程序运行进行分析,日常的人工测试属于动态测试。
静态分析技术实现:静态代码扫描
黑盒测试与白盒测试
- 黑盒测试是不考虑程序内部结构和内部特性,依靠需求ui系分等说明文档,检查产品是否满足需求,是否存在bug。
- 白盒测试是分析程序的内部结构,检查代码覆盖以及代码逻辑是否正确。
白盒测试最为常见的程序结构覆盖:
1.语句覆盖:要求被测程序的每一个执行语句在测试中尽可能都被检验过
2.分支覆盖或判断覆盖:要求程序中所有判定的分支尽可能得到检验
3.条件覆盖:当判定式中含有多个条件时,要求每个条件取值均得到检验
4.判断/条件覆盖:同时考虑条件的组合值及判定结果的检验
5.路径覆盖:只考虑对程序路径的全面检验
单元测试采用白盒测试方法,单元测试工具:JUnit、TestNG
确认测试、系统测试采用黑盒测试方法
软件测试方法
- 白盒测试、黑盒测试
- 静态测试、动态分析
- Alpha测试、Beta测试、第三方测试
- 单元测试、集成测试、确认测试、系统测试、验收测试
软件测试过程
单元测试、集成测试、确认测试、系统测试、验收测试
- 单元测试:针对每个单独模块的测试任务,采用白盒测试方法,尽可能多的发现模块内部的程序错误。这一阶段主要是由开发主导完成。
- 集成测试:对完成单元测试的模块进行组装,针对程序结构进行测试。采用黑盒测试方法,设计测试用例。
- 确认测试:测试所开发的软件能否满足需求文档中的功能和性能指标。
- 系统测试:测试产品能都与系统的其他部分协调工作,硬件、数据库、操作人员等
- 验收测试:客户进行验收。
测试用例的组成
用例编号、用例类型【严重、一般、建议】、优先级、前置条件、操作步骤、预期结果、实际结果。
项目中,测试工作如何介入
1.项目前期,需求分析
2.项目开发阶段:准备测试素材,比如测试用例、测试数据、自动化准备
3.项目测试阶段:执行
4.验收阶段:准备环境给相关验收人员验收
5.上线后:线上验证,测试复盘
为什么要开展软件测试工作?
没有经过测试的软件很难在发布之前知道产品的质量,所以测试的工作就是及时发现软件中存在的问题,及时修复,并且在发布之前,从测试报告中得出软件的质量情况。
软件测试类型有哪些?之间的区别与联系
功能测试、性能测试、界面测试
功能测试关注产品的所有功能;性能测试关注产品整体的多用户并发下的稳定性与健壮性,界面测试更关注用户体验,是否易用、是否易懂,是否规范,是否美观,是否安全。
做好测试用例设计的关键是什么?
以最少的用例在合理的时间内发现最多的问题。尽管不可能做到完全测试。
做好测试计划工作的关键是什么?
1.明确测试目标
2.明确内容和过程
3.满足实际需求,采用评审和更新机制保证
4.创建文档:测试计划、测试详细规格、测试用例等
测试用例设计方法
边界值、等价划分法、错误推测法、判定表法、正交实验法、因果图法【输入条件之间的关联】、状态转换法等
保证页面传值
1.页面输入参数与接口传参一致
2.接口请求,java算法,入库,保证数据正确
3.获取数据库参数,经过拼装组成响应数据,保证经过计算的数据正确
4.客户端针对响应数据进行渲染,计算,显示,保证数据与响应数据一致,或计算正确
资源泄露常见检查项?
1.分配的内存是都释放,尤其是在错误处理路径上(对非Java类)
2.错误发生时是否所有的对象被释放,如数据库连接、Socket、文件等
3.同一个对象是否被释放多次(对非Java类)
4.代码是否保存准确的对象reference计数(对非Java类)
质量管理流程
从项目类型角度出发:
- 大而全:符合公司特性、比较严谨
- 小需求:用于日常迭代
- 紧急流程:紧急功能上线、生产环境bug紧急修复
严谨流程:需求评审、ui评审、系分评审、测试评审、代码评审、测试计划、测试执行、测试报告、线上跟踪、项目复盘等