按测试阶段划分:
按测试技术划分:
按被测试对象是否运行划分:
按不同的测试手段划分:
按测试包含的内容划分:
其他测试:
软件生命周期(Software Life Cycle,SLC)是软件的产生直到报废或停止使用的生命周期。软件生命周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,也有将以上阶段的活动组合在内的迭代阶段,即迭代作为生命周期的阶段(软件开始研制到最终被废弃不用所经历的各个阶段)
问题的定义及规划
主要确定软件的开发目的及其可行性。制定项目总体开发计划
需求分析
在确定软件开发可行的情况下对软件需要实现的各个功能进行详细分析,明确客户的需求,输出需求规格说明书终版(原型图),提交评审
设计
把需求分析得到的结果转换为软件结构和数据结构,形成系统架构
概要设计:
主要是架构的实现,指搭建架构、表述各模块功能、模块接口连接和数据传递的实现等项事务
详细设计:
对概要设计中表述的各模块进行深入分析等,其中需要包含数据库设计说明
编码
按照详细设计好的模块功能表,编程人员编写出计算机可运行的程序代码
软件测试
在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。测试的方法主要有白盒测试跟黑则试两种。建立详细的测试计划并严格按照计划进行
单元测试:
主要是测试程序代码,为的是确保各单元模块被正确的编译,比如有具体到模块的测试,也有具体到类,函数、方法的测试等。(一般是开发来完成)
集成测试:
单元测试后,将各单元组合成完整的体系,测试软件单位之间的接口是否正确、数据能否正常传递
系统测试:
把软件系统搭建起来,按照软件规格说明书中所要求,测试软件其性能功能等是否和用户需求相符合,在系统中运行是否存在漏洞等(根据测试用例,进行完整的系统测试)
验收测试:
主要就是用户在拿到软件的时候,在使用现场,会根据前边所提到的需求,以及规格说明书来做相应测试,以确定软件达到符合效果的(用户对软件进行验收)
运行维护
软件维护是软件生命周期中持续时间最长的阶段。在软件开发完成并投入使用后,由于多方面的原因,软件不能继续适应用户的需求。要延续软件的使用寿命,必须对软件进行维护。软件的维护主要包括纠错性维护和改进性维护两个方面
RAD(Rap Application Development,快速应用开发)模型是软件开发过程中的一个重要模型,由于其模型构图形似字母V,所以又称软件开发的V模型。它通过开发和测试同时进行的方式来缩短开发周期,提高开发效率。
敏捷开发模式是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,相对于 “非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重做为软件开发中人的作用。
迭代式开发也被称作迭代增量式开发或迭代进化式开发,是一种与传统的瀑布式开发相反的软件开发过程,它弥补了传统开发方式中的一些弱点,具有更高的成功率和生产率
增量,是强调软件在发布不同的版本时,每次都多发布一点点,是软件功能数量渐增地发布的过程
阅读需求,理解需求,主要就是对业务的学习,分析需求点。参与需求评审会议
主要任务是编写
测试计划
,参考软件需求规格说明书、项目总体计划,内容包括测试范围(来自需求文档)、进度的安排,人力物力的分配,整体测试策略的制定,和风险的评估与规避措施有一个制定,一般由测试负责人编写,当然我们可能也会参与相关的评审工作
主要任务是编写
测试用例
,会参考需求文档(原型图)、概要设计、详细设计等文档,有不明确的也会及时和开发、产品经理沟通。用例编写完成后会进行评审
首先搭建测试环境,执行预测(冒烟),以判定当前版本可测与否,如果预测通过,正式进入系统测试,遇到问题提交Bug到缺陷管理平台,并对
bug
进行跟踪,直到被测软件达到测试需求要求,没有重大bug,测试结束。(完善测试用例)
出
测试报告
,对整个测试的过程和版本质量做一个详细的评估。确认是否可以上线
功能性
性能
安全性
兼容性
可靠性
易用性
安装/卸载
可移植性
可维护性
测试输入
、执行条件
以及预期结果,以便测试某个程序是否满足客户需求每一个测试点的数据设计和步骤设计
用例编号
:产品名_测试阶段(IT,ST,UAT)_测试项_xxx(英文英文)或者项目_编号,例如:电商项目_ST_登陆_001(集成测试:IT(Integration Testing),系统测试:ST(System Testing),用户验收测试:UAT(User Acceptance Testing))测试项目
:对应一个功能模块(细分功能)测试标题
:直接对测试点进行细化得出,输入内容+结果,同一功能模块标题不能重复(来自测试点)重要级别
:高/中/低(高:主要核心业务功能,冒烟用例 中:错误异常的测试点 低:兼容性,界面错误)预置条件
:需要满足一些前提条件,否则用例无法执行测试出入(数据)
:需要加工的输入信息,根据具体情况来设计(跟步骤结合起来一定要具有指导性意义)操作步骤
:明确给出每个步骤的描述,执行人员可以根据该步骤完成执行工作预期结果
:根据预期输出比对实际结果,来判断被测对象是否符合需求(预期结果唯一,不能出现 “是否或者”)实际结果
:等价类划分法用例设计原则
尽可能多地覆盖
尚未被覆盖的有效等价类,重复这步,直到所有的有效等价类者覆盖为止(用最少的用例去覆盖最多的有效等价类)仅覆盖一个
尚未被覆盖的无效等价类
,重复这一步,直到所有的无效等价类都被覆盖为止(用最多的用例去一一覆盖无效等价类)什么是场景法
如何使用场景法
流程图
注意:场景法的重点是测试流程,因此每个流程一个用例验证即可,流程测试没有问题并不能说明系统功能没有问题了,还需要针对
单步的功能进行测试,只有单个功能点和流程测试,才算是充分的测试
经验、知识、直觉
注意:一般因果图判定表结合使用
案例
如果感到疲倦则休息,如果不疲倦且不感兴趣则跳入下一章
如果不疲倦且感兴趣且感到糊涂则重读一遍
如果不疲倦且感兴趣且不感到糊涂则继续阅读
注意:一般因果图判定表结合使用
利用因果图来设计测试用例时,作为输入条件的原因与输出结果之间的因果关系,有时很难从软件需求规格说明中得到。往往因果关系非常庞大,以室于据此因果图而得到的测试用例数目多的惊人,给软件测试带来沉重的负担,为了有效地,合理地减少测试的工时与费用,可利用正交实验设计方法进行测试用例的设计。
因果关系非常庞大的情况下,一般使用正交实验法进行测试
正交实验法分析步骤:
正交表公式:
软件的Bug,
狭义概念是指软件程序的漏洞或缺陷
,广义概念除此之外还包括测试工程师或用户所发现和提出的软件可改进的细节
、或与需求文档存在差异的功能实现
等。我们的职责就是,发现这些Bug,并提交给开发,让开发去修改。
代码(功能)错误
:实现的功能与需求不一致导致的bug,这类bug是最多的界面优化
:界面不好看,或者不符合用户习惯的这类bug设计缺陷
:与开发、产品需求文档不一致后台配置相关
产品体验
安全相关
性能问题
标准规范
需求未实现
历史BUG
历史问题优化
其他
bug的生命周期,就是一个bug被发现到这个bug被关闭的过程。生命周期中一般缺陷状态:新建(提bug)→ 指派 → 已解决 → 待验 → 关闭,如果待验的bug在验证时没有解决好,我们需要重新打开(激活)→ 指派 → 已解决 → 待验,循环这个过程。中间其他状态:拒绝、延期等
已经指派的bug
:已经指派给开发的,请注意自己bug的走向,随时关注并进行跟踪!如果一直未修复,提醒开发修改,以免开发忘记;如果已经修复等待测试环境更新后进行验证。(催着改bug)已解决的bug
:等待测试环境更新后进行验证,验证通过则关闭,验证不通过则重新打开指派给开发重复bug
:先去查看下是否跟开发指定的bug重复,如果确定是重复则关闭;如果不重复,说明原因,重新打开指派给开发不是缺陷
:再次依据需求确认是否是bug,如果依然觉得是缺陷跟开发沟通列举出来觉得是bug的点,沟通未达一致找产品确认,确认是bug注明情况并再次指派给开发,产品确认不是bug,就不纠结,直接关闭bug,但是,会拿小本本把这个bug记录下来,等到测试任务结束后,再来研究研究无法重现
:确认开发环境是否跟测试环境一致,包括操作步骤、浏览器、环境、特定账号、输入数据等,如果多个版本验证之后,如开发所说重现不了,依据bug的严重程度跟产品、开发一起确认关闭;如果找到重现原因,注明清楚并再次指派给开发不予解决
:找产品经理进行确认。确认不予解决进行关闭;确认需要解决请备注原因并打开指派给开发设计如此
:找产品经理进行确认。确认设计如此进行关闭;确认是问题,备注原因重新指派给开发延期修改
:请看下bug严重程度,是否影响当前版本发布?与产品经理进行确认不予延期请根据情况进行激活与情况说明;确认延期则做好记录,后续版本进行关注——不关闭发现bug后,接下来你提交到bug管理平台,提交一个bug包含哪些内容?
bug标题
:标题要清晰简洁,写明bug描述
;如果没有选择功能模块,最好在标题中标注功能模块。让查看bug的人员清楚知道你所表达的意思。 bug的功能模块 + bug的操作 + bug的结果
重现步骤
:详细写下发现bug的测试过程。能指导开发重现这个bug
。附上测试数据
实际结果
:出现bug的结果,粘贴bug截图、日志截图
预期结果
:记得写清楚预期
bug类型和严重程度
:便于后续测试结果分析,bug的统计bug测试环境
:例如:什么系统,哪个版本等。兼容性问题、难以重现
附件
:日志文件,文件测试数据
。图片、崩溃日志文件等