软件测试概述
软件测试的定义
软件测试是在可以控制的条件下操作一个系统或者应用程序,并且对结果进行评价的活动。也是验证程序正确并符合用户需求的过程
软件测试的重要性
软件需求—用户:我要什么
需求规格说明—分析员:我可以提供什么
设计说明书—设计员:我要让软件怎么做
源程序—程序员:我要让计算机怎么做
运行结果—计算机:程序运行得到结果
软件测试作用
1)保证产品质量
2)缩减开发成本
3)降低风险
4)提高声誉
测试常用术语
测试性质
1)单元测试
2)集成测试
3)系统测试
4)确认测试或者验收测试
测试种类
1)白盒
2)黑盒
3)灰盒
测试手段
1)手工测试
2)自动测试
测试的过程
测试准备—测试计划—测试设计—测试执行—测试总结
测试准备(准备资源、熟悉系统)
测试计划(测试策略、资源分配、风险预警、进度安排)
测试设计(测试大纲、测试用例)
测试执行(测试问题卡)
测试总结(测试总结报告)
测试人员的职责
- 参与测试大纲的设计,并编写测试用例
- 测试过程的主要执行者
- 参与测试总结的编写,评价产品的功能、性能及可用性
- 保证所负责模块的测试质量
测试设计方法
测试设计
测试大纲、测试用例
设计原则:①结构层次清晰 ②覆盖全面
测试用例
数据—合法类、非法类、边界值
操作—正常类、异常类、关联
表单—必填项、输入域、下拉列表
条件组合
业务流程测试(跟踪测试数据的整个流程、遍历所有可能)
测试设计评审
评审准备、评审执行、过程跟踪
评审准备
- 确定主审员及评审组人员
- 明确评审职责
- 提前通知评审
- 分发评审资料
评审执行
- 组织有效的交流
- 清晰的过程记录
- 有效的解决方案
评审结果跟踪
- 不合格项的改进情况
开发与测试的沟通
开发人员与测试人员的关系
既是防守与进攻的两方,也是协同工作的整体
可用性测试
什么是软件可用性
软件产品的可用性是指软件产品能否让用户更快更容易地完成工作,软件产品的可用性主要反应在软件产品的用户界面及操作过程上
可用性测试的方法
- 以用户为中心的设计方法
百盒测试
此方法把测试对象看着一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。
逻辑覆盖
逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术。它属于白盒测试。
语句覆盖
语句覆盖就是设计若干测试用例,运行被测程序,使得每一可执行语句至少执行一次。
判断覆盖
设计若干个测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次
条件覆盖
设计若干个测试用例,运行被测程序,使得程序中每个条件的可能取值至少执行一次
判断—条件覆盖
设计若干个测试用例,运行被测程序,使得判断中每个条件的所有可能取值至少执行一次
路径测试
设计足够的测试用例,覆盖程序中所有可能的路径