软件测试-朱少民.ppt_第1页
软件测试-朱少民.ppt_第2页
软件测试-朱少民.ppt_第3页
软件测试-朱少民.ppt_第4页
软件测试-朱少民.ppt_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件测试 教学要点 思考和分享 朱少民 软件测试 课程的思考 如何定位软件测试课程 更完整地认识软件测试 有哪些新方法和技术 如何规划 组织实验课 如何提高该课程的学习兴趣 其它教学对策 主题 软件测试及其定位全景图开源测试工具新方法和新技术实验课教学对策 主题 软件测试及其定位全景图开源测试工具新方法和新技术实验课教学对策 软件测试的位置 软件测试的位置 覆盖软件开发全过程 测试 开发的同步关系 软件测试的地位 软件研发队伍中主要有开发人员和测试人员 而项目经理 软件配置等方面人员很少 2 11 11 21 10 QA DEV 软件测试概念的演化 1979年 GlenfordMyers的 软件测试艺术 的定义 测试是为发现错误而执行的一个程序或者系统的过程 1983年 BillHetzel在 软件测试完全指南 中指出 测试是以评价一个程序或者系统属性为目标的任何一种活动 测试是对软件质量的度量 Rick和Stefan在 系统的软件测试 一书中对软件测试的定义 测试是为了度量和提高被测软件的质量 对测试软件进行工程设计 实施和维护的整个生命周期过程 狭义观点vs 广义观点 狭义观点G J Myers所给出了测试定义 程序测试是为了发现错误而执行程序的过程 瀑布模型广义观点将测试延伸到需求评审 设计审查活动中去 由静态测试和动态测试构成一个全过程的 完整的软件测试 辩证观点 验证软件是 工作的 以正向思维 针对软件系统的所有功能点 逐个验证其正确性 证明软件是 不工作的 以反向思维方式 不断思考开发人员理解的误区 不良的习惯 程序代码的边界 无效数据的输入以及系统的弱点 试图破坏系统 摧毁系统 目标就是发现系统中各种各样的问题 软件测试的其它观点 风险观点 软件测试是对软件系统中潜在的各种风险进行评估的活经济学观点 一个好的测试用例是在于它能发现至今未发现的错误 缺陷发现得越早 所造成得代价就越低 这就是从经济学的观点来说明测试越早越好 标准观点 软件测试就是 验证 Verification 和 有效性确认 Validation 活动构成的整体 即软件测试 V V 主题 软件测试及其定位全景图开源测试工具新方法和新技术实验课教学对策 软件测试的关键字 缺陷 指导 软件 测试 阶段 管理 思想 质量 用例 方法 目标 源泉 确定 寻求 设计 发现 实施 清除 软件测试的全景图 质量 高质量的软件 应该是相对的无产品缺陷 BugFree 或只有极少量的缺陷 满足客户需求的 是可维护的 而且它能够准时交给用户 其费用是在预算内的 但是 有关质量的好坏最终评价依赖于用户的反馈 产品质量 过程质量 软件产品质量的需求 功能性需求PRD MRD UIMock up FunctionalSpec也可称为可说明性非功能性需求性能 安全性 可用性 兼容性 可靠性 易用性 可达性 Accessibility 等 测试目标 质量需求 可靠性测试可用性测试兼容性测试安装测试恢复测试安全性测试性能测试功能测试国际化测试本地化测试 SaaS的非功能性测试 性能要求 系统响应能力 可用性 7x24不间断服务可伸缩性 系统容量扩充能力 使系统可以支持来自扩大用户群体的额外负载 安全性要求 确定可能潜在的安全威胁并找到处理策略 可维护性要求 对部署系统进行维护的难易程度 可维护性与可用性之间关系密切 故障转移 数据库A 故障转移 负载平衡器 Web服务器A 应用服务器A 数据库B Web服务器B 应用服务器B 故障转移 数据库A 故障转移 负载平衡器 Web服务器A 应用服务器A 数据库B Web服务器B 应用服务器B X X 性能测试 压力测试与负载测试 系统性能的改善是测试 调整 再测试 再调整 一个持续改进的过程 性能调优性能调优需要借助负载测试方法的帮助负载测试和性能测试有较多相似之处 例如 测试方法比较接近 都关注系统的性能 而且多数情况下使用相同的测试工具负载测试可以看作是性能测试所采用的一种技术压力测试可以被看作是负载测试的一种 即高负载下的负载测试容量测试也采用负载测试技术来实现 辨别 负载测试过程 确定所要模拟的角色及其对应的关键业务操作路径 确定输入 输出参数 制定负载测试方案 准备测试环境 并完成相应的测试脚本的开发 设计具体的测试场景 如负载水平 加载方式等 执行测试 监控输出参数 如数据吞吐量 响应时间 资源占有率等 对测试结果进行分析 结果不满意 需要调整测试场景 进入下一个循环 性能测试 性能指标关键业务负载模式最大负载量测试环境结果分析 场景设置 启动 Rampup 持续期间 Duration 结束 Rampdown 在性能测试执行前 以什么样方式启动负载方式 如何持续进行负载测试直至负载测试结束 这个过程的负载大小和方式 负载启动和结束以及各种检查点 验证点等设计 被称为场景设置 递增恒值动态队列 负载测试执行 大量的虚拟用户要运行在多个客户端 并由控制器管理 代理 agent 驱动负载测试的执行 需要针对不同维度的变化进行 包括时间维 负载维和系统维监控 详细的记录和适当的分析是十分重要的 时间维 尝试观察系统在一段较长时间上的行为变化负载维 尝试在系统上改变负载来进行对比分析系统维 负载测试也可以针系统的不同组件 不同配置等进行 负载测试执行环境 结果分析 要善于捕捉被监控的数据曲线发生突变的地方 拐点 安全性测试 跨站点脚本 cross sitescripting XSS 攻击SQL注入式漏洞缓冲区溢出不安全的数据存储或传递不安全的配置管理有问题的访问控制 权限分配有问题口令设置不严 包括长度 构成和更新频率暴露的端口或入口 软件安全性测试就是检验系统权限设置有效性 防范非法入侵的能力 数据备份和恢复能力等 设法找出上述各种安全性漏洞 Hot 测试方法 单因素 多因素 确定等价类的示例 在规定了输入数据的一组值 假定n个 并且程序要对每一个输入值分别处理的情况下 可确立n个有效等价类和一个无效等价类 个人月收入税率x10160045 边界值 全选 只选一个 一个都不选 边界值实例 字符编辑域 DefaultEmptyBlankNullZeroNone 测试用例 测试执行测试数据测试环境测试套件测试脚本测试工具手工测试自动化测试 重点 如何设计测试用例 需求 测试用例 方法 测试用例设计 全面理解功能特性客户需求导向的思维方式白盒方法和黑盒方法用例工作流图 数据流图 UMLcharts负面测试 测试用例框架的构成 更有效 有序地组织测试 测试套件 测试计划 手工测试 发现缺陷率高容易实施创造性 灵活性覆盖率量化困难重复测试效率低不一致性 可靠性低依赖人力资源 高效率 速度 高复用性覆盖率容易度量准确 可靠不知疲劳激励团队士气机械 难以发现缺陷一次性投入大 手工测试vs 自动测试 两者相互补充 在系统功能逻辑测试 验收测试 适用性测试 涉及交互性测试时 多采用手工测试方法 单元测试 集成测试 系统负载或性能 可靠性测试等比较适合采用TA 对那种不稳定 开发周期短或一次性的软件等不适合TA工具本身缺乏想象力和创造性 自动测试只能发现15 的缺陷 而手工测试可以发现85 的缺陷 缺陷 缺陷报告缺陷生命周期缺陷跟踪趋势分析分布分析缺陷清除率质量评估缺陷预防 缺陷生命周期 创建 激活状态 SendemailtoDEV 是否清楚 可再现 已处理状态 已修正状态 SendemailtoQA 不能再现缺少信息 缺陷评审 关闭状态 延期 增强设计 无法解决 需要处理 验证是否通过 Unittest codereviewCheckinCVS No No 下一个版本 Yes Yes 实例 OpenabugDevchecksmail ReviewbugDuplicatethebugDebugCheckoutcodeFixbugCodeReviewUnittest CheckincodeBuildapackageUploadpackageInstallation configurationVerifyfixedbugsChangebugstatustoclose 14Steps start end 测试思想 质量文化客户需求质量保证测试现实测试原则测试驱动成熟度模型 测试现实和原则 测试现实是从事测试活动所面对的客观条件或限制 诸如 测试覆盖程度能否达到100 以及人员 设备 时间等限制 软件测试原则是测试过程中所时时应该注意与遵循的观念或指导性意见 统驭测试方法 是重中之重 例如 站在用户角度 全面测试 尽早 尽可能多的发现软件缺陷 测试管理 测试策略测试风险资源进度测试计划实验室测试团队测试覆盖测试报告与模板 测试计划的内容 确认测试目标 范围和需求识别测试风险 制订相应的测试策略对测试任务和工作量进行估算确定所需的时间和资源进度安排和资源分派 包括团队角色 责任和培训测试阶段划分 包括阶段性任务和成果跟踪和控制机制 核心 首先确立测试范围 优先级最高的需求功能新功能和改动较大的旧功能运用有效的测试技术去提高测试效果经常容易出现问题部分的功能一些经常被用户使用的功能和配置 测试策略 问题或风险在哪里 影响因素已有的测试方法等软件测试策略的确定体现在测试计划 软件测试策略在一定的软件测试标准 测试规范的指导下 依据测试项目的特定环境约束而规定的软件测试的原则 方式 方法的集合 制定测试策略 全面细致地了解产品的项目信息分析各个因素对产品的影响确定测试范围 等级和测试重点使用尽可能少的有效测试用例 发现尽可能多的缺陷测试既不能失败 不足 也不能过度 而是寻求一个最佳平衡点 测试风险 需求变更 测试人员 环境 技术 工具 广度 深度风险评估与控制寻找缓解风险的策略体现在测试计划中在测试过程中进行监控和处理 测试风险是不可避免的 测试总是有风险的 因此对系统中潜在的各种风险进行评估分析与管理是必不可少的活动 问题 测试阶段有哪两种划分 测试阶段 需求审查设计审查单元测试集成测试系统测试验收测试 测试回归测试冒烟测试 软件测试全过程 2 软件测试全过程 3 主题 软件测试及其定位全景图开源测试工具新方法和新技术实验课教学对策 开源的功能测试工具 Selenium http seleniumhq org AutoIT 开源性能测试工具 JMeter http jakarta apache org jmeter Siege http www joedog org JoeDog Siege 是一个开源的Web压力测试和评测工具 OpenSTA 可以模拟大量的虚拟用户来完成性能测试 并通过scr pt来完成丰富的自定义设置 详见http portal opensta org index php DBMonster是一个生成随机数据 用来测试SQL数据库的压力测试工具 详见http dbmonster kernelpanic pl LoadSim 网络应用程序的负载模拟器 更多的性能测试工具 可访问http www opensourcetesting org performance php JMeter 开源的安全性测试工具 Burpsuite是一个可以用于攻击Web应用程序的集成平台Nikto是开源的Web服务器扫描程序 Parosproxy是基于Java的web代理程序 可以评估Web应用程序的漏洞 TamperIE是一个小巧的XSS漏洞检测辅助工具Tripwire是一款最为常用的开放源码的完整性检查工具Wapiti由Python编写的 直接对网页进行扫描WebScarab分析HTTP HTTPS进行通信的应用程序Whisker是使用LibWhisker的扫描程序 适合于HTTP测试Wikto可以检查Web服务器中的漏洞 和Nikto比较接近 网络监控工具Nessus Ethereal Wireshark Snort Switzerland和Netcat 主题 软件测试及其定位全景图开源测试工具新方法和新技术实验课教学对策 敏捷测试 agiletest 64 基于模型的测试 65 被测系统可以通过模型来描述模型包括开始状态 转换和结束状态扩展有限状态机方法 EFSM MSSpecExplorer 模糊 FuzzTest 测试 针对测试系统的随机数据输入数据驱动或事件驱动适用于安全性的测试 66 云测试 Cloudtest 分布式 可伸缩系统大数据量 大用户量虚拟技术并行算法实时服务 67 软件测试发展趋势 全程软件测试 伴随着整个软件开发生命周期全程自动化测试 测试原来可以是这样的全程缺陷预防 测试工作已经不是那么重要 主题 软件测试及其定位全景图开源测试工具新方法和新技术实验课教学对策 实验内容 Web功能测试客户端软件功能测试Web安全性测试Web服务器性能测试应用服务器的性能测试 70 尽量采用开源的测试工具 实验安排 分组实验指导工具介绍 演示和讲解功能测试工具 性能测试工

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论