全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
采用先写测试的测试设计方法,为函数 checkWeight(w) 设计测试用例。需求规定:当 w 为闭区间 [30, 80] 内的数值时返回 "OK",否则返回 "ERROR"。依据边界值分析法,在编写任何产品代码之前应先针对该需求的边界设计测试:最小合法边界、最大合法边界,以及紧邻两端的两个非法取值。则最少需要设计的边界测试用例总数为____个,其中合法输入与非法输入的个数之比为____。
登录后查看答案
某团队的构建系统每次执行时都重新编译全部源文件,即使只有个别源文件被修改;同时构建脚本需要手工编写各模块的编译顺序,否则会因依赖未就绪而失败。若该团队希望仅改动处被重新编译、且模块按正确顺序自动构建,应为其引入构建工具的两项基本功能是:A. 代码评审与缺陷跟踪 B. 增量编译与依赖解析 C. 版本回退与分支合并 D. 环境隔离与容器部署
项目使用构建工具管理依赖,模块 portal 依赖模块 core,且 core 依赖库 json-kit。要让自动化构建能够按依赖顺序构建 portal,最合适的做法是什么? A. 在构建配置中声明这两层依赖,由构建工具解析并安排顺序 B. 每次构建前手动下载所有依赖并复制到 portal 目录 C. 只在 portal 的源代码注释中记录依赖名称 D. 先构建 portal,再根据报错临时补充依赖
某团队编码规范规定:每进入一层代码块,行首增加 3 个空格;禁止使用制表符;二元运算符两侧各留一个空格;注释单独成行且与所说明的语句保持相同缩进。现有函数 f,其函数体内依次嵌套 if 块、for 块、while 块;while 块内有一条注释,说明紧随其后的赋值语句 t=a+b*c。原代码缩进混乱:while 行以两个制表符开头,注释行以 9 个空格开头,赋值语句行以 6 个空格开头。按规范修正后,注释行与赋值语句行的正确形式是? A. 两行均以 12 个空格开头;赋值语句为 t = a + b * c B. 注释行以 9 个空格开头,赋值语句行以 12 个空格开头;赋值语句为 t = a + b * c C. 两行均以 12 个空格开头;赋值语句为 t=a+b*c D. 两行均以 15 个空格开头;赋值语句为 t = a + b * c
在 TDD 中为函数 calcFee(weight) 先写测试。需求规定:重量不超过 2.0 千克(含)时费用为 10 元,超过 2.0 千克时每千克加收 3 元(不足部分按实际值计)。按先写测试的方法,学生不写任何实现代码,直接依据该需求为输入 weight=2.0 写出测试用例:期望返回值为____元,该用例覆盖的边界属于不超过 2.0 千克这一等价类的____(填“边界值”或“普通值”)。
某团队开发消息解析模块时采用TDD:每次先为一个新规则编写失败测试,再实现最小代码使其通过,随后在测试持续通过的情况下重构重复逻辑。评审者希望据此判断TDD对代码质量的影响,哪项结论最恰当? A. 测试先行并持续回归,有助于及时发现行为偏差,也为重构提供安全反馈,但不能单独保证设计质量 B. 只要每轮测试通过,模块就必然不存在未覆盖输入下的缺陷 C. 重构发生在测试通过之后,因此TDD会阻止代码结构发生变化 D. TDD的主要质量收益是减少测试用例数量,而非促进反馈与重构
某函数接收一个字符串状态:输入为“草稿”时返回草稿状态,为“发布”时返回发布状态,其他输入均返回错误。按预期行为划分等价类,以下哪组测试输入实现了等价类覆盖? A. “草稿”、“草稿” B. “草稿”、“发布”、“归档” C. “发布”、“归档”、“未知” D. “草稿”、“发布”
某订单模块中,OrderService 类有一个字段 discountRate,该字段只在 applyCoupon() 方法中被赋值和使用,类的其他方法从不读写它;同时 applyCoupon() 方法内部还声明了若干只在方法内使用的局部变量。审查该类时,下列关于坏味道识别的判断正确的是: A. discountRate 构成临时字段坏味道,方法内局部变量不构成 B. applyCoupon() 内的局部变量构成临时字段坏味道,discountRate 不构成 C. 二者均构成临时字段坏味道 D. 二者均不构成任何坏味道
某代码模块近期频繁因需求变更而修改,现有结构使每次修改都容易牵连多处;尽管当前版本功能测试通过,也应等到该模块出现故障后再考虑重构。判断该表述是否正确。
小周要重构一个支付计算模块,他的同事给出三种做法:甲先建立能通过的测试套件,再每小步重构后立即运行测试;乙不建任何测试,凭经验一次完成全部改动;丙在全部重构完成后运行一次测试。从“重构与测试的配合保障”角度看,只有____的做法能保障每一步改动未改变外部可观察行为,其主要原因是频繁运行测试能把引入错误的时间定位到____(填写“具体小步”或“整体改动”),错误暴露得最早、排查成本最低。
判断:小陈重构一段遗留代码前,先为依赖外部数据库的模块搭建了测试替身并建立可通过的测试基线;随后每次小步重构后运行测试。中途某次测试失败,他先完成原计划的全部重构步骤再统一修复,理由是测试只是最终验收手段,不影响重构过程。
某离线报表生成器依次处理4个互相独立、可安全重试的任务。每个任务首次执行;遇到暂时性 I/O 异常时最多重试1次,遇到永久性数据异常时不重试;任一任务失败均记录错误并继续处理后续任务。任务A首次成功,任务B首次遇到暂时性 I/O 异常、重试后成功,任务C遇到永久性数据异常,任务D首次成功。按此策略执行,实际调用任务处理函数共____次,成功完成____项任务。
某日志归档模块中,开发者需处理两类问题:一是用户通过配置文件传入的压缩级别取值可能超出合法范围 1~9;二是模块内部循环不变量「已归档文件数应始终不超过待归档总数」需在开发阶段监控。关于断言与其他错误处理手段的选用,下列哪种做法最符合断言的使用原则? A. 两类问题均用 assert 处理,并保证在发布版中 assert 仍然生效 B. 压缩级别用参数验证并返回明确错误,内部不变量用 assert 检查,发布版可关闭 assert C. 两类问题均只做日志记录而不中断程序,避免使用断言 D. 用 assert 检查压缩级别并让程序崩溃,同时把内部不变量写入异常处理代码
某权限校验函数中的判断条件写作:!(isValid == false) && !(locked || expired == false)。要求在不改变逻辑含义的前提下,将其化简为最简洁且可读性最好的等价条件表达式(原子条件按原变量出现顺序书写),则化简结果为 ____。
某图像处理模块要求每次调用时,内部缓存都已完成初始化;调用者提交的图像尺寸则可能无效。关于断言的使用,哪项做法最恰当? A. 用断言检查图像尺寸,缓存状态异常时仅记录日志 B. 用断言检查缓存不变量,显式验证图像尺寸,且断言表达式不产生副作用 C. 用断言检查缓存不变量,并在断言表达式中执行缓存初始化 D. 用断言检查图像尺寸和缓存状态,以便两类错误都能被捕获
某气象统计模块需提供一个函数:输入一份只读的温度采样记录,调用者需要同时获得“最高温度”与“最低温度”两个结果。某学生给出四种设计方案:① 通过参数接收两个全局变量并把结果写入其中,函数返回类型为 void;② 返回一个同时包含最高温度与最低温度的结构体;③ 将采样记录存入模块级全局变量,函数返回类型为 void;④ 返回最高温度,同时把最低温度写入调用者传入的采样记录的末尾。依据“函数参数与返回值应与调用者需求匹配、避免不必要的副作用”的原则,最合理的设计方案是____(填编号①②③④),该设计中函数的返回类型应为包含两个温度值的____(填“结构体”或“void”)。
某用户资料模块需要提供一个函数:它只读取账户的用户名和调用者指定的规范化模式,生成规范化用户名;调用者只使用生成后的用户名。有人认为,为便于将来扩展,函数应接收整个账户对象,并返回包含规范化用户名、是否发生变更及处理警告的结构体。判断这一接口设计合理。
某日志收集服务向中心服务器发送日志。网络超时被归类为暂时性故障,采用重试策略:每次重试间隔为前一次的2倍,首次重试间隔为3秒,最多重试3次;若第3次重试仍失败,则将该批日志写入本地队列,待恢复后补发。某次发送连续遭遇4次网络超时(含首次调用),从首次调用开始到程序转入本地队列补发为止,累计经过的等待时间为____秒。
某音频处理软件中,模块 M 的函数 equalize(audio, config) 通过参数接收音频数据和全部配置项,仅对音频做均衡处理并返回结果,不访问全局变量;但同一模块内另一函数 transcode 既负责格式转换,又负责写日志和更新播放统计。若将 equalize 与 transcode 合并为一个模块,则该合并对模块质量的主要影响是( ) A. 均衡函数的高内聚被稀释,合并后模块内聚性下降,但耦合性不变 B. 耦合性升高,因为函数间开始共享全局变量 C. 内聚性升高,因为模块功能数量增多 D. 内聚性与耦合性均不变,合并操作不改变模块任何质量属性
某偏好模块当前用散列表保存键值,未来可能改为远程存储;调用方只需按键读取和更新偏好。为使存储实现更换时调用方无需修改,哪种接口最合适? A. 暴露散列表,供调用方直接读写 B. 提供 getAll() 返回内部散列表 C. 提供 getPreference(key) 与 setPreference(key, value) D. 提供存储文件路径,供调用方自行读写