全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
判断:新增单元测试运行失败后,若失败确实暴露了待实现的功能,TDD循环的下一步应是修改测试,使其适应当前实现;测试通过后再补充功能代码。
登录后查看答案
判断:某学生在 TDD 中采用先写测试的方法为函数 isLeapYear(year) 设计测试。他先依据需求写出测试用例:2000 年是闰年返回 true,1900 年不是闰年返回 false,随后运行该测试确认其失败(红),再编写功能代码使测试通过(绿)。整个流程符合先写测试的测试设计方法。
判断:在测试驱动开发中,采用先写测试的测试设计方法时,应当先实现功能代码,再根据功能代码的内部结构编写测试用例,以保证测试与实现完全一致。
判断:某类的 switch 语句根据字段 type 区分分支,重构者主张:将该 switch 与其分支涉及的各逻辑一并移入一个新建的基类,用多态取代条件表达式后,switch 即被消除,且这一做法消除了「依恋情结」坏味道;但只要新基类中仍保留对调用方对象字段的连续多分支取值判断,依恋情结就并未真正消除。以上整体论述是正确的。
判断:为保障重构不改变外部可观察行为,重构前应建立可运行的测试基线,并在每个小步后运行测试;若只在全部改动完成后运行一次,也能提供同等的过程保障。
判断题:小张在重构一个类之前,先为该类补充了一组能通过的单元测试;随后每做一小步重构就运行一次测试,确保行为未改变。他认为这种“先建测试、小步重构、频繁验证”的做法符合重构与测试配合保障的基本要求。请判断他的说法是否正确。
某权限模块的函数只需判断给定角色能否访问指定资源,调用者只需要判断结果。有人认为,为提高通用性,函数应接收整个权限配置对象,并返回判断结果和全部中间信息。判断这一接口设计是否合理。
某报表模块接收查询条件和数据访问接口,依次获取记录、整理数据并生成报表;这些步骤都服务于生成报表这一单一职责。有人据此判断:模块调用外部接口,所以内聚性低;模块间只通过参数传递数据,所以耦合性为零。该判断是否正确?
判断:某日志模块将接口设计为 writeLog(String message),内部日志的存储格式与写盘策略对外不可见。即使日后把内部实现从同步写文件改为异步写队列,只要该接口签名与语义不变,调用方代码无需修改。这说明该设计通过缩小接口暴露面降低了调用方与实现细节之间的耦合,符合信息隐藏原则。
判断:一段程序先按书写顺序初始化变量,再执行 while 循环;循环体内用 if-else 根据条件选择不同的变量更新语句。由于选择结构嵌套在循环中,这段程序只使用循环结构,不使用顺序结构和选择结构。
阅读伪代码: i=0 total=0 while i<6: if i%2==0: total=total+i i=i+1 有人认为:“该程序虽然使用了循环和选择结构,但没有使用顺序结构,因为循环体中含有分支。”这一判断是否正确?
循环从 k=1 开始,在 k≤m 时执行;每轮处理位置 k,再令 k 增至下一位置。有人断言:每次进入循环体时,位置 1 至 k 均已处理。该断言是此循环的循环不变式。
判断:某团队为一个「图文档管理系统」设计抽象数据类型 GraphDoc,对外提供 addNode、addEdge、findPath 三个操作。为了保证未来能将邻接表替换为邻接矩阵,设计规范要求调用方只能通过这三个操作访问图数据,且操作的语义(前置条件、后置条件、不变式)保持不变;同时规范指出,允许调用方在性能敏感代码中根据当前内部采用邻接表这一事实做针对性优化。该设计完全符合抽象数据类型的信息隐藏与封装原则。
某项目编码规范规定:类名必须使用 UpperCamelCase(大驼峰式,每个单词首字母大写且不用下划线连接),常量名必须全部字母大写并用下划线分隔单词,布尔型变量名必须以 is 开头。请判断下述说法是否正确:在该规范下,把「用户姓名」对应的类命名为 userName,把「最大连接数」对应的常量命名为 Max_Connections,二者都符合规范要求。
判断:某团队命名规范要求所有常量采用 UPPER_SNAKE_CASE。程序员小李将一个表示订单最大重试次数的常量命名为 maxRetryCount,理由是它含义清晰、见名知义,因此不违反该规范。
配置状态报告用于记录并报告配置项及其变更的状态。有人认为,配置状态报告只需列出各配置项的当前版本号,变更请求的批准与实施状态不属于配置状态报告的内容。判断该说法是否正确。
某软件项目团队在实施过程中持续记录经验教训。项目收尾归档时,团队只需保留导致偏差或返工的问题教训,成功做法无需纳入经验教训记录。判断该表述是否正确。
判断:某项目配置库中,开发人员王某在开发分支上提交代码后,版本控制工具自动生成了新版本号,因此该代码已完成版本控制流程,无需再经过变更控制委员会(CCB)审批即可合入受控库,并在变更完成后自动更新基线。
判断:某模块内,函数A负责解析CSV文件并返回记录列表,函数B接收该列表并统计各类记录数量,函数C将统计结果写入日志文件。设计者认为该模块职责完整、功能相关,因此属于高内聚模块;而另一设计者指出,判断内聚性的关键在于模块内各成分是否围绕单一功能紧密协作,该模块中解析、统计、写日志是三个不同功能层次的任务串联,属于偶然内聚,内聚性较低。两位设计者的说法都正确。
数组 A 的长度为 n(n≥1),有效下标为 0 至 n−1。程序令 i=0、s=0,并在 i≤n 时执行“s←s+A[i];i←i+1”。有人声称:循环入口处的不变式“0≤i≤n,且 s=∑ₖ₌₀ⁱ⁻¹A[k]”可保证每次访问都合法,循环结束时 s 等于数组所有元素之和。判断该说法。