9.x — 第 9 章总结和测验

章节回顾

范围蔓延(Scope creep)是指项目的能力超出了项目或项目阶段开始时最初的预期。

软件验证(Software verification)是测试软件在所有情况下是否按预期工作的过程。单元测试(Unit test)是旨在独立测试代码的一小部分(通常是函数或调用)以确保特定行为按预期发生的测试。单元测试框架(Unit test frameworks)可以帮助您组织单元测试。集成测试(Integration testing)测试一堆单元的集成,以确保它们正常工作。

代码覆盖率(Code coverage)是指测试时执行的源代码量。语句覆盖率(Statement coverage)是指程序中被测试例程执行的语句的百分比。分支覆盖率(Branch coverage)是指被测试例程执行的分支的百分比。循环覆盖率(Loop coverage)(也称为0、1、2测试)意味着如果您有一个循环,您应该确保它在迭代0次、1次和2次时都能正常工作。

顺利路径(happy path)是指没有遇到错误时的执行路径。错误路径(sad path)是指发生错误或失败状态的路径。不可恢复错误(non-recoverable error)(也称为致命错误(fatal error))是严重到程序无法继续运行的错误。能够很好地处理错误情况的程序是健壮的(robust)

缓冲区(buffer)是为临时存储数据而预留的一段内存,用于在数据从一个地方移动到另一个地方时使用。

检查用户输入是否符合程序预期的过程称为输入验证(input validation)

std::cerr 是一个输出流(类似于 std::cout),设计用于错误消息。

前置条件(precondition)是在执行某个代码段之前必须始终为真的任何条件。不变式(invariant)是在某个组件执行时必须为真的条件。后置条件(postcondition)是在执行某些代码之后必须始终为真的任何条件。

断言(assertion)是一个表达式,除非程序中存在错误,否则它将为真。在 C++ 中,运行时断言通常使用 assert 预处理器宏实现。断言通常在非调试代码中关闭。static_assert 是在编译时评估的断言。

断言应该用于记录逻辑上不可能发生的情况。错误处理应该用于处理可能发生的情况。

小测验时间

问题 #1

在课程 8.x -- 第 8 章总结和测验 的测验中,我们实现了一个 Hi-Lo 游戏。

更新您之前的解决方案,以处理无效猜测(例如“x”)、超出范围的猜测(例如 0101),或包含多余字符的有效猜测(例如 43x)。还要处理用户在游戏询问是否要再次玩时输入多余字符的情况。

提示:编写一个单独的函数来处理用户输入猜测(以及相关的错误处理)。

显示答案

guest
您的电子邮箱地址将不会被显示
发现错误?请在上方留言!
与勘误相关的评论在处理后将被删除,以帮助减少混乱。感谢您帮助使网站对每个人都更好!
来自 https://gravatar.com/ 的头像与您提供的电子邮箱地址相关联。
有回复时通知我:  
138 条评论
最新
最早 最多投票
内联反馈
查看所有评论