8.1动态测试
-
动态测试:通过运行被测程序来检查运行结果与预期结果的差异,并分析运行效率和健壮性等指标;这种方法包括三部分:构造测试用例、执行程序、分析程序的输出结果。
-
动态测试分类:可从不同角度进行分类。
-
从是否关心软件内部结构和具体实现的角度划分,可分为“白盒”测试、“黑盒”测试、“灰盒”测试。
-
从软件开发过程的角度划分,可分为:单元测试、集成测试、确认测试、系统测试、验收测试、回归测试。
-
从测试执行是否需要人工干预的角度划分,可分为:人工测试、自动化测试。
-
从测试实施组织的角度划分,可分为开发方测试、用户测试(β测试)、第三方测试。
8.2白盒测试
-
白盒测试:“白盒”测试又称为结构测试或逻辑驱动测试是一种按照程序内部逻辑结构和编码结构设计测试数据并完成测试的一种测试方法。
-
白盒测试与调试的区别:
调试和动态白盒测试都包括处理软件缺陷和查看代码的过程,但是他们的目标不同。动态白盒测试的目的是发现问题,而调试的目的是改正缺陷,但他们的共同目的是分离缺陷。
-
动态白盒测试技术包括:
-
语句覆盖:语句覆盖是最起码的测试要求,使得每一条语句至少被执行一次对程序的逻辑覆盖很少,只关心判定表达式的值,是很弱的逻辑覆盖标准。
-
判定覆盖:要求设计足够的测试用例,使得程序中的每一个分支至少通过一次即每一条分支语句的“真”值和“假”值都至少执行一次。
-
条件覆盖:不仅每一个语句至少执行一次,使得判定中的每个条件获得各种可能的结果。
-
判定覆盖只关心整个判定表达式的结果,条件覆盖关心的则是每个条件各种取值的结果。
-
判定/条件覆盖:设计足够多的测试用例,使得判定中每个条件的所有可能取值至少能够获取一次,同时每个判断的所有可能的判定结果至少执行一次。
-
条件组合覆盖:要求设计足够多的测试用例,使得每个判定中条件的各种组合至少出现一次。
-
满足条件组合覆盖标准的测试用例,也一定满足判定覆盖、条件覆盖和判定/条件覆盖标准。
-
路径覆盖:要求设计足够多的测试用例,使得程序中所有的路径都至少执行一次
-
静态白盒测试测试主要包括代码的检查,通过测试人员仔细阅读代码来检代码和设计的一致性,代码的可读性,代码是否循序了相应的标准、逻辑表达是否正确,结构是否合理等。
-