一、bug引发的思考
1.1什么是bug
bug翻译为虫子,最开始导致系统异常是由于一只虫子引起的,现在是指程序的漏洞。
1.2bug基本分类
功能逻辑bug
用户体验bug
1.3bug是如何产生的
程序在开发时考虑的不周全
程序设计不符合用户使用习惯
二、软件测试的本质是什么
技术上要以任何方法和手段发现bug
思维上以多视角的方式观察项目,预防bug
2.1软件测试的方法和手段
一般的方法和手段
从软件本身出发
从需求、功能实现、性能等角度发现软件本身的bug,通过手动或自动化测试发现软件bug
优点:注重软件本身、工作量不大
缺点:没有预防手段,发现bug时在修补回溯的流程比较长,耗时
从项目生命周期的全流程进行质量把控
强调预防,更高效
2.2如何开始软件测试的工作
测试工作的简要流程
了解需求
测试用例设计
测试环境准备
根据用例执行测试
bug记录与上报
bug修复(开发)
bug修复后的验证
形成测试报告
项目上线
生产环境验证
三、软件测试的前置知识
3.1软件的定义
软件的分类
客户端软件
移动端软件
小程序软件
网页软件
软件的简版架构
用户层:用户直接看到和操作的部分
服务层:软件的核心处理逻辑的部分
数据层:存储数据的部分
3.2软件项目是如何诞生的
发现需求
测算市场规模
竞品调研
设计商业模式
设计产品模型
软件架构设计
软件开发
软件测试
线上部署
运营维护
软件设计
3.3为什么要进行软件测试
任何产品生产出来都是有可能存在瑕疵的
软件测试是保证软件质量最重要的一环
3.4一个项目各个阶段涉及人员及工作内容
需求阶段——产品经理,负责需求调研、竞品分析、产品原型设计
需求评审——所有成员参加,产品经理为大家讲解产品需求的逻辑
设计阶段
ui、ue
架构师
开发阶段
前端开发
后端开发
测试阶段——测试工程师,负责软件实现后的质量检查
运营维护
运维工程师,负责线上服务器的服务部署与维护
数据库管理员,负责线上数据库的服务部署与维护
3.5项目开发模型
瀑布模型
优点:严格规定了每个阶段必须提交的文档,项目的推进必须按照一定的顺序来做
缺点:严重依赖项目文档,脱离用户真实需求,在可运行的软件产品交付给用户之前,用户只能通过文档来了解产品是什么样的,和可能导致最终开发出来的软件产品不能真正满足用户的需要,也不适合需求模糊的系统
V模型
一种传统软件开发模型,适用于一些传统信息系统应用的开发,由于其模型结构图形似V字母,所以称为V模型。模型中明确的标注了测试过程中存在着哪些不同的测试类型,并且清楚地表达了测试阶段和开发过程各阶段的对应关系。需要软件开发完成后才开始测试活动。
优点:
包含了从底层到顶层的测试
更清楚的标示了开发和测试的各个阶段
自上而下逐步求精,每个阶段分工明确,便与整体项目的把控
缺点
自上而下的顺序导致测试工作在编码后,不能及时的进行修改
实际工作中,需求经常变化,导致V模型步骤反复执行,返工量很大,灵活度较低
W模型
也是一种传统软件开发模型,由两个V字模型组成,分别代表测试与开发过程,测试的活动与软件开发同步进行,测试的对象不仅仅是程序,还包括需求和设计。
优点
测试伴随着整个开发周期,需求和设计同样要测试
更早的介入测试,可以发现初期的缺陷,修复成本低
分阶段工作,方便项目整体管理
缺点
开发和测试依然是线性关系,需求的变更和调整,依然不方便
如果没有文档,无法执行W模型
对于项目组成员的技术要求更高
四、bug的生命周期
bug的分类
功能型bug:产品实现过程中,具体逻辑的实现错误
需求型bug:指在软件项目管理过程中,需求阶段就埋下了隐患,如未按照需求实现、需求理解错误或需求未描述清楚等情况。
性能型bug:指软件在多人同时使用或长时间运行时出现了响应慢、崩溃的情况
常识型bug:在过去用户一直是这样认为的,已经形成一种约定俗成的规矩,但软件设计或开发人员就不按照此规矩
从项目角度看bug的生命周期