目录
一、什么是软件测试?
1. 调试和测试的区别
2. 优秀的测试人员需要具备的哪些素质
二、基本名词的概念
1. 什么是需求?
2. 什么是BUG?
3. 什么是测试用例?
4. 软件的生命周期?软件测试的生命周期?
三、开发模型
1. 瀑布模型
2. 螺旋模型
3. 增量模型 和 迭代模型
4. 敏捷模型
4.1 scrum
四、测试模型
1. V模型
2. W模型(双V模型)
五、BUG
1. BUG 的描述
2. BUG 的等级
3. BUG 的生命周期
一、什么是软件测试?
软件测试就是验证软件产品特性是否满足用户需求。
1. 调试和测试的区别
(1)目的不同
调试:为了发现并解决软件中的缺陷
测试:为了发现软件中的缺陷
(2)参与的角色不同
调试:开发人员
测试:测试人员、开发人员(单元测试、集成测试...)
(3)执行阶段不同
调试:编码阶段
测试:贯穿于软件的整个生命周期
2. 优秀的测试人员需要具备的哪些素质
(1)综合素质
快速学习能力
沟通能力
文字能力
开发能力
(2)掌握自动化技术
(3)优秀的测试用例的编写能力
(4)探索性思维
(5)兴趣
(6)责任感和抗压能力
二、基本名词的概念
1. 什么是需求?
需求是满足用户期望或正式规定文档(合同、标准、规范)所具有的条件和权能,包含用户需求和软件需求。
用户需求:甲方提出的需求,但当没有甲方时,比如一个软件微信等,用户需求就是客户端用户使用的需求(这个软件要完成的任务),一般都比较简陋。
软件需求:是开发人员要实现的功能,比较详细。一般要将用户需求转为软件需求(转换的过程还要进行市场分析和可行性分析),然后又开发人员实现。
2. 什么是BUG?
(1)当软件需求文档(规格说明)是存在的并且正确的情况下,程序与文档(规格说明)之间的不匹配是错误的;
(2)软件需求文档(规格说明)中没有提到的功能,判断标准由用户为准。当程序没有实现用户所需要的需求功能时,就时错误的。
3. 什么是测试用例?
测试用例是 为了实施测试而向被测试的系统提供的一组集合,包括(标题)、测试环境、测试数据、测试步骤、预期结果等。
4. 软件的生命周期?软件测试的生命周期?
软件的生命周期:需求分析、计划、设计、编码、测试、运行维护。(软件测试贯穿于整个软件的生命周期)
需求分析:分析需求的各个方面。有没有需求量、是否能实现该需求......
计划:实现这个需求,什么时候开始、什么时候结束、要用多长时间...
设计:将需求进一步细化,要用什么接口、用什么技术、用什么框架...
编码:根据产生的需求文档和技术文档进行开发编码。
测试:测试人员参考测试用例进行测试。
运行维护:项目上线后,依然需要进行维护。(修复性维护、完善性维护、预防性维护...)
软件测试的生命周期: 需求分析、测试计划、测试设计与开发、执行测试、测试评估。
需求分析:分别站在用户角度和开发角度对需求进行分析。
测试计划:指定需求计划文档(测试排期、测试工时、测试方法....)
测试设计与开发:设计测试用例;有的项目部分做好了后,由经验丰富的白盒测试人员进行单元测试。
执行测试:依据测试用例执行测试。
测试评估:对于测试执行时的记录,进行回归改进。
三、开发模型
1. 瀑布模型
特点:线性流程、不能够应对变换的需求。
缺陷:
① 风险往往在后期测试阶段才会被发现,失去及时尽早修复的机会;
② 测试被后置,很可能测试不充分,把缺陷遗留给用户。
适用场景:需求固定的小项目。
2. 螺旋模型
特点:引入全流程的风险分析,每次分析完后都会产生一个新的原型。
缺陷:项目的时间拉长了,同时对进行风险分析的人员的要求十分严格,需要庞大的人员和资金的投入。
适用场景:规模庞大、复杂度高、风险大的项目。
3. 增量模型 和 迭代模型
有一个需求,功能包含A、B、C 。
增量模型:
开发完 A 直接上线给用户使用;
开发完 B 直接上线给用户使用;
开发完 C 直接上线给用户使用;
迭代模型:
先开发一个基础版本,可能包含A 、B、C 的功能比较简陋(可能只实现了一部分),然后再在每个这个简陋基础上对 A、B、C继续优化。
4. 敏捷模型
敏捷宣言:
个体与交互重于过程和工具可用的软件重于完备的文档客户协作重于合同谈判响应变化重于遵循计划在每对比对中,后者并非全无价值,但我们更看重前者。特点 :轻流程、轻文档、重目标、重产出
4.1 scrum
scrum 是敏捷开发的一种。其中包含了:三个角色和五个会议。
三个角色:产品经理、项目经理、研发团队。
五个会议:
① 发布计划会议:产品经理从需求池中,对需求进行整理和排序。
② 迭代计划会议:将需求进一步细化分配给人员,并确定工时的确定。
③ 每日例会:人员对自己的需求进行昨天做了什么、今天要干什么、遇到了什么问题。
④ 演示会议:产出了可交付的软件,对软件进行演示。并且可能会有新的需求的修改,再从头开始进行一个周期。
⑤ 回顾会议: 回顾这次周期中的不足之处,进行总结。
四、测试模型
1. V模型
概要设计:设计整体架构、框架;
详细设计:模块和模块之间的详细设计。
特点:
① 明确标注了测试类型;
② 明确标注了测试阶段和开发阶段之间的对应关系。
缺点:
测试被后置,很可能测试不充分,把缺陷遗留给用户。
2. W模型(双V模型)
开发模型 + 测试模型
特点:
① 测试从需求开始阶段就介入了。
② 重文档、重过程;因此不支持敏捷模式。
缺点:
① 上个阶段完成下个阶段才能开始(线性);
② 开发模型和测试模型也保持的一种前后的线性关系。
五、BUG
1. BUG 的描述
描述一个 BUG:
① 发现问题的版本
② 发现问题的环境
③ 发现问题的步骤
④ 预期的结果
⑤ 实际的结果
⑥ 其他....(BUG类型、等级...)
2. BUG 的等级
崩溃、严重、一般、次要。(有的不同的公司,等级不一样)
崩溃:BUG影响到项目的运行打开、死循环、数据库数据丢失...
严重:部分功能丧失...
一般:功能实现了,但是有一点点问题,这个问题不影响功能的使用。
次要: 功能都正常,只是页面有一点问题(需要优化)。
3. BUG 的生命周期