测试类型
动态测试
计算机运行
白盒测试
关注内部结构与逻辑,主要用于单元测试
- 控制流测试:逻辑覆盖测试(语句覆盖最弱,路径测试覆盖最强)
- 数据流测试
- 程序变异测试:错误驱动测试
灰盒测试
介于两者之间
黑盒测试
关注输入输出及功能,主要用于集成测试、确认测试和系统测试阶段。
- 等价类划分:不同等价类,揭示不同问题;有效等价类/无效等价类。
- 边界值分析:1<=x<=10,可取x的值为0、1、10和11作为测试数据错误推测:依靠测试人员的经验和直觉。
- 判定表:最适合描述在多个逻辑条件取值的组合所构成的复杂情况下分别要执行哪些不同的动作。
- 因果图:根据输入条件与输出结果之间的因果关系来设计测试用例。
静态测试
人工监测和计算机辅助分析
- 桌前检查
- 代码审查
- 代码走查
静态分析
- 控制流分析:是否存在没有使用的语句/无法达到的语句/调用并不存在的子程序。
- 数据流分析:引用未定义的变量、对以前未使用的变量再次赋值。
- 接口分析:模块之间接口的一致性、子程序和函数之间的接口一致性、函数形参与实参的数量、顺序、类型的一致性。
- 表达式分析:括号不配对、数组引用越界、除数为零。
测试方法
AB测试
多版本同时使用,利于收集各版本的用户反馈,评估出最好版本。故也算是一种【网页优化方法】。
Web测试
web系统测试与其他系统测试测试内容基本相同只是测试重点不同。Web代码测试包括:源代码规则分析、链接测试、框架测试、表格测试、图形测试等方面。
链接测试
链接测试可分为3个方面:
- 测试所有链接是否按指示的那样确实链接到了该链接的页面。
- 测试所链接的页面是否存在。
- 保证Web应用系统上没有孤立的页面。
测试阶段
单元测试
依据【详细设计】,模块测试,模块功能、性能、接口等
集成测试
依据【概要设计】,模块间的接口
策略
- 一次性组装【风险高】
- 增量式组装【测试全面)
- 自顶向下【需要桩模块】
- 自底向上【需要驱动模块】
- 混合式【都需要】
系统测试
依据【需求文档】,在真实环境下,验证完整的软件配置项能否和系统正确连接
分类
- 功能测试
- 性能测试
- 负载测试:各种工作负载下系统的性能
- 压力测试【测上限】:系统的瓶颈或不能接受的性能点
- 强度测试【测下限】:系统资源特别低的情况下运行
- 容量测试【并发测试】:同时在线的最大用户数
- 可靠性测试:MTTF之类的参数
- 健壮性测试
- 用户界面测试
- 安全性测试
- 安装与反安装测试
步骤
- 制定系统测试计划:进行人员以及任务的确定,明确测试范围、测试方法、测试环境与辅助工具
- 设计系统测试用例:如:等价类划分、边界值分析等测试方法的应用
- 执行系统测试:执行设计好的测试用例,并记录结果
- 缺陷管理与改错:消除已发现的错误
确认测试
依据【需求文档】,验证软件与需求的一致性。内部确认测试、Alpha测试、Beta测试、验收测试
面向对象测试
- 算法层(单元测试):包括等价类划分测试、组合功能测试(基于判定表的测试)、递归冷函数测试和多态消息测试
- 类层(模块测试):包括不变式边界测试、模态类测试和非模态类测试
- 模板层/类树层(集成测试):包括多态服务测试和展平测试