测试理论--软件测试的定义
什么是软件?
软件是计算机系统中与硬件相互依存的另一部分,
软件包括程序+文档
什么是软件测试?
(1)软件测试是在现有软件(程序+文档)中寻找缺陷的过程;
(2)软件测试是指使用人工或者自动化手段来运行或测试某个系统的过程,目的是检验系统是否满足需求规格说明书中的要求
软件测试的目的?
测试的目的是找出软件产品中的错误,使软件尽可能的符合用户的要求。
黑盒测试:
又叫功能测试,把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程,根据规格说明书,通过操作软件验证程序的功能是否与规格说明书规定的一致。
白盒测试:
也称结构性测试,是基于代码的测试,按照程序内部的逻辑结构,检测程序是否能按预定要求进行正确的工作。
回归测试:
回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。
冒烟测试:
什么是测试用例?
测试用例是由测试人员在测试执行之前编写的文档,用于指导测试过程
什么是软件缺陷?(如何识别bug)
(1)需求规格说明书中要求的功能未实现
(2)需求规格说明说中未要求的功能实现了
(3)程序中出现了需求规格说明书中指明不该出现的问题
(4)需求规格说明书中虽未明确提及,但必须实现的功能未实现
(5)程序难以理解,不易使用,界面不美观,用户体验不好等
(6)参照需求文档,实际与文档不符就是bug
(7)与需求人员,开发人员,用户进行讨论
(8)参照测试用例中的预期结果,实际结果与预期结果不符的就是bug
第一台计算机诞生在什么时候?叫做什么名字?
1946-2-15,叫做“艾尼阿克”
计算机的层次?
计算机分为3个层次:应用软件、操作系统、计算机硬件/裸机
裸机包含软件吗?如何进入?
裸机也包含软件,主要是bios程序;
开机或重启以后,迅速按下“delete”键(如果是笔记本,一般为功能键,如F2)
软件的分类?
软件包括系统软件和应用软件
按照系统软件划分?
操作系统、操作系统的补丁程序、驱动程序
按照软件结构划分?
可分为单机版软件和分布式软件;
根据客户端的特点将分布式软件分为c/s结构和b/s结构
什么是c/s结构和b/s结构?
①C/S结构:client/server客户端/服务器结构,客户端需要使用该公司提供的专门软件才能享受服务,QQ、微信、滴滴打车
②B/S结构:browser/server浏览器/服务器结构,客户端只要有浏览器就可以访问服务,网站、搜索引擎、论坛
什么是缺陷报告?
缺陷报告记录了测试人员在测试时发现的缺陷,是测试人员和开发人员交流和沟通的重要工具
缺陷报告包括那些(重要组成)?
1.缺陷编号:Defect
2.缺陷标题:Summary
3.缺陷的所属模块:Subject
4.缺陷的发现者:Detected By
5.缺陷的发现日期:Detected on date
6.缺陷的发现版本:Detected in release
7.缺陷指派给:Assigned to
8.缺陷的状态:Status
9.缺陷的严重程度:Serverity
10.缺陷的优先级:Priority
11.缺陷描述:Description
提交缺陷报告时,缺陷的等级划分
严重级别(S1):系统崩溃、数据丢失、数据毁坏
较严重(S2):流程走不通、操作性错误、结果错误
模块性错误(S3):功能遗漏、功能不实现
一般错误(S4):小问题,错别字,界面排版不合理等
建议性错误(S5):不影响产品质量的瑕疵
缺陷报告的处理流程?
1.测试人员发现新的bug,将状态改为new,转交给开发经理
2.开发经理验证该bug是否有效:
如果是缺陷,将状态改为open,分配给相应的开发人员
如果不是缺陷,将状态改为rejected
3.开发人员看到指派给自己的bug,进行修改,修改完后,把缺陷状态改为fixed
4.测试人员对修复的bug进行返测:
如果反测成功,将缺陷状态改为closed
如果返测失败,将缺陷状态改为reopen
缺陷报告的用途?
1.记录bug
2.对bug就行分类表达
3.跟踪管理bug
4.对bug进行分析,统计
缺陷的严重程度是什么?分为哪些等级?各代表的含义是什么?
缺陷的严重程度是表明bug对软件或用户造成的影响有多大
1.Urgent:造成死机,系统崩溃等致命问题
2.Veryhigh:非常严重的问题
3.High:严重的问题
4.Medium:中等程度的问题
5.Low:小的问题(尽量在发布之前解决)
缺陷的优先级是什么?分为哪些等级?各代表的含义是什么?
缺陷的优先级是希望程序员在什么时间,或在程序的哪个版本中修复bug
1.Urgent:立即修改,否则影响开发或者测试的进度
2.Veryhigh:本版本修改
3.High:下个版本修改
4.Medium:发布之前修改
5.Low:允许在发布中存在的bug
优先级需要考虑哪些重点因素?
1.严重程度:一般严重程度越高,优先级越高(但不是严格成正比关系)
2.影响范围:一般影响范围越大,优先级越高
3.开发组的任务压力:任务压力越小,优先级越高
4.解决bug的成本:成本越低,优先级越高
什么是缺陷描述?
把发现bug的步骤、过程、使用的数据记录下来,让程序员通过此描述重视bug
所有的bug在软件发布之前都必须解决的吗?
不是所有的bug在软件发布之前都能够解决;
对于没有解决的bug,一般要通过项目组的讨论,明确不解决bug的风险、给用户造成的损失以及解决缺陷的成本
编写测试用例有哪些方法?各方法的应用场合?
1.等价类划分法
只要有数据输入的地方就可以使用,从无穷多的数据中挑选出少数代表性数据进行测试
2.边界值法
只要有数据输入的地方就可以使用,往往和等价类划分法一同使用,形成一套完善的测试方法;找到有效数据和无效数据的分界点,对分界点及其两边的点,进行单独测试
3.因果图法
在一个界面中有多个控件,控件之间存在一定的组合关系和限制关系,不同的输入组合会产生不同的输出结果,为了弄清输入组合和输出之间的对应关系,选择因果图法
4.判定表法
判定表和因果图本质上是一种方法,都是解决控件组合问题,判定表法是因果图法的简化
5.正交排列法
6.场景法
7.测试大纲法
写用例时的参考?
1.需求文档(开发文档如果可以参考最好)
2.对照已经开发出来的程序
3.与需求人员,开发人员,用户进行沟通
测试思想?
穷举测试是最完善的测试方法,但由于时间成本过高,实际工作中不宜采用。
所以在保证质量的同时,使用最少的数据完成测试过程。
什么是有效等价类?
对程序的规格说明有意义,合理的数据的集合,程序接收到有效等价类数据应该正确计算执行
什么是无效等价类?
对程序规格说明无意义,不合理的数据集合,程序接收到无效等价类数据,应该给出错误提示,或根本不允许输入
无效等价类主要考虑的因素?
1.需求要求不能为空或必填,无效等价类就是为空
2.数据有范围要求,无效等价类就是超出范围
3.字符有个数要求,无效等价类就是超出规定的范围
4.数据有格式样式类型的要求,无效等价类就是测试格式样式。类型非法
5.需求有小数点位数要求,无效等价类就是保留位数超过范围
6.需求要求不能重复,无效等价类就是重复
一个好的软件的基本特点?
1.要求的功能要实现
2.具有很强的异常处理能力(健壮性)
V模型及优缺点
优点:
1.测试阶段划分明确
2.和开发的对应关系明确
3.既包含底层测试(单元测试)又包括用户级测试(验收)
缺点:
1.容易理解成软件测试是开发完成之后才参与的
2.没有体现出测试前期的工作(写计划、用例、测试文档),不符合越早测试和不断测试的原则
深入理解:
1.对需求、开发文档进行测试
2.根据开发文档编写测试计划、测试用例等,为执行用例最准备