提示
篇幅较长,可以使用Ctrl+F,在页面中快速查询关键词(或者你要找的题目)并跳转到指定的位置。

关键词:白盒测试,静态测试

判断题

  1. 静态测试只能通过手工方式进行。

    答案:错误

  2. 静态分析既可以发现程序中的语法错误,也可以检查和判定程序中的逻辑错误。

    答案:正确

  3. 通过静态分析能够发现软件的所有逻辑设计和编码错误。

    答案:错误

  4. 静态测试的实现技术主要包括代码质量度量以及评审和检查。

    答案:正确

  5. 结对编程、同行桌查和轮查都是非正式评审方式。

    答案:正确

单选题

  1. 使用静态测试中的函数调用关系图不能够(D)

    A. 检查函数的调用关系是否正确

    B. 发现是否存在孤立函数

    C. 明确函数被调用频度,并对这些函数进行重点检查

    D. 发现函数内部结构

  2. 下面对静态测试和动态测试的区别描述正确的是(A)

    A. 静态测试并没有真正的运行软件,而动态测试需要运行软件

    B. 静态测试需要借助于专门的测试工具,而动态测试不需要

    C. 静态测试是由开发人员执行的,而动态测试是由专门的测试人员完成

    D. 静态测试是主要是为了增加测试人员对软件的理解,而动态测试是为了发现缺陷

  3. 下面可以作为评审对象的是(D)

    ①需求规格说明

    ②程序代码

    ③测试计划

    ④用户手册

    A. ① ②

    B. ① ② ③

    C. ① ② ④

    D. ① ② ③ ④

  4. 关于评审会议的通用准则,描述不正确的是(C)

    A. 提交讨论的是被评审文档,而不是作者本人

    B. 作者不应为自己或文档辩护

    C. 主持人可以同时成为评审人

    D. 评审团队应对评审对象给出是否接受的最终意见

  5. 在评审过程中,主持人的工作职责不包括(B)

    A. 参与和评审有关的管理工作

    B. 选择评审对象和需要参加评审的人员

    C. 收集评审数据

    D. 发布评审报告

  6. 下列各项中,评审方法是按照正式化程序逐渐增强排列的是(D)

    A. 正式评审、小组评审、走查、结对评审、临时评审

    B. 临时评审、走查、结对审查、轮查、正式审查

    C. 临时评审、走查、小组评审、结对审查、正式审查

    D. 临时评审、轮查、结对审查、走查、正式审查

  7. 在代码检查过程中发现大部分错误的人通常是(A)

    A. 程序员

    B. 测试员

    C. 审查者

    D. 架构师

  8. 在代码检查的准备阶段和检查会议阶段都具有发现产品错误责任的是___A___。

    A. 评审人员

    B. 开发人员(作者)

    C. 协调员(主持人)

    D. 讲解员

  9. 在代码检查中,负责提供关于检查项目的资料并回答评审人员问题的角色是(B)

    A. 主持人

    B. 开发人员(作者)

    C. 评审人员

    D. 讲解员

多选题

  1. 下面哪些属于静态分析?

    A. 代码规则检查

    B. 程序结构分析

    C. 程序复杂度分析

    D. 内存泄漏

  2. 如何改进程序结构?

    A. 避免孤立节点

    B. 避免单一出口

    C. 降低环复杂度

    D. 尽量不使用非结构化设计

主观题

  1. 简述同行评审的流程。

  1. 计划评审会议:设计部门项目管理部门提交《设计和开发评审申请表》,经批准后进入计划评审会议;项目经理制定合适的会议主持人;作者提供工作产品;评审主持人规划本次评审会议。
  2. 召开评审预备会:确保参加正式评审会议的人员能清楚了解评审流程和评审目的,正确理解自己的责任,且评审员得到的评审材料正确无误。
  3. 准备评审会议:判断是否需要增加评审的投入。
  4. 召开正式评审会议:评审会议各成员展开讨论
  5. 召开第3小时会议:标记为TBD的问题进行讨论,评审员给出确定意见,并针对修复方案提出意见。
  6. 修复缺陷:作者修改工作产品,提交修复后的工作产品同时更新审阅情况记录表。
  7. 确认修复:主持人派专人对修复后的工作产品进行确认,评审员确认所有缺陷都已修复,更新审阅情况记录表,并提交给主持人。

  1. 函数调用关系图可以提供哪些与测试有关的信息?

1、函数调用层次:

(1)层次越深,集成测试负担越大,对栈的压力越大,容易导致溢出。

(2)从函数调用层次可以找到高风险节点:

调用层次越深的节点,比如叶子节点,从该函数传递数据所涉及的接口数量越多,经过的路径越长,则该路径可以完全正确执行的概率变低,对应风险越大。还有根节点,是主控节点,涉及所有节点的运行情况。

2、函数调用关系:函数的调用关系体现了接口的复杂程序,在调用图中,可以通过计算节点的入度和出度来评价标识高风险节点。

3、查看函数调用图中是否存在递归调用,如果存在则尽量考虑对函数结构的优化,将不必要的递归调用改为循环结构。

4、查看函数调用图中是否存在孤立节点。孤立的函数意味着不执行的场景或路径,代表编码或设计的不合理,应尽量避免。