文章目录
〇、一点说明
今晚,我们一起来粗过“测试”的知识要点。
一、引论
0. 软件测试的定义
同“软件工程”里面其它很多概念一样,“软件测试”的定义也是“众说纷纭”。我们这里取一个即可。
1983年Bill Hetzel 博士的定义:
软件测试就是一系列活动,这些活动是为了评估一个程序或软件系统的特性或能力,并确定其是否达到了预期效果。
1. 测试与开发的关系
明确一下,软件测试和软件开发在整个软件开发生命周期中交互协作,自始至终在一起工作,共同致力于同一个目标。
2. 测试和质量保证的关系
软件质量保证,即Software Quality Assurance。
- SQA是一项管理工作,侧重于对流程的评审和监控。
- 测试是一项技术性的工作,侧重对产品进行评估和验证。
二、软件测试的基本概念
0. 软件缺陷的定义
软件缺陷是指:计算机系统或者程序中存在的任何一种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷、瑕疵,其结果会导致软件产品在某种程度上不能满足用户的需求。
软件质量,我们这里简单提一下。说地简单些就是,软件产品满足使用需求的程度。
再来看看这一张图(一张不愿被缩小的图)
1. 软件测试的分类
当然了,按照不同的分类方法,软件测试也可以分很多。看看这张图,听说是盘古开天时流传下来的。
当然了,按照测试方法,我们还能分。(嗯——这么快就要引出第三章了?)
白盒测试(结构化测试或逻辑驱动),黑盒测试(功能测试或数据驱动测试方法)
静态测试,动态测试
主动测试,被动测试
关于静态测试和动态测试,我们来——了解一下。
动?静?几个意思?其实就是看程序是否运行。程序跑起来了就是动态,没有跑就是静态了。
事实上,
- 静态测试包括对软件产品的需求和设计规格说明书的评审、对程序代码的审查以及静态分析等。
- 动态测试是通过真正运行程序发现错误,通过观察代码运行过程,来获取系统行为、变量实时结果内存、堆栈、线程以及测试覆盖等各方面信息,来判断系统是否存在问题,或者通过有效的测试用例,对应的输入输出关系来分析被测程序的运行情况,来发现缺陷。
而黑白盒测试,是从哲学观点来看的。具体含义,咱这里不赘述了。
说地通俗些,
白盒测试,知道程序内部结构,具体测试。
黑盒测试,未知程序内部结构,直接测试。