重点:白盒测试(路径覆盖、判定覆盖、条件覆盖)
软件测试的目的:
GlenMyers给出的软件测试目的:
1.测试是一个为了发现错误而执行程序的过程
2.一个好的测试用例是指很可能找到迄今为至尚未发现的错误的测试用例。
3.一个成功的测试是指揭示了迄今为至尚未发现的错误的测试。
白盒测试:
•白盒测试(又称为结构测试)把测试对象看作一个透明的盒子,测试人员根据程序内部的逻辑结构及有关信息设计测试用例,检查程序中所有逻辑路径是否都按预定的要求正确地工作。
•白盒测试主要用于对模块的测试,包括:程序模块中的所有独立路径至少执行一次对所有逻辑判定的取值(“真”与“假”)都至少测试一次在上下边界及可操作范围内运行所有循环测试内部数据结构的有效性等。
白盒测试的方法:
常用的白盒测试方法有:•逻辑覆盖测试•基本路径覆盖测试•数据流测试•循环测试
判定覆盖(也称分支覆盖)是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每个判定的所有可能结果都至少执行一次(即判定的每个分支至少经过一次)
条件覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每个判定中的每个条件的所有可能结果都至少出现一次。
路径覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每条可能执行到的路径都至少经过一次(如果程序中包含环路,则要求每条环路至少经过一次)
黑盒测试:
•黑盒测试(又称行为测试)把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能需求•黑盒测试可用于各种测试,它试图发现以下类型的错误:–不正确或遗漏的功能–接口错误,如输入/输出参数的个数、类型等–数据结构错误或外部信息(如外部数据库)访问错误–性能错误–初始化和终止错误。
黑盒测试的方法:
边界值分析也是一种黑盒测试方法,是对等价类划分方法的补充人们从长期的测试工作经验得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。因此针对各种边界情况设计测试用例,其揭露程序中错误的可能性就更大。
单元测试:
•单元测试又称模块测试,它着重对软件设计的最小单元(软件构件或模块)进行测试
•单元测试根据设计描述,对重要的控制路径进行测试,以发现构件或模块内部的错误
•单元测试通常采用白盒测试,并且多个构件或模块可以并行进行测试
(这里将构件或模块统一称为模块。)
集成测试:
•集成测试,也叫组装测试或联合测试
•集成测试是将已完成的单元测试的模块按照设计要求,组装成子系统或系统时进行的测试。
•集成测试的活动:单元接口测试;模块聚合测试
•集成测试执行者:软件开发人员;白盒测试工程师
系统测试:
•系统测试是针对整个已完成集成测试的系统进行的测试,目的是验证系统是否满足《需求规格说明书》的要求。
•系统测试的活动:功能测试;非功能测试
•系统测试执行者:黑盒测试工程师
验收测试:
•验收测试是在软件完成系统测试后,为项目部署和产品发布所进行的最后一个阶段的软件测试活动,也称交付测试。
•验收测试活动:Alpha测试(模拟环境下);Beta测试(真实环境下)
•验收测试执行者:用户和客户;软件测试工程师