说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家!
文章目录
1、软件的概念
程序、数据、文档
2、软件的分类
-
系统软件、支持软件、应用软件
-
单机软件、C/S、B/S
3、软件测试的概念
-
最终目标:发现缺陷
√ 初期:预防缺陷(静态测试:文档审查)
√ 中期:发现缺陷、修复缺陷(静态测试:文档审查、代码审查、代码走查、静态分析<数据流分析、控制流分析、圈复杂度分析>;动态测试:白盒测试、黑盒测试)
√ 后期:建立信心 -
基于用户需求
4、软件测试的原则
-
追溯到需求
-
尽早测试
-
good-enough(测试不能穷尽、测试有风险)
-
pareto 法则
-
分阶段测试(适合公司内部项目)
-
独立的第三方测试
-
测试必须具有破坏性
-
群集效应
-
杀虫剂怪事(测试线性收敛)
-
缺陷未必需要修复
-
确认测试和回归测试
-
测试迭代
-
测试遵循标准
-
思路决定测试
-
具体问题具体分析
-
无责任心不成测试
-
测试不能猜测
5、软件测试的流程
(1)分析测试需求(测试人员)
-
步骤
√ 收集并研读文档、问问题与解决问题、整理需求信息<场景描述>、功能拆分<大纲法>、编写测试点<场景法、等价类划分、边界值分析、决策表、错误推测等>、需求评审 -
编写测试点的方法
√ 场景法:基本流和备选流(分析需求<流程>、写出基本流和备选流)
√ 等价类划分:分析需求、分出有效类和无效类、根据计算机知识和生活常识细分等价类
√ 边界值分析:分析需求(找出边界)、每个边界取 2 个值(小于最小、最小、最大、大于最大)
√ 决策表:分析需求、写出输入和输出的各种情况、组合输入的各种情况(做出判定表)
√ 错误推测:输入非法数据、输入默认值、输入特殊字符、输入合法数据的非法组合、强制粘贴、检查输出结果、检查多种输出、数据结构溢出、结果溢出、操作数和操作符不符、文件超载、文件权限、介质忙或不可用、介质损坏、破坏文件内容 -
评审
√ 参加人员:项目经理、开发经理、测试经理、测试人员、开发人员、用户
(2)编写测试计划(负责人)
-
内容
√ 规划测试工作、分配资源、安排任务、制定测试标准。。。 -
评审
√ 参加人员:项目经理、开发经理、测试经理、用户
(3)编写测试用例(测试人员)
-
根据测试点编写
-
用例的元素或内容
√ 编号
√ 用例概述
√ 预置条件
√ 操作步骤
√ 输入数据
√ 预期结果
√ 设计者 -
评审
√ 参加人员:测试人员
√ 内容:环境搭建的规划、设置用例优先级
(4)执行测试(测试人员)
-
搭建测试环境
√ 安装服务器软件、客户端软件、缺陷管理工具、版本控制工具、自动化测试工具。。。 -
执行测试用例
√ 按照用例执行
√ 随机测试
√ 探索性测试 -
提交缺陷
√ 分离和再现
√ 提交缺陷到工具
✰ 缺陷报告的内容
▲ 缺陷概述
▲ 预处理
▲ 复现步骤
▲ 预期结果
▲ 实际结果
▲ 严重程度
▲ 优先级
▲ 注释/截图
▲ 报告人
✰ 缺陷处理流程:测试人员提交缺陷-负责人分配缺陷-开发人员修复缺陷-测试人员返测-测试负责人关闭缺陷
✰ 缺陷的严重程度
▲ 致命缺陷、严重缺陷、普通缺陷、较小缺陷、意见或建议
✰ 缺陷的优先级
▲ 立即修复、正常排队等待修复、方便时修复、下一版本修复、不修复
✰ 缺陷状态
▲ 新建/已提交、打开/拒绝、已修复、已验证、关闭
(5)评估和总结(负责人)
- 测试人员总结自己的经验教训
6、软件开发模型
-
生命周期模型:大爆炸、边写边改、瀑布模型、螺旋模型、敏捷开发
-
瀑布模型
√ 过程
✰ 需求、计划、设计(系统设计、详细设计)、编码、测试、运行、维护
√ 优点
✰ 完整的严格的步骤、详尽的文档、每一步审查、引入了测试
√ 缺点
✰ 测试太晚了、测试的是代码、缺乏具体的测试过程
7、测试模型
-
V 模型
√ 过程:用户需求、系统设计、详细设计、编码、单元测试、集成测试、系统测试、验收测试
√ 优点
✰ 明确提出了测试的 4 阶段/级别、测试和开发阶段有对应关系
√ 缺点
✰ 测试太晚了、测试的是代码、测试的过程是线性的 -
W 模型
√ 过程
✰ 左边 V:需求分析、概要设计、详细设计、编码实现、模块集成、系统构建、系统安装
✰ 右边 V:需求测试、概要设计测试、详细设计测试、单元测试、集成测试、系统测试、验收测试
√ 优点
✰ 测试与开发并行、测试早做了、测试包括文档、测试贯穿整个软件生命周期
√ 缺点
✰ 测试的过程是线性的 -
H 模型
√ 过程
✰ 测试流程:测试准备、测试就绪点、测试执行
✰ 并行的其它流程
√ 特点
✰ 测试与开发完全独立
✰ 测试有独立的流程
✰ 测试可以迭代、反复、不同的测试可以并行 -
敏捷测试模型
√ 没有一个过程/流程
√ 要点
✰ 结对编程、协同测试、连续测试
✰ 编码之前先写出单元测试用例、然后编码、完成编码后进行单元测试
✰ 强调客户参与,客户进行验收测试
8、软件测试的级别/阶段
-
单元测试
√ 测试技术
✰ 黑盒、白盒
√ 测试重点/发现缺陷
✰ 功能、性能、健壮性、运行时缺陷
√ 要求
✰ 懂开发才能做
√ 一般一人测一个单元 -
集成测试
√ 测试技术
✰ 黑盒、白盒
√ 测试重点/发现缺陷
✰ 接口
✰ 交互
√ 要求
✰ 懂开发才能做
√ 一般多人测试 -
系统测试
√ 测试技术
✰ 黑盒、灰盒
√ 测试重点/发现缺陷
✰ 整个软件的功能、性能、界面、易用性。。。
√ 忽略缺陷
✰ 需求错误理解
✰ 隐性需求
√ 一般由测试人员进行 -
验收测试
√ 测试技术
✰ 黑盒(白盒等哪个测试阶段继续的验收)
√ 测试重点
✰ 能否慢性用户的需求
√ 一般由用户或者委托给测试人员进行
9、非功能测试
-
界面测试
√ 界面美观
√ 主要靠“看”
√ 一般可以与功能测试同时进行,如果不能同时,那就在功能测试之后 -
易用性测试
√ 软件容易使用
√ 主要靠“用”、理解一些意思
√ 一般可以与功能测试同时进行,如果不能同时,那就在功能测试之后 -
兼容性测试
√ 与硬件、平台(操作系统、服务器、分辨率)、其它软件(包括本身软件的不同版本、浏览器)、数据共享
√ 一般在功能测试之后 -
文档测试
√ 简单的类似于“校对”
√ 更多的是根据文档中的描述去操作软件
√ 更多的是指 Readme/自述文档、联机帮助、用户手册等文档,一般在功能测试之后
√ 需求规格说明书、设计说明书等文档最好在测试早期进行(静态测试),早于功能测试 -
安装测试
√ 包括安装、运行、卸载、加密测试
√ 可以早于、同时或晚于功能测试
√ 本地化和国际化测试
√ 语言翻译(字符)
√ 区域文化(风俗习惯、法律法规、度量衡。。。) -
性能测试
√ 时间
✰ 快
√ 空间
✰ 少占资源
10、专项测试
-
Web 测试
√ 功能
✰ 链接
✰ Cookies
✰ 设计语言
✰ 文件上传
√ 性能
✰ 链接速度
✰ 负载测试
✰ 压力测试
√ 安全性
✰ 输入数据的安全性
✰ 数据传输、存储要加密
✰ 权限安全
√ 界面
✰ 语法
✰ 排版
✰ 风格
√ 易用性
√ 兼容性
✰ 浏览器
√ 数据库
✰ 表结构
✰ 索引
✰ 存储过程
√ 文档 -
手机 APP 测试
√ 手机品牌、型号
√ 操作系统类型、版本
√ 安装
√ 运行
√ 卸载
√ 安全
√ 兼容性
√ 网络信号
√ 交叉事件的测试
评论前必须登录!
注册