测试题-2
A. 语句覆盖是最基本的白盒测试方法,要求设计的测试用例要保证程序中每条语句至少执行一次。
B. 条件覆盖、判定/条件覆盖、条件组合覆盖都是白盒测试中的重要覆盖标准:
- 条件覆盖要求每个判断条件的可能取值都要执行到
- 判定/条件覆盖要求判断结果和条件的所有可能取值都要覆盖
- 条件组合覆盖要求所有条件的各种组合都要执行到
C. 路径覆盖要求程序中所有可能的执行路径都要至少执行一次,是最严格的白盒测试方法。
路径覆盖是白盒测试中的一种覆盖准则,要求覆盖程序中的所有可能执行路径。选项B '所有可能执行路径都被测试' 直接匹配这一定义。选项A '所有语句执行至少一次' 描述的是语句覆盖(statement coverage),而非路径覆盖。选项C '每个输入等价类都覆盖' 属于黑盒测试的等价类划分覆盖,与路径覆盖无关。选项D '所有边界值输入被测试' 属于黑盒测试的边界值分析覆盖,同样与路径覆盖无关。
测试驱动开发(TDD)的核心价值是通过先写测试来定义可验证的需求,并以此驱动代码设计,确保代码质量与需求一致。
负载测试关注系统在预期或峰值范围内的业务负载下是否满足性能与稳定性指标;“最高能达到什么程度”的极限/断点判定属于压力测试(或容量测试)的目标。
正交实验设计法是一种黑盒测试方法,主要用于在大规模输入参数组合的情况下进行测试用例的优化设计,不适合白盒测试。
边界值法是最常用的测试方法之一,可以同时适用于黑盒测试和白盒测试。在黑盒测试中,边界值法用于测试输入域的边界条件;在白盒测试中,边界值法可用于测试程序内部逻辑中的边界条件。
边界值法之所以能同时适用于黑盒和白盒测试,是因为无论从程序外部接口还是内部逻辑角度,边界条件都是容易出错的地方,需要重点测试。边界值包括:
- 输入范围的上下界
- 循环的起始和结束条件
- 数组的边界索引
- 临界状态的转换点等
边界值法像「找临界点」——用户容易误操作的点(黑盒)和代码判断条件的分界点(白盒)往往是同一个地方,所以两种测试都适用。
判定覆盖是每个判定的真假一次,就会导致所有的结果路径会实现。
白盒测试是基于代码内部逻辑结构进行的测试,主要分为静态方法和动态方法两大类,所以BC是正确答案。
静态方法(B选项):指不实际运行程序就可以发现程序中的错误和缺陷。主要包括代码检查、代码走查和代码审查等方法。这种方法可以在程序开发的早期就发现问题,节省测试成本。
动态方法(C选项):需要运行程序才能发现程序中的错误和缺陷。包括语句覆盖、判定覆盖、条件覆盖、路径覆盖等测试方法。这种方法可以验证程序的实际运行效果。
1. 语句覆盖(A选项):最基本的覆盖标准,只要求每条语句至少执行一次。覆盖率最低。
2. 判定覆盖(B选项):要求判定结果的每个可能取值(真/假)都至少执行一次。比语句覆盖严格,但仍不够充分。
3. 条件覆盖(C选项):要求判定中每个条件的可能取值都至少执行一次。但无法保证所有组合都被测试到。
4. 条件组合覆盖(D选项):要求判定中所有条件的各种可能组合都要执行到。比如对于条件"a && b",需要测试(真,真)(真,假)(假,真)(假,假)四种组合。这种覆盖最为全面和严格。
因此条件组合覆盖能发现最多的潜在缺陷,覆盖率最高
B选项错误:集成测试不是基于软件需求说明书的黑盒测试,而是在单元测试的基础上,将程序模块组装成子系统或系统,检查模块之间的接口和交互是否正确。集成测试的重点是测试模块之间的接口。
D选项错误:系统测试的目的不是检查软件单位之间的接口,这是集成测试的目的。系统测试是要验证集成后的系统是否满足系统说明书中规定的功能、性能等要求,是针对整个系统进行的测试。
1.“V”型
特点:【活动串行】这是一种古老的瀑布模型,反映了实际和测试之间的关系。
局限:仅仅把测试过程作为编码之后的一个阶段,忽视了测试对需求分析,系统设计的验证,如果前面设计错误,得一直到后期的验收测试才被发现,耗时耗力。
2.“W”型
特点:【活动串行】测试与开发同时进行,在V模型的基础上,增加了在开发阶段的同步测试
局限:仍然不支持迭代,减少了一定错误发生率,但是需按照流水线进行设计、编码和测试
3."H"型
特点:【活动并行】过程活动完全独立,贯穿于整个产品的周期,与其他流程并发地进行,某个测试点准备就绪时,就可以从测试准备阶段进行到测试执行阶段;软件测试可以进行尽早的进行;软件测试可以根据被测物的不同而分层次进行。