一、软件测试基础主要内容
1、软件测试
2、测试与质量保证
3、测试用例
4、测试策略
5、测试的原则
6、软件测试模型
7、软件测试分类
二、软件测试
1、软件测试的定义
-
73年的Bill Hetzel给出了软件测试的第一个定义,他认为软件测试是为了向人证明程序能够按照预定的、设想的运行而建立信心的。(
为了表明软件是正确而测试的正向性测试)
-
79年的Myers认为,软件测试是为了发现错误而执行的一个程序或者系统的过程。(
为了表明软件是错误而测试的反向性测试)
-
1983年Bill Hetzel将软件测试的定义修改为,以评价一个程序和系统的特性或能力,并确定它是否达到预期的结果为目的的任何行为就是软件测试。(
按照需求来进行测试,符合需求的则认为测试通过,不符合的则认为有bug。)
-
2014年IEEE发布的软件工程知识体系3.0中,认为软件测试就是动态验证计算机程序对有限的测试用例集是否可产生期望的结果的过程。(
到现在都用的行业标准:测试不单纯是一个发现错误的过程。主要是从软件质量的角度来测试。)
注意:在2014年IEEE发布的软件工程知识体系3.0中对软件测试标准的定义是
动态检测程序的,没有涉及静态测试。所以在后面讲到的测试标准中都不涉及到静态测试的标准。
2、软件测试的对象
3、软件测试的目的
4、考点
(1)软件测试的目的
(2)软件测试的对象
三、验证与确认
下面是基于国家推荐性标准(GB/T190000-2016)给出的验证和确认的标准(双V标准)。
1、验证(Verification)
2、确认(Validation)
3、验证与确认的区别
注意:需求不一定准确,也就是客户提出的需求验证通过了,但是确认不一定通过,因为按照需求做出来的功能可能无法实现用户特定的应用场景。
4、考点:相关术语的含义
四、软件缺陷
1、软件缺陷分类(之前)
2、软件缺陷的概念
(1)基于IEEE729-830标准
(2)基于国家推荐性标准GB/T32422-2015
3、主要产生软件缺陷的阶段
(1)需求分析阶段
1)需求不明确;
2)在软件开发或者测试的过程中,需求可能会频繁的更改;
3)用户与软件开发人员之间沟通理解存在问题;
4)不同获取需求的方式得到的需求质量不同,部分需求质量有待提高;
1)进行需求评审,可以降低需求阶段的缺陷。
(2)设计阶段
1)这个阶段的一些缺陷会比较隐蔽,在设计和检查的过程中很难发现。
1)进行设计评审,可以尽可能的减少设计阶段的缺陷。
(3)编码阶段
1)这个阶段的缺陷比较容易发现。
1)通过某一些测试用例可以很快验证程序是否有问题。但是设计及和需求阶段的一些缺陷还是难以发现,因为测试是基于需求和设计阶段进行编写的。
4、修复代价
5、缺陷分类属性
6、缺陷的优先级
7、缺陷的严重性
8、考点:对严重性和优先级的理解