全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
某字段接收整数:输入在 1 至 20(含端点)时返回“合格”,其余整数返回“不合格”。按等价类划分法,只要输入类型相同,这些整数就应划分为同一个等价类。
登录后查看答案
性能分析显示,某函数中条件判断 if (p != NULL && p->val > 0) 是热点。开发者认为逻辑与满足交换律,且 p->val 的读取无副作用,于是将其改写为 if (p->val > 0 && p != NULL),以减少分支判断,并声称该改写能保持原程序的可观察行为。该说法是否正确?
判断:在质量成本模型中,当产品合格率提高时,预防成本与鉴定成本会随之上升,而失败成本会下降,因此企业只要持续加大预防成本投入,总质量成本就必然不断降低。
判断:质量保证主要通过检查和测试已完成的软件产品来发现缺陷;质量控制则侧重建立并改进开发过程以预防缺陷。
某团队开发库存扣减模块时采用TDD。对每个新规则,先编写失败测试,再实现刚好通过测试的最小代码,然后在测试通过的前提下重构。迭代结束后所有测试通过,但评审发现:为便于测试,模块新增了多个仅用于测试的公共方法,导致接口暴露、内聚性下降。团队认为:TDD要求从调用者角度先写测试,故采用TDD必然提升模块内聚性并降低耦合度,上述现象只是偶然。判断该认识是否正确。
某在线课程平台中,Instructor 类包含 courseList、name、email 三个字段,以及 calculateSalary()、calculateRating()、updateContactInfo() 三个方法。calculateSalary() 与 calculateRating() 都频繁访问 courseList;updateContactInfo() 只访问 name 和 email。近三个月,财务政策变动只要求修改 calculateSalary(),教学评估规则变动只要求修改 calculateRating(),人事信息格式变动只要求修改 updateContactInfo()。一名重构者认为该类呈现“霰弹式修改”坏味道,主张拆分为 SalaryCalculator、RatingCalculator 和 ContactManager 三个类。该识别是否正确?
判断题:某函数 grade(score) 对 0 到 100 的分数返回等级。若已用测试输入 0、100、50 各执行一次且全部通过,则可以断定该函数对 0 到 100 之间的任意分数都能返回正确等级。
在重构评审中,某类 ReportFormatter 含 formatHeader()、formatBody()、formatFooter() 三个方法。formatHeader() 仅因报表标题格式规则变化而需要修改,formatBody() 仅因正文格式规则变化而需要修改,formatFooter() 仅因页脚格式规则变化而需要修改,三者变化原因彼此独立。评审者认为:该现象属于“霰弹式修改”坏味道,因为同一个类中出现了多个会因不同原因被修改的方法。该评审者的判断是否正确?
某软件产品满足了需求规格说明书中列出的全部功能需求,但运行时经常出现内存泄漏,且用户未在需求中明确要求内存管理。有观点认为:既然内存管理不属于规定需求,那么内存泄漏不影响该软件的质量评价。这一观点是否正确?
判断题:在McCall质量模型中,面向产品转移的质量特性包括可移植性、可重用性和互操作性(Interoperability),因此某公司宣称其软件的互操作性强即说明该模型中产品运行面向的质量水平必然很高。该说法是否正确?
判断:某软件企业声称其已通过 CMMI 三级认证,因此其交付的所有软件产品必然满足 ISO/IEC 25010 质量模型中规定的全部质量特性要求。
判断题:ISO/IEC 25000系列标准主要用于评估软件组织的过程成熟度等级,而不是为软件产品质量模型和质量评价提供标准化框架。
判断:软件质量活动的基础是把质量责任交给独立质量人员,并在软件交付前集中开展检查;开发人员在需求、设计和编码阶段无需参与质量活动。
某代码模块近期频繁因需求变更而修改,现有结构使每次修改都容易牵连多处;尽管当前版本功能测试通过,也应等到该模块出现故障后再考虑重构。判断该表述是否正确。
判断:小陈重构一段遗留代码前,先为依赖外部数据库的模块搭建了测试替身并建立可通过的测试基线;随后每次小步重构后运行测试。中途某次测试失败,他先完成原计划的全部重构步骤再统一修复,理由是测试只是最终验收手段,不影响重构过程。
某用户资料模块需要提供一个函数:它只读取账户的用户名和调用者指定的规范化模式,生成规范化用户名;调用者只使用生成后的用户名。有人认为,为便于将来扩展,函数应接收整个账户对象,并返回包含规范化用户名、是否发生变更及处理警告的结构体。判断这一接口设计合理。
判断题:设某循环写法为「while (i < n) { 处理 a[i]; i ← i + 1; }」,初始时 i = 0 且 n ≥ 0。有学生认为:只需验证循环体每轮执行后「i ≤ n 且 a[0..i-1] 均已处理」保持成立,即可断定该循环正确终止;而循环边界条件 i < n 无需单独检查,因为循环不变式已隐含它。
某无向简单图有 n 个顶点、m=Θ(n) 条边,邻接表按顶点保存邻居,查询边 (u,v) 是否存在时需扫描 u 的邻居;邻接矩阵用 n×n 的布尔表表示边。有人据此认为邻接表空间更省,所以边存在性查询也渐近更快。判断该说法是否正确。
某服务定义了抽象数据类型“最近访问记录”,规范只描述对外操作及其可观察行为。实现甲用循环数组存储,实现乙用链表存储;二者对所有合法操作均符合该规范。有人据此断言:既然二者属于同一抽象数据类型,它们的内部表示就必须相同。该断言正确吗?
某团队在持续集成中规定:开发人员向主干推送提交后自动触发构建,且 CI 服务器必须检出该次推送对应的提交(而非分支最新提交)进行构建,构建产物与提交哈希一同归档。某新成员提出以下看法:『这一规定的主要目的是建立提交与构建产物之间的可追溯性,使任一归档产物都能定位到产生它的确切代码版本;若 CI 检出分支最新提交而非触发提交来构建,构建结果就可能混入他人稍后推送的改动,导致产物与触发提交不对应。因此,只要团队约定每次构建都检出触发提交,就能保证构建可追溯,与是否使用标签或版本号命名产物无关。』请判断该成员的表述是否正确。