全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
某软件产品的需求规格明确要求:批量导入任务在规定环境下的完成时间不超过 8 秒。测试显示其完成时间为 7 秒,但用户普遍认为操作流程难以理解;该需求规格未提及易用性。关于软件质量的判断,哪项最准确? A. 产品已满足全部软件质量要求,因为它符合明示的性能要求 B. 产品质量只能依据需求规格中的明示要求判断 C. 产品满足一项明示要求并不能单独证明其整体质量,评价还应考虑隐含需求 D. 易用性不属于软件质量特性,因为需求规格未提及
登录后查看答案
某软件通过验收,满足了需求文件中列出的全部要求。仅凭这一结果,仍不能断定其质量充分;依软件质量定义,还需确认它满足了____。
判断:质量保证主要通过检查和测试已完成的软件产品来发现缺陷;质量控制则侧重建立并改进开发过程以预防缺陷。
某图像渲染程序运行缓慢,使用采样式性能分析器采集到 2500 个有效 CPU 样本,各函数的排他样本数为:纹理压缩 1375 个、光照计算 750 个、顶点变换 250 个、场景遍历 125 个。据此判断,首要性能瓶颈是纹理压缩,它占总 CPU 时间的百分比是____%。
某开发者在调试一个多线程程序时遇到偶发性崩溃:直接在疑似出错处设置普通断点调试时,程序运行正常,崩溃却不再复现。以下做法与原因分析最恰当的是: A. 断点只会使程序变慢,不可能影响多线程行为,说明错误其实已被修复 B. 应改用条件断点或日志输出(logging)替代普通断点,以减少调试器中断对线程执行时序的干扰,从而捕获原始运行状态下的错误 C. 应删除所有日志语句,因为日志会占用磁盘空间导致崩溃 D. 应在程序每行代码前都设置断点,逐行执行必然能复现该偶发崩溃 A. 断点只会使程序变慢,不可能影响多线程行为,说明错误其实已被修复 B. 应改用条件断点或日志输出(logging)替代普通断点,以减少调试器中断对线程执行时序的干扰,从而捕获原始运行状态下的错误 C. 应删除所有日志语句,因为日志会占用磁盘空间导致崩溃 D. 应在程序每行代码前都设置断点,逐行执行必然能复现该偶发崩溃
某团队在持续集成服务器上配置流水线,规定:每次向版本库推送代码即自动触发构建,依次执行「拉取代码 → 编译 → 运行单元测试 → 打包」;仅当全部阶段成功时才将构建制品归档,任一阶段失败则立即中止并通知提交者。若开发者小张推送的代码导致单元测试失败,但编译通过,关于该次构建的正确结果与处理方式,下列说法唯一正确的是: A. 打包阶段照常执行,制品归档后由人工甄别是否回退代码 B. 流水线在单元测试阶段中止,不生成归档制品,并通知小张修复 C. 流水线回退到编译阶段重试,测试失败可忽略一次 D. 制品仍归档,但标记为"待验证"状态供后续使用
某团队将源代码与构建配置分别提交:提交 r1 只更新源代码,提交 r2 才更新与之匹配的构建配置。CI 在每次提交后立即构建,因此 r1 会触发一次不匹配的构建。若要求每次 CI 构建都使用相互匹配的源代码和构建配置,最合适的版本控制与构建集成调整是什么? A. 将匹配的源代码和构建配置作为同一提交提交,并让 CI 按该提交构建 B. 保持分开提交,但让 CI 每次都检出分支最新提交 C. 将构建配置移出版本库,改由 CI 服务器保存 D. 仅在构建失败时,把构建配置回退到上一个版本
某团队为多模块项目选择构建工具。团队要求:仅重新编译源文件有变更的模块,且在被依赖模块构建失败时立即中止后续模块的构建,同时能自动从远程仓库下载第三方库。现有工具甲仅支持调用编译器全量编译,工具乙支持增量编译、按依赖拓扑排序调度构建任务并具备依赖管理功能。则满足全部要求的工具是____,其中“失败即中止、被依赖者先构建”体现的构建工具基本功能是____(填写:增量编译/任务编排/依赖管理 之一)。
某团队开发库存扣减模块时采用TDD。对每个新规则,先编写失败测试,再实现刚好通过测试的最小代码,然后在测试通过的前提下重构。迭代结束后所有测试通过,但评审发现:为便于测试,模块新增了多个仅用于测试的公共方法,导致接口暴露、内聚性下降。团队认为:TDD要求从调用者角度先写测试,故采用TDD必然提升模块内聚性并降低耦合度,上述现象只是偶然。判断该认识是否正确。
在 TDD 中采用先写测试的测试设计方法,为函数 isEven(n) 设计测试用例。需求规定:当 n 为偶数时返回 true,为奇数时返回 false。下列哪一项最符合先写测试的做法? A. 先实现 isEven 的功能代码,再运行 n=4 验证输出 B. 先写出测试用例:isEven(4) 应返回 true,isEven(7) 应返回 false,再编写功能代码 C. 先阅读 isEven 的源代码内部结构,再据此编写测试 D. 先编写测试框架的配置代码,功能与测试以后再补
函数upload(size)接收整数或字符串:整数小于1时返回“下界错误”,1至512时返回“小文件”,513至2048时返回“大文件”,大于2048时返回“上界错误”;任意字符串均返回“类型错误”。现有测试输入为0、512、900、2049。按等价类覆盖要求,尚未覆盖的等价类是哪一类? A. 下界错误类 B. 大文件类 C. 上界错误类 D. 类型错误类
某在线课程平台中,Instructor 类包含 courseList、name、email 三个字段,以及 calculateSalary()、calculateRating()、updateContactInfo() 三个方法。calculateSalary() 与 calculateRating() 都频繁访问 courseList;updateContactInfo() 只访问 name 和 email。近三个月,财务政策变动只要求修改 calculateSalary(),教学评估规则变动只要求修改 calculateRating(),人事信息格式变动只要求修改 updateContactInfo()。一名重构者认为该类呈现“霰弹式修改”坏味道,主张拆分为 SalaryCalculator、RatingCalculator 和 ContactManager 三个类。该识别是否正确?
某团队负责一个日志导出模块,代码评审时发现其中一段函数逻辑冗长、命名混乱。团队讨论了以下四种情形,其中最能支持「应当现在重构」这一判断的是: A. 该模块功能当前运行正常,但下个迭代将新增一种导出格式,评估表明现有结构会使该修改需同时改动多处相似代码 B. 该模块已稳定运行三年,近期没有任何相关需求,测试覆盖完整,团队时间充裕 C. 开发者个人觉得该函数写法不够优雅,但无人能指出具体维护困难,也没有即将到来的修改需求 D. 重构该模块可以顺带学习一门新框架,即使这会引入与现有业务无关的技术替换 上述四种情形中,属于典型重构时机的是哪一个?
判断题:某函数 grade(score) 对 0 到 100 的分数返回等级。若已用测试输入 0、100、50 各执行一次且全部通过,则可以断定该函数对 0 到 100 之间的任意分数都能返回正确等级。
在重构评审中,某类 ReportFormatter 含 formatHeader()、formatBody()、formatFooter() 三个方法。formatHeader() 仅因报表标题格式规则变化而需要修改,formatBody() 仅因正文格式规则变化而需要修改,formatFooter() 仅因页脚格式规则变化而需要修改,三者变化原因彼此独立。评审者认为:该现象属于“霰弹式修改”坏味道,因为同一个类中出现了多个会因不同原因被修改的方法。该评审者的判断是否正确?
某模块命名规范规定:函数名必须采用 snake_case(全小写单词,单词间用下划线分隔),且不得以下划线开头或结尾;用于获取数据的函数必须以 fetch 开头,不得使用 get;函数名中禁止任何缩写。现有四个候选函数名:① fetchUserInfo ② _fetch_usr_info ③ fetch_user_information ④ get_user_info。其中完全符合全部规定的是( ) A. ① B. ② C. ③ D. ④
某报表类的生成摘要()方法几乎不使用本类字段,却反复读取并组合客户对象的地址、等级和联系方式;客户类自身也不承担摘要生成职责。该方法最明显的代码坏味道是____。
某校园卡充值系统用构件图建模。已知:构件「充值网关」提供「支付接口」;构件「账务中心」提供「账目接口」,需要「支付接口」;构件「对账工具」需要「账目接口」。现要求将「充值网关」的实现整体替换为新版本,且不修改「账务中心」与「对账工具」的任何代码。下列判断正确的是:A. 不能替换,因为账务中心依赖了充值网关的内部实现 B. 可以替换,因为账务中心仅依赖「支付接口」,只要新版本实现相同接口,依赖方无需改动 C. 可以替换,但必须同步修改对账工具 D. 不能替换,因为构件图中缺少「充值网关」需要的接口
某项目使用 Git 子模块:主仓库 M 的提交 m 把子模块 S 锁定在提交 s1。CI 脚本先执行 git submodule update --init,随后执行 cd S && git fetch && git checkout main,再运行构建。若 S 的 main 当前指向 s2,且 s2≠s1,则关于本次构建与版本控制的集成,下列判断正确的是: A. 构建实际使用 s2,产物若标记为 m 则无法由 m 唯一重建 B. 构建实际使用 s1,产物与 m 完全对应 C. 构建实际使用 s2,但 m 仍能唯一确定 s2 D. 构建实际使用 s1,因为子模块指针会覆盖 main
关于软件测试的目标与原则,下列说法中完全正确的一项是: A. 测试的目标是证明程序没有缺陷,因此应尽量选用让程序顺利运行通过的输入数据 B. 测试只能证明缺陷存在,不能证明缺陷不存在,且应避免由开发人员测试自己的程序这一唯一可行方式 C. 测试的目标是以尽量少的工作量发现尽可能多的缺陷,测试用例应由输入数据和预期输出两部分组成,且穷举测试通常不可行 D. 测试应遵循尽早测试原则,且 Pareto 原则表明缺陷在程序各模块中总是均匀分布的