声明:本文只做整体概述,不针对性详述.只要能对流程、概念有大致了,方便去自行搜索.能在测试工作中 把握住方向.
软件测试定义是:为了发现程序中的错误而执行程序的过程,是产品正确性、完整性、质量的保障过程.说通俗一点就是为了找出软件里面的bug,反推开发人员修复再验证的一个过程.最终和开发共同保障了产品的质量.
软件测试的目标:
(1)测试是为了发现程序中的错误而执行程序的过程;
(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;
(3)成功的测试是发现了至今为止尚未发现的错误的测试。
以上是官方对测试目标的解释.lz总结为: 测试的使命是保障一个产品 从需求导入 到 产品维护 整个开发流程中所有的产物进行质量保障.
保障的方式为:通过工具或编码等手段去发现产品的问题.(比对标杆是产品需求) 逆向反馈给开发人员(提问题单方式). 修正后回归.如此反复迭代来保障的.
软件开发的流程简述: 做为测试应该熟悉开发流程,本文只做简述,免得头大脚轻.
需求-设计-编码-测试-验收-运维
可参考博友的详细介绍https://blog.csdn.net/weixin_38404899/article/details/87256652
测试介入点:测试应该在用户需求的时候就介入,来静态发掘其中可能存在的问题.根据需求规格说明书、概设、详设等抽象出测试计划和测试用例.在开发编码配合进行单元测试、集成测试、确认测试,最后进行系统测试和验收测试
下面简单扫盲一下测试流程:
单元测试:又称模块测试,主要是开发来完成,来验证保障一个基本单元、模块、组件等功能.
集成测试:又称组合测试,单元测试保障了基本模块的功能,但模块间配合可能出现很多问题.模块和模块间的交互.接口间的调用等.
确认测试:又称有效性测试,主要用来确认目前实现的功能是否满足需求规格说明书提到的需求.
系统测试:是对整个系统的测试,将硬件、软件、操作人看成一个整体来检验是否符合系统说明书的需求.
验收测试:又称交付性测试,是软件部署之前最后一个测试阶段 确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务
专项测试:区别与以上的阶段性测试,根据产品特点针对性测试: 接口测试 性能测试 压力测试 负载测试 兼容性测试 功能测试 安全测试 健壮性测试 恢复测试 等等.
以上对 开发流程 测试的各个阶段 和针对性测试的概念 都有一个初步了解之后,下面我们进入下一个环节测试推动开发的密码武器-bug单.
问题单:记录测试人员在测试环节发现的问题,开发会根据问题单修复.只要提单 开发必须解决 至少得给个不是问题的说法,最争执的时候通常要各大领导一块过来cbb.所以问题单是测试专属的密码武器,是测试推动开发的神器.
那么问题单包含那些事项呢?
标题:要求尽可能一句话抽象出问题,通过title能看出所属项目 版本 阶段 和什么问题即为好的标题.
类型:问题单类型,一般有缺陷(测试常用)、 story(敏捷开发的概念,开发常用来记录工作进展)、 新功能(和story一样)、任务、网上问题、安全漏洞等
优先级: Highest Minor Low Lowest 严重程度 Critical Maior Minor Trivial 优先级从两个维度去评估一个问题.可能问题不严重,但是影响客户体验,这样的问题就会设置高优先级.也会存在问题严重,但是用户基本无法复现,这样便可以根据项目进展设置合理的优先级.
模块:根据项目业务 把产品抽象成各个子模块.一般是根据业务功能划分.
环境:详细记入测试环境信息 问题概述 问题操作步骤 问题和开发确认信息,复现步骤一定要详细描述操作过程,或截图描述现象.这一记入对开发是很重要的信息.
影响版本:问题版本信息.
复现概率: 一般分为必现 概率复现 偶尔复现 难复现几种.难复现的问题会专门走 疑难问题复现申请.如果仍未复现,每一个月会降低一次优先级,三个月后会关闭问题单.
以上是一个问题单的重点信息 其他信息 如 处理人 上阶段经办人 事件级别 影响类型 等 比较容易理解.
问题单的生命周期:
New:发现新的bug
Open:确认是bug
Fixed:修改后的bug标识
Rejectd:如果认为不是bug就拒绝修改
Delay:认为此bug暂时不需要进行修改
Closed:通过回归测试通过,关闭bug
Reopen:经验证bug仍然存在,需要重新打开bug,进行重新修改.
其他的也是一些概念 比如 白盒测试 黑盒测试 灰盒测试 其实很好理解 黑盒测试就是单纯站在用户角度就使用产品,并不考虑产品实现. 白盒测试 不仅要站在客户角度去思考使用和体验问题,还需要站在开发角度 去思考设计和代码编写中的隐藏问题. 灰盒测试 是介于两者直接.
静态测试和动态测试: 静态测试更多关心的是需求规格书、概设、详设、操作手册、运维手册、部署和维护手册等文档测试,包括代码走读,代码质量检测.简单说 就是不运行代码 来提高产品交付质量.动态测试就是运行代码功能跑起来进行测试.