软件测试基础概念
回顾一下五月份看的软件测试书籍中的概念点
1.软件测试
“验证”和“有效性确认”
(1)“验证”是检验软件是否已正确实现了产品规格说明书所定义的系统功能和特性。
(2)“有效性确认”是确认所开发的软件是否满足用户真正需求的活动。
2.软件测试用例
测试用例是一组测试输入、执行条件和预期结果的集合,目的是要满足一个特定的目标,比如执行一条特定的程序路径或检验是否符合
一个特定的需求。
3.白盒测试
白盒测试又称为结构测试或逻辑驱动测试,是针对被测试程序单元内部如何工作的测试,特点是基于被测试程序的元代买,
而不是软件的需求规格说明。
白盒测试必须遵循的原则:
(1)保证一个模块中的所有独立路径至少被测试一次。
(2)所有逻辑值均需测试真值和假值两种两种情况。
(3)检查程序的内部数据结构,保证其结构的有效性。
(4)在上下边界及可操作分为内运行所有循环。
4.静态白盒测试
静态白盒测试主要通过审查、走查、检验证方法,来查找代码中的问题和缺陷,入编码不符合编程标准和规范、数据引用错误、
数据声明错误、计算错误、比较错误、控制流错误、子程序参数错误、输入与输出错误等。
5.动态白盒测试
动态白盒测试主要是按一定步骤和方法生成测试用例,并驱动相关模块去执行程序并发现软件中的错误和缺陷。测试人员要求
对被测系统内的程序结构有深入的认识,清楚程序的结构、各个组成部分及其之间的关联,以及其内部的运行原理、逻辑等。
6.白盒测试问题分类
各层公用问题、Java语言规范、数据类型、sql语句规范、界面UI、VO数值对象、BO业务对象、DMO数据管理对象、业务逻辑重点、
事务处理与隔离级别测试、效率测绘。
7.黑盒测试
黑盒测试又称为功能测试或数据驱动测试。此方法不需要了解程序内部逻辑结构和内部特性,也将测试程序视为一个不能打开的盒子;
注重于程序的外部结构,主要对软件功能要求、软件界面、外部数据库访问及软件初始化等方面进行测试。测试这只要从程序接口处
进行测试,以程序需求说明为测试一句,测试程序是否满足用户的需求,因此是从用户观点出发的测试。
8.白盒测试的优缺点
优点:迫使测试人员去了解软件的实现,检测代码中的每条路径和分值,揭示隐藏在代码中的错误,对代码的测试进行比较彻底。
有一定的充分性度量手段,可生成较多工具支持。
缺点:不易生成测试数据,无法对未实现规格说明的部分进行测试,工作量大,通常只用于单元测试,有应用局限性。白盒投入较大,成本较高。
9.黑盒测试的优缺点
优点:对较大的代码单元来说,黑河测试比白盒测试的效率高,测试人员不需要了解实现的细节,包括特定的程序语言,测试人员和
编程人员是相互独立的,从用户的角度进行测试,很容易被接受和理解,有助于暴露任何与规格不一致或者有歧义的地方测试用例可以在
规格完成后马上进行。
缺点:不能测试程序内部特定部位,如果程序未执行的代码得不到测试,则无法发现错误。若没有清晰和简明的规格,测试用例很难被设计,
不易进行充分性测试。
10.系统测试
系统测试是将集成好的软件系统,作为整个基于计算机系统的一个元素,与计算机硬件、外设、支持软件、数据等其他系统元素结合在一起,
在实际运行的使用环境下所进行的一系列测试活动。通过与系统的需求定义比较,检查软件是否存在与系统定义不符合或与之矛盾的地方,
以验证软件系统的功能和性能等满足其规约所指定的要求。
11.单元测试
单元测试又称模块测试,是对已实现软件的最小单元进行测试,发现其中存在的软件缺陷,以保证构成软件的各个单元质量。这些最小单元可以
是一个类、一个函数或者一个子程序。
12.集成测试
集成测试又叫组装测试或者联合测试。在单元测试的基础上,将所有模块按照设计要求组装成子系统或者系统,记性集成测试。
集成测试是单元测试的逻辑扩展。
集成测试主要关注的主要内容是:
(1)模块接口的数据交换。
(2)各个功能组合起来能否达到预期要求的父功能。
(3)模块间是否有不利影响。
(4)全局数据结构是否有问题。
(5)单个模块的误差是否会累积放大。
13.软件测试自动化的基本概念
软件测试自动化是通过软件测试工具,按照测试人员预定的计划和测试用例对软件产品进行自动测试。软件测试自动化是把人为驱动的
测试行为转化为及其执行的一种过程。