目录
一、测试与质量保证
1、软件质量
-
基于国家推荐性标准(GB/T25000.1-2010)给出的定义,软件质量是指在规定的条件下使用时,软件产品满足明确的或隐含的要求的能力。
2、质量保证
-
基于国际标准(ISO84021994)软件质量保证的定义是:为了提供足够的信任表明实体能够满足质量的要求,而在质量管理体系中实施并根据需要进行证实的全部有计划和有系统的活动。
-
基于美国质量管理协会软件质量保证的定义是:以保证各项质量管理工作实际地、有效地进行与完成为目的的活动体系。
3、软件测试
-
软件测试是通过动态验证计算机程序对有限的测试用例集合是否可产生期望结果的过程, 目的是为了保证软件的质量。
4、质量保证与软件测试的区别
-
质量保证强调的是一种 管理性的活动。
-
软件测试是一种 技术性的活动。
5、质量保证和软件测试的关系
-
质量保证比软件测试涉及的活动更广,质量保证需要对公司的软件质量从开发到测试等一系列过程做质量指导,还要监督开发或测试人员是否按照预定的方针策略、流程标准规范来运行程序,还要不断地进行循环改进,提升质量保证能力。
-
软件测试是质量保证的一个子项,保证质量的手段有多种,软件测试是质量保证很重要的一种技术手段。
-
软件测试工作的开展还是在质量保证指导的方针下开展的。
6、考点
(1)软件质量保证的目标
(2)软件质量保证与软件测试的关系
(3)影响测试质量的因素
-
背靠背测试方式: 用于对软件错误进行评估。大概的机制就是两个完全不交流的小组对同一个软件进行测试,通过他们发现缺陷的情况去分析这个软件存在缺陷大概的一个总数。
二、测试用例
1、概念
-
基于国家推荐性标准(GB/T25000.51-2016)《系统与软件质量要求和评价》标准, 测试用例是 为某个特定目的而开发的 一个 输入、执行条件、预期结果的一个集合。
2、要点
-
要目的性强
-
要包含一个具体的场景
-
要提供判定准则
3、作用
-
测试实施的依据
-
体现了测试的方案、方法、技术和策略
-
保证测试的规范性,提高测试效率
-
保证测试质量,避免随意性和盲目性
-
作为软件企业的一类资产
4、内容
基于GB/T 15532-2008《计算机软件测试规范》,测试用例需要包含以下内容
-
用例标识
-
用例说明
-
环境配置(考试时候一般不用考虑)
-
操作过程
-
各种条件
-
评价准则
-
建立用例的人员和时间
5、考点
(1)测试用例三要素
-
测试用例是设计阶段的事情。实际输出发生在执行阶段。
(2)测试用例文档
-
缺陷修复报告:开发人员做的事情。
三、测试策略
1、概念
-
软件测试的策略是在一定的软件测试标准、测试规范的指导下,依据测试项目的特定环境而规定测试原则和方法的一个集合。
-
测试策略简单来讲就是一套方法论,这套方法论就是用来衡量利益相关者的利益,选择一个合适的平衡点,使得投资回报OK,利益相关者都可以接受。
在测试前期规划测试计划时,重点应该关注到测试计划中的测试原则和方法是否适用于当前项目的测试,测试计划做的好坏会影响到后期测试能否成功的完成。
2、测试策略的方法
-
基于分析的策略
-
基于模型的策略
-
基于标准规范的策略
-
基于自动化的回归测试策略
3、确定软件测试策略
-
主要是基于测试的需求,以及测试的风险评估结果。
-
也就是说基于测试的需求、风险评估的结果去定义测试的范围、测试的要求,选择合适的测试方法,然后去制定测试启动、测试停止、测试完成的标准和条件。
4、测试策略的输入
测试策略的输入会影响测试策略的制定。
-
测试所需软硬件资源的详细说明。
-
需要的人力资源的角色和职责。
-
测试方法、测试标准和完成标准。
-
目标系统的功能性和非功能性需求、技术指标。
5、测试策略的输出
测试策略的输出会影响测试策略的制定。
-
已批准或审核的测试测策略文档、测试用例和测试计划。
-
需要解决方案的测试项目。
6、制定测试策略过程
(1)制定测试需求
-
测试需求必须是可观测、可测评的。
-
软件需求与测试需求以及测试用例不是一对一关系。
-
测试需求可能有许多来源。
(2)评估风险并确定优先级
(3)确定测试策略
-
一般会有一个测试策略文档。
-
测试策略文档中包含实施的测试类型、测试目标、测试的阶段、采用的测试技术、评估测试结果的标准、测试过程中特殊的影响因素。
7、考点:软件生命周期测试策略
四、软件测试的原则
1、原则
(1)溯源性原则
-
测试应该追溯到用户的需求。
(2)工程性原则
-
测试工作需尽早地不断地开展,甚至进行预防性测试,测试要贯穿于软件工程的各个阶段。
(3)独立性原则
-
避免开发人员自己测试自己的程序,因为自测可能会受思维定势的影响。防止开发团队和测试团队长期合作,产生的思想同化,导致测试人员的思想独立性消失。
-
在新旧标准中,对于单元测试的测试者的描述有些变化,在旧标准中单元测试是开发者进行的测试,在新标准中单元测试是可以由测试人员来进行的。
(4)合理性原则
-
无法对软件进行全局的、各种可能的测试,因为软件测试毕竟也是一个项目,也会受到时间和资源的限制,所以软件测试需要在符合指定的要求和测试强度之间找到一个合理的点,设置测试的终止条件。
(5)不完全性原则
-
测试是不可能完全枚举的,所以测试不可能完全暴露出所有缺陷,所以测试只能说运行了这些有限的测试用例集之后程序没有问题或者说测试的结果未发现错误,不能说这个软件没有错误。
(6)相关性原则
-
也叫聚集现象。 就是说一个软件发现的错误越多,那么在这个软件中没有发现的错误就会越多。
(7)可接受性原则
-
在利益相关方可接受的情况下,允许一定问题的存在于软件中。
-
由于测试的不完全性,所以就会有缺陷未发现的风险,那么后期发现缺陷后修复就需要付出代价,此时可以通过多方的协商,允许部分缺陷的存在。
(8)风险性原则
-
测试是为了降低软件质量的风险,但是测试本身也是有风险的,在制定测试策略时,应该考虑测试的风险,利用风险管理原则对软件测试的风险进行相关的管理。
2、考点:软件测试的原则
五、软件测试模型
1、V模型
-
V模型就是对瀑布模型的优化。
-
由于瀑布模型是编码之后才测试介入,给人感觉测试的不太正式,V模型为了解决这个问题,将测试阶段细分为n个子阶段,并将n个子测试阶段与软件工程的各阶段进行对应。
-
V模型的目的:就是为了让人重视测试工作的重要性。
-
V模型的缺点:由图可知,V模型中测试还是在编码之后接入的,所以V模型没有从本质上解决人们不重视的测试问题。
-
单元测试测得是编码,但是在详细设计阶段就要对单元测试进行计划,对编码的测试验证了详细设计是否正确。验收测试虽然是是对需求分析与系统设计进行测试,但验证的是是否满足用户需求。V模型中包含了对软件底层的测试(单元测试)也包含了高层的测试(验收测试)。
2、W模型
-
W模型就是两个V,一个V指的是软件开发,一个V指的是软件测试。
-
W模型的优点:相对于V模型来讲,W模型体现了测试尽早开始,且一开始就进行双V验证,这样有利于将缺陷修复的代价降到最低。
-
W模型的缺点:虽然W模型中软件测试工作分布到了软件工程的各个阶段,但是仍然没有把软件测试的工作完全独立出来,还是会依赖于软件开发。
3、H模型
-
H模型将软件测试的工作从软件开发中完全独立出来了,也就是说在软件开发的任意时间点上,只要具备了测试条件,那么就能开展测试工作。
-
由于软件测试是一个独立的流程,所以很明显看到测试分为3个阶段:测试准备、测试就绪点、测试执行。
-
H模型相较于W模型来讲,兼顾了测试的效率和联合性,适用于各种规模的软件测试。
4、敏捷测试模型
敏捷测试过程
-
敏捷开发方法强调的就是以用户的需求为核心,进行快速的持续的有意义的交付,所以会涉及到频繁的沟通和迭代。针对敏捷开发方法的测试模型就是敏捷测试模型。
-
敏捷测试模型对测试人员的要求相对较高,要求测试人员于其他团队的人员保持一种紧密的协助,时刻去关注需求的变化,并针对需求的变化实施相关的测试。