软件测试入门



软件的生命周期
市场调研、 可行性分析 、需求分析、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段
1 软件测试概念
实际输出 预期输出 审核与比较的一个过程 (即成果 跟需求文档是否一致达标)
对软件进行操作 即衡量软件的质量是否满足需求设计
通俗来讲 就是配合开发人员保证产品质量满足需求设计

测试的原则 : 尽早、尽快,发现软件缺陷
理解需求---用需求去检测评估软件是否符合

职位要求 1 理解 软件测试的概念 2掌握软件测试的 方法 3理解软件测试的过程
2 测试的定位与意义

公司的组织机构
技术部(开发团队)
BOSS
|
CEO
|
CTO (技术总监)1
|
项目经理2
|
产品经理(UE)2 — UI - 开发 - 测试
(交互设计师) (UI设计师) 1 前端 后端
需求 文档 产品原型 效果图、切图 H5开发工程师(H5微信公众号/游戏开发222) web前端1 web后端2 PHP后端 2 移动端(IOS 2 Android 2)
根据实际情况定,根据主打的业务不同选择不同的人数
专业 + 业务+ 性格 = 好工作

软件测试的流程是
  1. 测试需求分析 (熟悉产品/项目)
  2. 拟定测试计划(项目经理负责) 测试计划 ---软件测试计划书(什么时候测,怎么测)
  3. 编写测试用例(主要职责,是能力的体现) 是为了软件测试编写的指导文档
思路:: 用什么 测试方法 设计测试用例 编写测试用例
测试用例的要素 ---前提条件--测试步骤--测试数据--预期结果
  1. 需求评审(分为内部和外部)
  2. 执行测试用例
  3. 预测试 (搭建测试环境包括硬软件环境,网络以及数据)
  4. 第一轮测试 (发现bug,提价bug)
  5. 第二轮回归测试 对修复的设计或者代码进行测试,确保没有问题,
  6. 第三轮测试 (验收测试)
  7. 测试报告(管理缺陷)(人物、时间(项目测试周期)、地点(测试环境) 事件(测了什么功能) 、结局(有多少Bug,通过不通过)
为什么会出现软件缺陷?
需求变化、设计错误、软件复杂、开发工具、时间压力、缺乏沟通、文档缺乏
缺陷管理 -- 要发现缺陷,提交缺陷报告--追踪缺陷状态,直至缺陷解决
  1. 测试总结(由项目组长带头)--系统评估:判断当前系统的状态是否可以进行下一阶段,总结归纳

Android 项目开发流程
1 ,分析需求
2 ,制定开发周期
3 ,版本控制工具 (git/svn, 保证项目安全 )
4 ,技术选型 ( 项目大小,周期等决定 )
5 ,搭框架 (UI 框架 ; 开发模式 :MVC,MVP,MVVM; 公共类的抽取 )
6 ,分模块驱动式开发 ( 有可能是独立开发 )
7 ,提测 ( 签名打包 apk)
8 ,优化 ( 混淆,内存优化 ) 上线
补充 :
常见的开发模块有 :
敏捷式 快
敏捷就是“快”。快才可以适应目前社会的快节奏,要快就要发挥个人的个性思维多一些个性思维的增多。 产品、UI、后台、前端、保持同步进行
瀑布式 公司团队尚未健全,传统的开发模式,
1、强调文档
前一个阶段的输出就是下一个阶段的输入,文档是个阶段衔接的唯一信息。所以很多开发人员好象是在开发文档,而不是开发软件,因为要到 开发的后期才可以看到软件的“模样”。
2、没有迭代与反馈 。瀑布模型对反馈没有涉及,所以对变化的客户需求非常不容易适应。瀑布就意味着没有回头路。
3、管理人员喜欢瀑布模型 的原因是把文档理解为开发的速度,可以方便地界定不同阶段的里程碑。
驱动式



软件测试的对象
软件和程序的区别
软件= 程序 + 数据 + 文档 程序 是一段可执行的代码集合
软件测试的目的
发现并减少软件中存在的缺陷,使其达到 质量要求
软件测试的原则
软件测试以满足用户和客户需求为依据
软件测试是尽可能多的发现和减少缺陷,但不能消除所有缺陷
软件测试要与开发人员相互配合共同完成
1)尽早和不断测试;
2) 从小规模到大规模;
3)时刻关注用户的需求;
4)设计测试用例时考虑各种情况;
5)程序员避免检查自己的程序;
6)充分注意测试中的群集现象;
7)严格执行测试计划并及时响应变更;
8)应该对每一个测试结果做全面的检查;
9)妥善保存一切测试文档;
10)完全测试是不可能的,测试需要终止;
11)注意回归测试的关联性。

优秀测试人员的素质
沟通能力
技术能力 (专业)
自信心
耐心
细心






按照技术条件划分
黑盒测试 功能测试 又称为数据驱动是基于软件需求的测试,通过该测试可以知道软件是否满足用户的预期结果
白盒测试 又称为结构测试,逻辑驱动测试,或基于软件本身的测试 是对软件所有的逻辑路径进行测试 适用于单元测试、集成测试
灰盒测试 介于白盒和黑盒之间 ,它不仅关注输入输出是否正确,同时也关注软件的内部 多用于集成测试





、、、



软件测试模型


每日高频面试题
你想做软件测试工程师的原因是什么?
可以从软件测试的目的和对象的角度出发
你对软件测试的理解?
软件的生命周期
市场调研、 可行性分析 、需求分析、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段
1 软件测试概念
实际输出 预期输出 审核与比较的一个过程 (即成果 跟需求文档是否一致达标)
对软件进行操作 即衡量软件的质量是否满足需求设计
通俗来讲 就是配合开发人员保证产品质量满足需求设计

测试的原则 : 尽早、尽快,发现软件缺陷
理解需求---用需求去检测评估软件是否符合

职位要求 1 理解 软件测试的概念 2掌握软件测试的 方法 3理解软件测试的过程
2 测试的定位与意义

公司的组织机构
技术部(开发团队)
BOSS
|
CEO
|
CTO (技术总监)1
|
项目经理2
|
产品经理(UE)2 — UI - 开发 - 测试
(交互设计师) (UI设计师) 1 前端 后端
需求 文档 产品原型 效果图、切图 H5开发工程师(H5微信公众号/游戏开发222) web前端1 web后端2 PHP后端 2 移动端(IOS 2 Android 2)
根据实际情况定,根据主打的业务不同选择不同的人数
专业 + 业务+ 性格 = 好工作

软件测试的流程是
  1. 测试需求分析 (熟悉产品/项目)
  2. 拟定测试计划(项目经理负责) 测试计划 ---软件测试计划书(什么时候测,怎么测)
  3. 编写测试用例(主要职责,是能力的体现) 是为了软件测试编写的指导文档
思路:: 用什么 测试方法 设计测试用例 编写测试用例
测试用例的要素 ---前提条件--测试步骤--测试数据--预期结果
  1. 需求评审(分为内部和外部)
  2. 执行测试用例
  3. 预测试 (搭建测试环境包括硬软件环境,网络以及数据)
  4. 第一轮测试 (发现bug,提价bug)
  5. 第二轮回归测试 对修复的设计或者代码进行测试,确保没有问题,
  6. 第三轮测试 (验收测试)
  7. 测试报告(管理缺陷)(人物、时间(项目测试周期)、地点(测试环境) 事件(测了什么功能) 、结局(有多少Bug,通过不通过)
为什么会出现软件缺陷?
需求变化、设计错误、软件复杂、开发工具、时间压力、缺乏沟通、文档缺乏
缺陷管理 -- 要发现缺陷,提交缺陷报告--追踪缺陷状态,直至缺陷解决
  1. 测试总结(由项目组长带头)--系统评估:判断当前系统的状态是否可以进行下一阶段,总结归纳

Android 项目开发流程
1 ,分析需求
2 ,制定开发周期
3 ,版本控制工具 (git/svn, 保证项目安全 )
4 ,技术选型 ( 项目大小,周期等决定 )
5 ,搭框架 (UI 框架 ; 开发模式 :MVC,MVP,MVVM; 公共类的抽取 )
6 ,分模块驱动式开发 ( 有可能是独立开发 )
7 ,提测 ( 签名打包 apk)
8 ,优化 ( 混淆,内存优化 ) 上线
补充 :
常见的开发模块有 :
敏捷式 快
敏捷就是“快”。快才可以适应目前社会的快节奏,要快就要发挥个人的个性思维多一些个性思维的增多。 产品、UI、后台、前端、保持同步进行
瀑布式 公司团队尚未健全,传统的开发模式,
1、强调文档
前一个阶段的输出就是下一个阶段的输入,文档是个阶段衔接的唯一信息。所以很多开发人员好象是在开发文档,而不是开发软件,因为要到 开发的后期才可以看到软件的“模样”。
2、没有迭代与反馈 。瀑布模型对反馈没有涉及,所以对变化的客户需求非常不容易适应。瀑布就意味着没有回头路。
3、管理人员喜欢瀑布模型 的原因是把文档理解为开发的速度,可以方便地界定不同阶段的里程碑。
驱动式



软件测试的对象
软件和程序的区别
软件= 程序 + 数据 + 文档 程序 是一段可执行的代码集合
软件测试的目的
发现并减少软件中存在的缺陷,使其达到 质量要求
软件测试的原则
软件测试以满足用户和客户需求为依据
软件测试是尽可能多的发现和减少缺陷,但不能消除所有缺陷
软件测试要与开发人员相互配合共同完成
1)尽早和不断测试;
2) 从小规模到大规模;
3)时刻关注用户的需求;
4)设计测试用例时考虑各种情况;
5)程序员避免检查自己的程序;
6)充分注意测试中的群集现象;
7)严格执行测试计划并及时响应变更;
8)应该对每一个测试结果做全面的检查;
9)妥善保存一切测试文档;
10)完全测试是不可能的,测试需要终止;
11)注意回归测试的关联性。

优秀测试人员的素质
沟通能力
技术能力 (专业)
自信心
耐心
细心






按照技术条件划分
黑盒测试 功能测试 又称为数据驱动是基于软件需求的测试,通过该测试可以知道软件是否满足用户的预期结果
白盒测试 又称为结构测试,逻辑驱动测试,或基于软件本身的测试 是对软件所有的逻辑路径进行测试 适用于单元测试、集成测试
灰盒测试 介于白盒和黑盒之间 ,它不仅关注输入输出是否正确,同时也关注软件的内部 多用于集成测试





、、、



软件测试模型


每日高频面试题
你想做软件测试工程师的原因是什么?
可以从软件测试的目的和对象的角度出发
你对软件测试的理解?
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录 一 软件测试 从零开始 5 1.1 引言 5 1.2 测试准备工作 5 1.2.1 向有经验的测试人员学习 5 1.2.2 阅读软件测试的相关书籍 6 1.2.3 走读缺陷跟踪库中的问题报告单 6 1.2.4 走读相关产品的历史测试用例 6 1.2.5 学习产品相关的业务知识 6 1.3 识别测试需求 7 1.3.1 主动获取需求 7 1.3.2 确认需求的优先级 8 1.3.3 加入开发小组的邮件群组 8 1.3.4 与开发人员为邻 8 1.4 测试用例设计 8 1.4.1 测试用例的基本格式 8 1.4.2 重用同类型项目的测试用例 9 1.4.3 利用已有的软件 Checklist 9 1.4.4 加强测试用例的评审 10 1.4.5 定义测试用例的执行顺序 10 1.5 测试用例执行 10 1.5.1 搭建软件测试环境,执行测试用例 10 1.5.2 测试执行过程应注意的问题 11 1.5.3 及时更新测试用例 11 1.5.4 提交一份优秀的问题报告单 12 1.6 测试结果分析 12 1.7 总结 13 二 软件测试的常识 13 2.1 引言 13 2.2 软件测试常识 13 2.2.1 测试是不完全的(测试不完全) 13 2.2.2 测试具有免疫性(软件缺陷免疫性) 14 2.2.3 测试是 “ 泛型概念 ” (全程测试) 14 2.2.4 80-20 原则 14 2.2.5 为效益而测试 15 2.2.6 缺陷的必然性 15 2.2.7 软件测试必须有预期结果 15 2.2.8 软件测试的意义 - 事后分析 15 2.2.9 结论: 15 三 浅谈软件开发中的注意事项 16 3.1 项目设计 16 3.2 设计变化和需求变化 16 3.3 代码编写 17 3.3.1 源程序文件结构 17 3.3.2 界面设计风格的一致性 17 3.3.3 编辑风格 17 3.3.4 命名规范 18 3.4 BUG修补 18 3.5 开发人员的测试 18 四 软件测试的若干问题 19 4.1 前言 19 4.2 博弈的各方 19 4.3 测试的过程 20 4.4 测试所具备的素质 20 4.5 自动化测试 20 4.6 测试的误区 21 五 浅谈功能测试用例模板设计 21 5.1 Excel 模版 21 5.2 测试用例状态转换分析 23 六 如何提高软件质量 23 6.1 什么是质量 24 6.2 流程对质量的贡献 25 6.3 流程与技术 27 6.4 全面质量管理 28 6.5 关注测试 29 6.6 成功的铁三角 30 6.7 国际上流行的质量标准 30 6.8 如何起步 32 七 ISO和CMM,我们该选择谁 32 7.1 管理水平的适用性 33 7.2 复杂度的适用性 33 7.2.1何谓研发过程复杂度 34 7.2.2 何谓组织机构复杂度 34 7.3 量化管理的适用性上 35 7.4 结论 36 八 如何做好单元测试 36 8.1 前言 36 8.2 组织结构应该保证测试组参与单元测试 36 8.3 加强单元测试流程规范性 37 8.3.1 制订单元测试的过程定义 37 8.3.2 单元测试工作产品必须纳入配置管理 38 8.3.3 必须制订覆盖率指标和质量目标来指导和验收单元测试 38 8.3.4 加强详细设计文档评审 39 8.4 单元测试者技能的提高 39 8.4.1 加强对单元测试人员的技能培训 39 8.4.2 必须引入工具进行辅助 40 8.4.3 单元测试者加强对被测软件的全面了解 40 8.5 结尾 40 九 漫谈人机界面测试 41 9.1 一致性测试 41 9.2 信息反馈测试 42 9.3 界面简洁性测试 42 9.4 界面美观度测试 42 9.5 用户动作性测试 43 9.6 行业标准测试 43 9.7 小结 44 十 基于Web的系统测试方法 44 10.1 功能测试 45 10.1.1 链接测试 45 10.1.2 表单测试 45 10.1.3 Cookies测试 45 10.1.4 设计语言测试 45 10.1.5 数据测试 46 10.2 性能测试 46 10.2.1 连接速度测试 46 10.2.2 负载测试 46 10.2.3 压力测试 46 10.3 可用性测试 47 10.3.1 导航测试 47 10.3.2 图形测试 47 10.3.3 内容测试 47 10.3.4 整体界面测试 47 10.4 客户端兼容性测试 48 10.4.1 平台测试 48 10.4.2 浏览器测试 48 10.5 安全性测试 48 10.6 总结 49 十一 为盈利而测试 49 11.1 引言 49 11.2 什么是软件测试 50 11.3 六个误区 50 11.3.1 误区一:忽视对正常输入的测试 50 11.3.2 误区二:忽视设计阶段的参与与评估 50 11.3.3 误区三:忽视测试计划与测试文档的建立及维护 51 11.3.4 误区四:忽视缺陷的分析,报告及跟踪 51 11.3.5 误区五:错误的测试目标及测试终止条件 51 11.3.6 误区六:不懂得合理调配使用测试人员的知识技能结构 51 11.4 软件质量与软件测试 52 11.5 软件测试的经济目的 54 11.5.1 满足用户需求,提高产品的竞争力,最终提高产品的销售量 54 11.5.2 尽早发现缺陷,降低后继质量成本 54 11.6 何时应当停止测试 56 十二 整体性能测试剖析 57 十三 性能测试工具之研究 62 13.1 性能测试的意义 62 13.2 性能测试工具综述 63 13.3 性能测试工具的体系架构 64 13.4 虚拟用户产生器 Vugen 65 13.5 Proxy 二次捕获的问题 67 13.6 关联的问题 68 13.7 脚本的问题 70 13.8 Conductor 和 Player 部分 71 13.9 Conductor 和 Player 的技术要点 72 13.10 数据分析工具 Analysis 72 13.11 结束语 72 十四 性能测试原理及性能测试实例分析 73 14.1 软件测试中的性能测试 73 14.1.1 性能测试的含义 73 14.1.2 性能测试的分解 73 14.2 一个性能测试实例 74 14.2.1 被测系统 74 14.2.2 对被测系统进行性能测试 75 14.5 总结 80 十五 软件GUI测试中的关注点 80 15.1 不能不说的二个问题 81 15.1.1 软件测试中的“二八”原则 81 15.1.2 软件黑盒测试解决的问题 81 15.2 软件黑盒测试常见错误类型及说明 81 15.2.1 用户界面错误 81 15.2.2 功能性 81 15.2.3 人机交互 82 15.3 命令结构和录入 87 15.3.1 不一致性 87 15.3.2 “最优化” 87 15.3.3 菜单 89 15.4 遗漏的命令 90 15.4.1 状态转换 90 15.4.2 危机预防 90 15.4.3 由用户进行的错误处理 91 15.4.4 其他问题 91 15.5 程序僵化 92 15.5.1 用户可调整性 92 15.5.2 控制方式 93 15.6 性能 94 15.6.1 降低程序速度 94 15.6.2 缓慢回应 94 15.6.3 如何减少用户吞吐量 94 15.6.4 反应拙劣 94 15.6.5 没有提前输入 95 15.6.6 没有给出某个操作会花很长时间的警告 95 15.6.7 程序太多提示和询问 95 15.6.8 尽量使用简单命令和提示 95 15.7 输出 95 15.7.1 不能输出某种数据 95 15.7.2 不能重定向输出 95 15.7.3 与一个后续过程不兼容的格式 96 15.7.4 必须输出的很少或很多 96 15.7.5 不能控制输出布局 96 15.7.6 荒谬的精度输出级别 96 15.7.7 不能控制表或图的标记 96 15.7.8 不能控制图形的缩放比例 96 15.8 错误处理 96 15.8.1 错误预防 96 15.8.2 错误检测 97 15.8.3 错误恢复 98 15.8.4 边界相关的错误 99 15.8.5 计算错误 100 15.9 小结 100 十六 软件测试技术 100 16.1 软件测试基础 101 16.1.1 测试目标 101 16.1.2 测试原则 101 16.1.3 可测试性 102 16.2 测试用例设计 104 16.3 白盒测试 104 16.4 基本路径测试 105 16.4.1 流图符号 105 16.4.2 环形复杂性 106 16.4.3 导出测试用例 106 16.4.4 图矩阵 108 16.5 控制结构测试 108 16.5.1 条件测试 108 16.5.2 数据测试 110 16.5.3 循环测试 111 16.6 黑盒测试 112
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值