.. _devops-software-test-strategy-and-category: Software Test Strategy and Category ============================================================================== .. contents:: :depth: 1 :local: 按照作用机制分类 ------------------------------------------------------------------------------ .. contents:: :depth: 1 :local: Static and Dynamic Test (静态测试和动态测试) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - 静态测试: 不运行程序, 仅仅对代码进行静态语法检查, 编译. 例如 pylint. - 动态测试: 运行程序, 验证输入和输出结果. Black, White, Grey Test (黑盒测试、白盒测试和灰盒测试) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - 黑盒: 不关系内部实现, 只关心 input, output 是否符合预期. - 白盒: 关心内部实现. 比如在 input output 符合预期的情况下, 内部某段代码是否被正确执行了. Manual, Automate Test (手动, 自动测试) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 不用解释了. 不同阶段的测试 ------------------------------------------------------------------------------ .. contents:: :depth: 1 :local: Unit Test (单元测试) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 基本上是 函数, 类, 模块 级别的测试, 保证代码正确. 单元测试是基础要求, 没有单元测试的代码是不允许 Merge 的. Integration Test (集成测试) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 将代码部署到和生产环境相近的环境中, 然后对整个系统进行测试, 看看各个模块, 子系统是否能正确通信, 相互调用. System Test (系统测试) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 将整个系统作为一个整体, 看看系统级的功能是否能够运转正常, 从用户的焦炉来说, 是否符合预期. Acceptance Test (验收测试) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 在产品上线前, 想方设法的以用户的角度对其进行破坏, 输入非法的值, 看看是否运转正常.