软件测试|基本知识(含思维导图)
一、软件测试概况
1、测试原则
(1)完全测试是不可能的。不可能找出所有错误
(2)测试存在风险。测试不全面
(3)测试只能表明缺陷的存在。不能证明没有缺陷
(4)产品潜在错误书与已发现错误数成正比。
(5)让不同cesium人员参与测试工作中。避免固定测试思维
(6)开发者与测试者分开
(7)设计用例时,包括输入数据和预期的输出结果两部分,且输入数据包括合法与非法的情况。
(8)集中测试易出错或错误较多的模块。二八定律
(9)长期保留所有测试用例。进行回归测试
2、软件测试模型
指:软件测试全部过程、活动或人物的结构框架。应阐明的问题:(1)测试时间(2)测试步骤(3)如何对测试进行计划(4)不同阶段的测试中应关注的测试对象(5)测试过程中应考虑哪些问题(6)测试需要达到的目标。
V模型、W模型、H模型
3、测试分类
按时间阶段:单元测试、集成测试、系统测试、验收测试
按是否运行程序:静态测试、动态测试
按是否查看源码(从设计用例角度):黑盒测试(等价类是种重要黑盒测试技术)、白盒测试(逻辑覆盖是种重要白盒测试技术)
按质量因素:
(1)功能测试:关注功能实现。以需求规格说明书为依据,检验是否实现说明书中所有功能需求。
(2)可靠性测试:关注程序输出结果的准确性。以需求规格说明书对系统可靠性要求为依据,衡量的是程序在多长时间内一直运行且给出期望值,评测软件提供准确输出的能力。
(3)可用性测试:衡量处理服务请求时,程序的可用频率。以需求规格说明书对系统的可用性为依据,可用性衡量的是程序处理服务请求且在最短时间内从故障中恢复的能力。
(4)性能测试:输入输出数据的精度、系统响应时间、更新频率、数据的转换和传送时间、操作方式、或运行运行环境变化时软件的适应能力、故障处理能力、资源使用率。可细分为负载测试、容量测试、压力测试。
(5)安全性测试:主要验证系统的安全性、保密性等措施是否有效地发挥作用,包括用户管理、访问空盒子、数据备份与恢复、入侵检测。
除以上分类测试外,还有
(1)配置测试:检验是否多种硬件平台正常运行
(2)兼容性测试:检验各软件是否正确交互和共享信息,主要关注软件的运行平台和应用系统版本、标准和规范、数据的共享性
(3)安装测试:为了发现软件在安装中存在的错误,验证与安装手册的内容是否一致。对应的还有卸载测试
(4)文档测试:检验软件产品的文档是否清晰、准确、一致
(5)软件国际化测试、软件本地化测试:和本地化相对应。要求软件支持Unicode,不同时区的设定、显示和切换,清除些不易改变的设置。本地化是软件按特性国家、地区的市场需要进行加工、处理,使满足特定市场用户对软件的要求的过程,本地化重点有:翻译问题、文化背景问题、数据格式问题等
(6)α测试、β测试:都属于验收测试范畴
4、测试用例
1.测试用例编写
2.测试用例设计
(1)任何情况都必选择边界值分析法
(2)必要时用等价类划分法补充些测试用例
(3)用错误推测法再追加些测试用例
(4)对照程序逻辑,检查设计出的用例的逻辑覆盖度
(5)若程序功能说明中含有输入条件的组合情况,则可选因果图法
3.测试用例场景
通过描述用例的路径来确定的过程,这个流经过程要从用例开始到结束遍历其中所有的基本流和备选流
二、软件测试方法与过程
静态测试
以人工为主,测试者通过阅读代码和文档,分析其正确性、一致性及逻辑结构的正确性,从而找出软件中的错误或缺陷。对自动化工具依赖性较小,发挥人的主观能动性。
审查和走查是静态测试常用形式。审查指通过阅读讨论各设计文档及代码来检查其是否有错。审查可独自或会议形式进行。走查对象只是代码,不含文档。代码走查以小组形式,测试人员提供用例,参与者模拟计算机,跟踪程序执行过程,对其逻辑和功能提问,并通过讨论发现问题。
静态测试效率较高,且要求测试者有丰富经验。
动态测试
两种流行技术——黑盒测试、白盒测试。
1.黑盒测试
根据设计用例的方法不同,黑盒测试包括等价划分法、边界值分析法、错误推测法、因果图法等。白盒测试包括逻辑覆盖测试方法、基本路径测试等方法。
1.1等价类划分法?把程序的输入域划分为若干子集,再从每个子集中选少数代表性数据为用例,选取的数据对揭露程序错误都是等效的。等价类分为有效等价类(对程序规格说明有意义的、合理的输入数据所构成的集合)和无效等价类。
划分等价类原则?
(1)若输入条件规定了取值范围或个数,则可确定一个有效等价类和两个无效等价类
(2)若输入条件规定了输入值的集合或是规定了“必须如何”的条件,则可确定一个有效等价类和一个无效等价类
(3)若输入条件是布尔表达式,则可分为一个有效等价类和一个无效等价类
(4)若输入条件是一组值且程序对不同的值有不同的处理方式,则每个允许的输入值对应一个有效等价类,不允许的输入值为一个无效等价类
(5)若规定了输入数据必须遵守的规则就可以划分出一个有效的等价类(符合规则)和若干个无效的等价类(从各角度违反规则)。设计测试用例步骤?
(1)对每个输入和外部条件进行等价类划分,画出等价类表,并为每个等价类进行编号
(2)设计一个测试用例,使其尽可能多覆盖有效等价类,重复这一步直至所有的有效等价类被覆盖
(3)为每一个无效等价类设计一个测试用例
1.2边界值分析法?是一种补充等价类划分法的黑盒测试方法,它是选择等价类边界的测试用例。大量的错误常发生在输入和输出范围的边界上不是范围内部。边界值:最大/最小、首位/末位、上/下、最快/最慢、最高/最低、最长/最短、空/满等。
设计原则?
(1)若规定了取值范围,应以范围的边界及刚刚超范围的边界外的值为测试用例
(2)若规定了值得个数,应以最大、最小个数和稍小于最小和稍大于最大个数作为测试用例
(3)针对每个输出条件,也使用上面的两条原则
(4)若程序规格说明书中提到的输入或输出范围是有序集合,应注意选取有序集的第一个和最后一个为测试用例
(5)分析规格说明书,找出其他可能
1.3错误推测法?很大程度靠直觉和经验进行。基本思想?是列举出程序中可能有的错误和易发生错误的特殊情况,且根据它们选测试方案。
1.4因果图法?(若设计阶段已用到决策表则可直接使用而不必再画因果图)
等价类划分法和边界值分析法都主要考虑的是输入条件,没考虑输入条件的各组合及各输入条件间的相互制约关系。考虑描述多种条件的组合,相应地产生多个动作的形式来考虑设计测试用例,这就需要利用因果图法。因果图法?是从自然语言书写的程序规格说明书中寻找因果关系,即输入条件与输出和程序状态的改变,通过因果图产生判定表。
设计用例步骤?
(1)分析程序规格说明书中的描述中,哪些是原因、结果,原因常是输入条件或输入条件的等价类,而结果常是输出条件
(2)分析程序规格说明书中描述的语义内容,并将其表示成连接各个原因与各个结果的因果图
(3)由于语法或环境限制,有些原因和结果的组合的情况是不可能出现的,为表明这些特定的情况,在因果图上使用若干特殊符号标明约束条件
(4)把因果图转化为决策表
(5)为决策表中每一列表示的情况设计测试用例
1.5决策表法?是分析和表达多逻辑条件下执行不同操作的情况的工具,可以把复杂逻辑关系和多种条件组合的情况表达得比较明确。决策表组成:条件桩+条件项+动作桩+动作项
决策表建立步骤?
(1)确定规则个数
(2)列出所有条件桩和动作桩
(3)填入条件项
(4)填入动作项,制定初始决策表
(5)简化、合并相似规则或相同动作
1.6场景法?用例场景是通过描述流经用例的路径来确定的过程,这个流经过程要从用例开始到结束遍历其中所有的基本流和备选流
应用场景法进行黑盒测试步骤?
(1)根据规格说明,描述出程序的基本流和各个备选流
(2)根据基本流和各个备选流生成不同的场景
(3)对每一场景生成相应的测试用例
(4)对生成的所有测试用例进行复审,去掉多余的测试用例,对每一测试用例确定测试数据
1.7黑盒测试选择
经验之谈
(1)任何情况下都必须选择边界值分析法,此法设计的测试用例发现程序错误能力最强
(2)必要时用等价类划分法补充些测试用例
(3)用错误推测法再追加些测试用例
(4)若程序的功能说明中含有输入条件的组合情况,则可选用因果图法和决策表法
2.白盒测试
关注软件内部细节和逻辑结构,利用构件层设计的一部分而描述的控制结构来生成测试用例。
2.1代码检查法
变量检查、命名和类型审查、程序逻辑审查、程序语法检查和程序结构检查。准备?需求描述文档、程序设计文档、程序源码清单、代码编写标准和代码错误检查表。可用工具。
2.2静态结构分析法
是种对代码机械性的、程序化的特性进行分析的方法。可用工具。
2.3程序插桩技术
借助往程序种插入操作来实现测试目的的方法。(如输出语句)
2.4逻辑覆盖法
2.5基本路径法
2.6白盒测试方法选择
(1)先静态再动态的组合方式,先代码检查和静态结构分析再覆盖测试
(2)静态分析结构为先导,通过代码检查和动态测试对静态分析结果做确认
(3)覆盖测试为白盒测试重点,可用基本路径法达到语句覆盖标准,对软件重点模块,应用覆盖标准衡量测试的覆盖率
(4)单元测试阶段以代码检查、覆盖测试为主,集成测试阶段要增加静态结构分析,在系统测试阶段根据黑盒测试结果采用相应的白盒测试方法
比较
黑盒测试:不涉及程序结构,用软件规格说明书生成测试用例,可适用从单元测试到系统验收测试,某些代码得不到测试
白盒测试:考察程序逻辑解结构,用程序结构信息生成测试用例,主要适用单元测试和集成测试