第十章:软件测试
软件测试广义上是指软件产品生存周期内所有的检查、评审和确认活动,如设计评审、系统测试。狭义上是对软件产品质量的检验和评价,检查软件产品质量中存在的质量问题,同时对产品质量进行客观的评价。主要的测试文档包括测试计划、测试规范、测试用例、缺陷报告。软件测试需要以下三类信息:软件配置、测试配置、测试工具。
软件测试策略:单元测试、集成测试、确认测试和系统测试。单元测试包括模块接口测试、模块局部数据结构测试、重要执行通路测试、错误处理测试、边界条件测试、单元测试方法。集成测试包括自顶向下集成、自底向上集成。系统测试包括恢复测试、安全测试、强度测试、性能测试。调试方法包括简单的调试方法、归纳法调试、演绎法调试、回溯法调试。
软件测试方法从是否需要执行被测软件的角度来看分为静态测试和动态测试;从测试是否针对系统的内部结构和具体实现算法的角度来看分为黑盒测试和白盒测试。静态测试包括人工测试和计算机辅助静态分析。黑盒测试(功能|数据驱动测试)方法主要有等价类划分、边界值分析、因一果图、失败条件测试、状态测试、错误推测等主要用于软件确认测试。白盒测试(结构|逻辑驱动测试)方法主要有逻辑覆盖(语句、分支、条件覆盖)、路径测试等主要用于软件验证。程序的静态测试重要方法有同行审查、代码会审、代码走查等。这些审查方法具备查找问题、遵守规则、审查准备、编写报告四个基本要素。
面对对象软件测试类型有模型测试、类测试、交互测试、系统测试、验收测试、发布测试。