测试理论基础(思维导图)
一、软件测试基础
二、测试级别
三、系统测试类型
四、软件测试方法
五、软件质量
六、系统测试流程
七、测试用例格式
八、用例设计方法
软件生命周期
软件生命周期(Software Life Cycle,SLC)是软件的产生直到报废或停止使用的生命周期。软件生命周期内有:问题定义、可行性分析、需求分析、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段
1、问题的定义及规划阶段
此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。
2、需求分析/评审阶段
分析来源(原型图/软件需求说明书)、参与人员(主持--产品经理,其他参与、研发、设计、测试)、关注一个问题--测试参与这个需求分析的目的是什么?(知己知彼、方便提出疑问)
3、软件设计
概要设计(数据库 表 等框架性的东西)
详细设计(伪代码级别)
4、程序编码
此阶段是将软件设计的结果转换成计算机可运行的程序代码。在程序编码中必须要制定统一,符合标准的编写规范。以保证程序的可读性,易维护性,提高程序的运行效率
5、软件测试
在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。整个测试过程主要分单元测试、组装测试以及系统测试三个阶段进行。测试的方法主要有白盒测试和黑盒测试两种。在测试过程中需要建立详细的测试计划并严格按照测试计划进行测试,以减少测试的随意性。
6、软件运行维护阶段
版本、产品上线(版本的升级改进)BUG的修复
软件测试用例的设计方法——四大金刚
1.等价类划分法
1.等价类划分法的概念
等价类划分法是一种典型的、重要的黑盒测试方法,是指某个输入域的子集合。在该子集合中,所有的输入数据对于揭露软件中的错误是等效的。
等价划分分为有效等价类和无效等价类,有效和无效是根据条件划分的。
2.错误推测法
输入错误的信息进行检测,看测试程序对错误情况的处理能力。
3.边界值分析法
1.定义:边界值分析法是对等价类划分法的一个补充,边界值一般都是从等价类的边缘值去寻找。边界值分析的基本思想:正好等于、刚刚大于、刚刚小于边界的值做为测试数据。
注意:0和负数都是一个特殊值,我们在考虑边界值的时候同时也要考虑特殊值。
4.场景法(功能做好了才用)(xmind)
整个流程的描述,例如ATM取款流程
7.什么是测试用例
测试用例(TestCast)是为项目需求而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序是否满足客户需求。
可以总结为:每个测试点的数据设计和步骤设计。
7.1测试用例的重要性
1.测试用例是软件测试的核心
软件测试的重要性是毋庸置疑的,测试用例是测试工作的指导,是软件测试质量稳定的保障。影响软件测试的因素很多,如软件本身的复杂程度,开发质量,测试方法和技术的使用。但有些因素是客观存在,不可避免的,如IT团队的流动、环境、情绪等。
2.评估测试结果的基准
测试用例的通过率以及错误率,是测试结束的一个重要依据,用来判断该软件测试结果是否通过,能否达到上线的标准。
3.保证测试的时候不遗漏测试功能点。可以在测试人员疲累的时候起到引导作用。
4.在编写测试用例过程,可以熟悉需求,对系统架构或者业务流程有一个整体的、深入地了解。
5.好的测试用例不仅方便自己和他人查看,而且能帮助设计的时候考虑的更周全,因此测试用例的写作和设计一样,很重要。指导性。
7.2测试用例的八大要素
1.用例编号:产品名-测试阶段-测试项-xxx
2.测试项目:对应一个功能模块(细分功能)
3.测试标题:直接对测试点进行细化得出,输入内容+结果,同一功能模块标题不能重复(一句话说清楚测试点是什么)
4.重要级别:高/中/低
5.预置条件:需要满足一些前提条件,否则用例无法执行(用例可写也可不写)
6.测试输入:需要加工的输入信息,根据具体情况来设计(跟步骤结合起来一定要具有指导性意义)
7.操作步骤:明确给出每个步骤的描述,执行人员可以根据该步骤完成执行工作。
8.预期结果:根据与其输出比对实际记过,来判断被测对象是否符合需求。(预期结果唯一)
9.实际结果:
7.3测试用例使用工具
excel和xmind(都要会用)
8.bug的生命周期(重点)
8.1 bug的定义
软件的Bug,狭义概念是指软件程序的漏洞或缺陷,广义概念除此之外还包括测试工程师或用户所发现和提出的软件可改进的细节、或与需求文档存在差异的功能实现等。
测试工程师的职责是:发现BUG,并提交给开发,让开发去修改。
8.2 bug的类型
要确定一个bug的类型,需要对项目(或产品)有比较深的理解。这个划分对于开发定位问题影响很小,但对问题类型的统计就比较重要了。
常见bug类型划分(禅道系统为例,可自定义):
代码错误
设计缺陷
界面优化
性能问题
配置相关
安装部署
安全相关
标准规范
测试脚本
其他
8.3bug的等级
1,2,3,4级,1级最严重的bug;3属于正常bug。
(1)致命错误:
1.常规操作引起的系统崩溃、死机、死循环,比如对话框输入信息造成程序崩溃;
2.造成数据泄露的安全性问题,比如恶意攻击造成的账户私密信息的泄露;
3.涉及金钱的方面,例如:用户余额为零,却能消费
(2)严重错误:
1.重要功能不能实现;(比如用户无法注册)
2.错误的波及面广,影响到其他重要功能正常实现:功能交互
3.非常规操作导致程序的崩溃、死机、死循环等;
4.外观难以接受的缺陷;
5.密码明文显示(界面+数据库)。
(3)一般错误:
不影响产品的运行、不会成为故障起因,但对产品外观和下道工序影响较大的缺陷。
1.次要功能不能正常实现;
2.操作界面错误(包括数据窗口内列名定义,含义不一致);
3.查询错误,数据错误显示;(张冠李戴)
4.简单的输入限制未放在前段进行控制;(格式限制)
5.删除操作未给出提示;
(4)可忽略错误
例如错别字,或测试人员觉得软件设计不美观等。
8.4bug的生命周期
测试(发现并提交bug至管理系统中)——>指派给对应开发人员
——>开发人员先确认是否是自己的bug,若是,确认;不是,打回测试;不是bug,不予解决,因为不是bug;或延期解决。设计如此;无法重现。——>对于打回的bug,测试再次确定需求,若的确是bug,则再次激活发给开发。——>对于修复后的bug,测试进行回归测试或验证测试,若已经解决,就直接关闭。若还未解决,再次打回给开发。
客服(客户反馈的问题)——>发给测试,若是bug,提交,若不是就告诉客服是客户的操作问题。
测试(需求的确定,需求的变更,和开发扯不清楚)——>产品经理
---------------------
缺陷状态说明
新建:测试中新建的软件缺陷,还没有提交给软件工程师。一般由测试负责人进行评估,如果属于缺陷,修改为“打开”状态;如果不属于缺陷,修改为“取消”状态。
打开:测试中新建的软件缺陷,已提交给相关软件工程师。
待讨论:存在争议,需要软件工程师、需求人员和测试工程师共同确认;该状态是临时状态,在进入最后一轮ST测试执行之前,必须进行处理。
已修复:软件工程师已修正缺陷,等待测试工程师进行验证。
已发布:软件工程师已提交修复版本,并且版本管理员已将修复版本发布到测试环境。
项目内暂不处理:由于各种原因,提交的缺陷需要在后续版本才能修改,或者不修改。项目内暂不处理的缺陷需要由需求人员、软件工程师和测试工程师最终确认。对准备修改的缺陷,在进入最后一轮ST测试执行之前,测试工程师就必须和需求人员、开发人员讨论确定是“转业务需求”还是“转内部需求”,在后续项目进行修复,或者在本项目最后一轮ST测试执行前修复。对一致认可但不准备修复的缺陷,或者不能重现的缺陷,可以将“项目内暂不处理”作为终态。
已否决:软件工程师认为不需要修改,或者按照设计就应该是这样的。对于非本项目或者非本人缺陷,由于设计变更或者版本变更之前的问题现在无法重现,不能否决。无理由否决的,测试工程师一律重新打开。
已分配:转发给其他人处理。也可以转给自己处理,转给自己处理时,表明软件工程师已接受此项缺陷。
重新打开:测试工程师对已修复的缺陷进行验证,发现缺陷仍旧存在。或者测试工程师认为已被否决的缺陷确实需要修改。
已关闭:缺陷已被修复,且回归测试验证成功。
非问题关闭:对于软件工程师否决的缺陷,如果测试工程师认为确实不属于缺陷,则将缺陷状态标记为“非问题关闭”。
转业务需求:该缺陷与业务相关,需要解决,但在本项目中不处理,由需求人员在后续版本中作为业务需求提出。
转内部需求:该缺陷主要是设计实现的问题,不涉及业务需求的变更,需要解决,但在本项目中不处理,由软件工程师在后续版本中作为内部改进需求提出。
取消:测试中新建的软件缺陷,由测试负责人进行评估,确认不属于缺陷,则将缺陷状态标记为“取消”。
====================================================================================================================================================================================================
缺陷严重度说明—非性能测试项目域
一、致命
该类缺陷如果发生会造成基本业务无法使用、或对其他业务造成严重影响、或对我行造成经济损失、法律纠纷、声誉影响等。
● 由于程序所引起的死机,非法退出或系统挂起。
● 死循环。
● 发生线程互锁、数据库死锁等严重资源争用情况。
● 数据转换错误,通讯程序不稳定或通讯程序错误。
● 主要功能缺失。
● 记账错误。
● 严重的数值错误,比如数据库或回单上的客户信息,余额,利息,积数,日期等。
二、严重
该类缺陷如果发生会造成部分业务功能无法使用、或对其他业务造成一定影响、部分功能实现造成较大的错误理解等。
● 影响业务进行的主要功能与需求不符。包括设计与需求不符,以及实现与设计不符。
● 非主要功能未实现。
● 程序引起的接口或数据通讯错误,导致数据缺失,信息传输错误等。
● 导致资金或是账务错误等关键字段的数值计算错误。
● 操作权限错误。
● 异常处理遗漏或错误。
● 存在严重性能问题。
● 显示或打印的关键信息格式与需求定义存在大的偏差。
● 关键的输入限制未进行控制。
三、一般
该类缺陷如果发生会对非主要功能造成影响、或者有较为快速方便的规避方式、有较小的错误理解等。
● 与设计文档不符的界面错误。
● 非主要功能实现不正确,但不影响业务进行。
● 非关键信息的计算错误,如页码的计算错误。
● 打印的非关键信息错误;由于内容超长导致的格式错误。
● 简单的输入限制未进行控制。
● 业务操作缺少交互式的确认提示信息。
● 错误提示信息错误。
● 系统处理速度较慢,可能存在性能风险。
四、较小
该类缺陷如果发生会使用户不方便或遇到麻烦,但它不影响执行工作功能或重要功能。
● 辅助说明描述不清楚。
● 显示格式不规范,界面有错别字。
● 长时间操作未给用户进度提示。
● 提示窗口文字未采用行业术语。
● 错误提示信息不清晰。
● 可输入区域和只读区域没有明显的区分标志。
● 界面布局不合理、用户体验效果不佳、操作界面与用户使用习惯不一致,但不影响系统正常使用。
● 建议。
五、建议及警告
针对系统功能实现方式、组织方式、界面布局、用户体验、易用性等方面提出的修改建议(此类缺陷不会给系统带来直接的负面影响或安全隐患)。
====================================================================================================================================================================================================
缺陷严重度说明—性能测试项目域
一、致命(P1)
该类缺陷如果发生会造成基本业务无法使用、或对其他业务造成严重影响、或对我行造成经济损失、法律纠纷、声誉影响等。
● 由于程序所引起的死机,非法退出或系统挂起。
● 死循环。
● 记账错误。
● 应用服务器或数据库服务器出现崩溃或不可用。
● 交易错误率>10%。
二、严重(P2)
该类缺陷如果发生会造成部分业务性能无法使用、或对其他业务造成一定影响、部分功能实现造成较大的错误理解等。
● 数据库出现严重锁等待、死锁。
● 严重线程阻塞。
● 5%< 交易错误率% <10%。
● TPS和响应时间严重不达标。
● 发现架构设计缺陷。
三、一般(P3)
该类缺陷如果发生会对性能造成一定影响、部分功能会出现一些错误。性能指标:1)错误率<10%;2)TPS和响应时间不达标;3)操作系统资源消耗过大。
● 0.5%< 交易错误率% <5%。
● TPS和响应时间不达标。
● 服务器资源消耗过大。
● 非功能测试案例不通过。
● 参数设置不合理。
四、较小(P4)
该类缺陷如果发生会不会影响到交易的性能,但客户体验上会相对比较差。
● 前端页面性能明显BUG。
五、建议及警告(P5)
已达到预期性能指标,但还可以提升性能的建议。
=====================================================================================================================================================================================================
缺陷类型说明
缺陷类型有三个一级类型分类,各个一级类型下有多个二级类型分类。提缺陷时,类型有二级类型时必须选择二级类型。
一级类型:01-功能性缺陷 二级类型:11-功能错误
● 实现与提供的需求不一致
● 使用的计算方法或计算公式错误
● 影响账务或可能导致法律纠纷的关键数据的计算错误,比如针对数据库和客户回单上账户余额、利息、积数、冻结金额、可用余额、额度等关键信息的计算错误
● 变量初始数据错误
● 系统数据初始化错误
● 数组越界或缓冲区溢出
● 数据结构或数据库表结构设计有问题
● 写入数据库表的内容错误,比如出现重复记账或表内账单边账
● 死循环
● 业务功能重复或缺失
● 业务功能实现与需求不符
● 流程控制不符合需求
● 流程实现不完整
一级类型:01-功能性缺陷 二级类型:12-用户界面错误
● 控件布局、格式不统一
● 界面控制错误
● 界面布局与界面规范不一致
● 打印或输出格式错误
一级类型:01-功能性缺陷 二级类型:13-通讯及接口错误
● 通讯接口不匹配
● 通讯接口数据转换错误
● 通讯程序不稳定
● 通讯程序错误
一级类型:01-功能性缺陷 二级类型:14-信息提示错误
● 提示信息重复
● 提示信息内容错误
● 提示信息内容模糊,不能准确判断错误原因
● 提示信息出现时机不对,或焦点位置错误
一级类型:01-功能性缺陷 二级类型:15-异常处理错误
● 程序未进行异常处理
● 异常处理不正确或者不合理
一级类型:02-非功能缺陷 二级类型:21-易用性错误
● 不符合常识或不符合操作习惯
● 操作使用不友好,不易操作等
一级类型:02-非功能缺陷 二级类型:22-性能错误
● 批量处理时间过长
● 联机业务响应时间过长导致资源争用,造成互锁或死锁问题,如线程同步问题或数据库锁等待
一级类型:02-非功能缺陷 二级类型:23-安全性错误
● 用户和权限控制错误
● 有SQL注入漏洞
● 有跨站点攻击漏洞
● 有其他安全性漏洞
一级类型:02-非功能缺陷 二级类型:24-兼容性错误
● 在不同操作系统、不同浏览器上的错误
● 与不同版本匹配出现的错误
一级类型:02-非功能缺陷 二级类型:25-安全性错误
● 数据错误
● 脚本错误
● 功能问题
● 硬件问题
● 环境问题
● 数据库问题
● 网络问题
一级类型:03-文档类缺陷 二级类型:31-评审类缺陷
● 各类评审活动发现的缺陷
一级类型:03-文档类缺陷 二级类型:32-其他文档错误
● 各类评审活动发现的缺陷
====================================================================================================================================================================================================
缺陷归属说明
项目内:表示该缺陷是由于该项目新增或者修改功能而导致的缺陷;
项目外:表示该缺陷不是由于该项目新增或者修改功能而导致的缺陷,是由于其他产品引起或该产品一直遗留的缺陷。若不在本项目解决,必须挂系统产品,状态设为项目暂不处理。如果项目外缺陷项目内修复,这缺陷归属需重新选择为项目内。
行外系统:表示该缺陷是由于行外系统导致的,但是如果该项目涉及到行外系统的再维护和开发,不属于此范畴。
如果认定为行外缺陷,则系统产品栏位需选择事先定义好的虚拟行外产品。