软件测试的分类 ?? ?按策略 ?? ??? ?静态测试 ?? ??? ??? ?静态测试不必动态运行程序,也不必进行测试用例设计和结果判断等 工作 ?? ??? ??? ?静态测试可以由人工进行,充分发挥人的逻辑思维优势 ?? ??? ??? ?静态测试实施不需要特别的条件,容易开展 ?? ??? ?动态测试 ?? ??? ??? ?通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确 性和健壮性等性能 ?? ??? ?黑盒测试 ?? ??? ??? ?又称为功能测试、数据驱动测试或基于规格说明书的测试,黑盒测试就当整个程序是个黑盒子,我们看不到它里面做了些什么 事情,只能通过输入输出看是否能得到我们所需的来测试 ?? ??? ?白盒测试 ?? ??? ??? ?白盒测试称为结构测试或逻辑驱动测试 ?? ??? ??? ?白盒测试是针对被测单元内部是如何进行工作的测试 ?? ??? ??? ?白盒测试可以当盒子是透明的,里面的一切我们都看的清楚,从而 我们可以通过去测内部结构来测试 ?? ??? ?灰盒测试 ?? ??? ??? ?是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试 阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。灰 盒测试不像白盒那样详细、完整,但又比黑盒测试更关注程序的内部逻 辑,常常是通过一些表征性的现象、事件、标志来判断内部的运行状态 ?? ??? ??? ?灰盒测试关注的是一个模块或模块之间的接口问题 ?? ??? ?手工测试 ?? ??? ??? ?就是由人去一个一个的输入用例,然后观察结果,和 机器测试相对应,属于比较初级但是必须的一个步骤 ?? ??? ?自动测试 ?? ??? ??? ?通过将测试执行部分或者全部交由机器执行的一种 测试,叫做自动化测试。这种测试不需要人的实时参与。同时这 种测试在小规模应用时会比手动测试昂贵许多 ?? ??? ??? ?优点 ?? ??? ??? ??? ?对程序新版本运行前一版本执行的测试,提高回归测试效率 ?? ??? ??? ??? ?可以运行更多更频繁的测试,比如冒烟测试 ?? ??? ??? ??? ?可以执行手工测试困难或不可能做的测试,比如大量的重复操作或者性能测试,如处理 精确的事务、大数据量事务、并发事务 ?? ??? ??? ?局限 ?? ??? ??? ??? ?不能取代手工测试,自动化测试只能提高测试效率,不能提高测试有效性,即不可能发 现更多缺陷,手工测试比自动测试发现的缺陷更多 ?? ??? ??? ??? ?对测试设计依赖性极大,测试设计的不好会遗漏问题 ?? ??? ??? ??? ?自动化测试对软件开发具有很大的依赖性,开发上出现变更可能导致前面的自动化测试 完全失效 ?? ??? ??? ??? ?工具本身并不具备想象力,工具不具有智能 ?? ??? ??? ??? ?开发、维护脚本工作量大、费用高 ?? ??? ?冒烟测试 ?? ??? ??? ?冒烟测试执行,与正式测试的区别在于二者侧重点不同,冒烟测试关注的是阻塞型缺陷, 包括但不限于流程不通、主要功能未实现等,而正式测试则属于全面、细致的测试,需要 尽可能的发现全部缺陷并按其严重性进行区分 ?? ??? ??? ?注意点 ?? ??? ??? ??? ?开发协同 ?? ??? ??? ??? ?注重效率 ?? ??? ??? ??? ?评估用例 ?? ??? ?回归测试 ?? ??? ??? ?过一段时间以后再回过头来对以前修复过的缺陷重新进行测试,看该缺陷是否会重新出现 ?? ??? ??? ?修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误 ?? ??? ??? ?回归测试贯穿整个测试活动,且占据很大的工作量 ?? ??? ??? ?过程 ?? ??? ??? ??? ?识别出软件中被修改的部分 ?? ??? ??? ??? ?从原基线测试用例库T中,排除所有不再适用的测试用例,确定那些对新的软件版本依然有 效的测试用例,其结果是建立一个新的基线测试用例库T0 ?? ??? ??? ??? ?依据一定的策略从T0中选择测试用例测试被修改的软件 ?? ??? ??? ??? ?如果必要,生成新的测试用例集T1,用于测试T0无法充分测试的软件部分 ?? ??? ??? ??? ?用T1执行修改后的软件 ?? ??? ??? ??? ?第(2)和第(3)步测试验证修改是否破坏了现有的功能,第(4)和第(5)步测试验证修改工作本身 ?? ??? ?功能测试 ?? ??? ??? ?对产品的各功能进行验证,根据功能测试用例,逐项测试,检查 产品是否达到用户的要求 ?? ??? ?性能测试 ?? ??? ??? ?观察系统在一个给定的环境和场景中的性能表现是否与预期目标 一致,评判系统是否存在性能缺陷,并根据测试结果识别性能瓶颈,改善系统性 能的完整的过程 ?? ??? ??? ?方法 ?? ??? ??? ??? ?负载测试 ?? ??? ??? ??? ?压力测试 ?? ??? ??? ??? ?稳定性测试 ?? ??? ?易用性测试 ?? ??? ??? ?指用户使用软件时是否感觉方便,也称为用户体验测试 ?? ??? ??? ?包括 ?? ??? ??? ??? ?安装易用性 ?? ??? ??? ??? ?功能易用性 ?? ??? ??? ??? ?界面易用性 ?? ??? ??? ??? ?辅助系统易用性 ?? ??? ?界面测试 ?? ??? ??? ?测试用户界面的布局是否合理、整体风格是否一致、各个控件的 放置位置是否符合客户使用习惯,此外还要测试界面操作便捷性、导航简单 易懂性,页面元素的可用性,界面中文字是否正确,命名是否统一,页面是 否美观,文字、图片组合是否完美等 ?? ??? ??? ?目标 ?? ??? ??? ??? ?通过用户界面 (UI) 测试来核实用户与软件的交互。UI测试的目标在于确保用户 界面向用户提供了适当的访问和浏览测试对象功能的操作。除此之外,UI 测试 还要确保 UI 功能内部的对象符合预期要求,并遵循公司或行业的标准 ?? ??? ??? ?优秀界面的七要素 ?? ??? ??? ??? ?符合标准和规范 ?? ??? ??? ??? ??? ?用户界面是否洁净、不唐突、不拥挤 ?? ??? ??? ??? ??? ?UI的组织和布局合理吗 ?? ??? ??? ??? ??? ?有多余功能吗 ?? ??? ??? ??? ??? ?帮助系统有效吗 ?? ??? ??? ??? ?直观性 ?? ??? ??? ??? ?一致性 ?? ??? ??? ??? ??? ?被测试的软件本身必须与其他软件保持一致性 ?? ??? ??? ??? ??? ?同一个程序中的相同操作更要保持一致 ?? ??? ??? ??? ??? ?如果软件或者平台有一个标准,就要遵守它。如果没有,就要注意软件的 特性,确保相似的操作以相似的方式进行 ?? ??? ??? ??? ?灵活性 ?? ??? ??? ??? ?舒适性 ?? ??? ??? ??? ?正确性 ?? ??? ??? ??? ?实用性 ?? ??? ?安装测试 ?? ??? ??? ?确保该软件在正常情况和异常情况的不同条件下都能进行安装 ?? ??? ?文档测试 ?? ??? ??? ?检验各种文档的完整性、正确性、一致性、易理解性、易浏览性 ?? ??? ??? ?文档分类 ?? ??? ??? ??? ?开发文档 ?? ??? ??? ??? ?用户文档 ?? ??? ??? ??? ?管理文档 ?? ??? ?兼容性测试 ?? ??? ??? ?指检查软件之间能否正确地进行交互和共享信息。软件兼容性 测试工作的目标是保证软件按照用户期望的方式进行交互。 ?? ??? ?安全测试 ?? ??? ??? ?指有关验证应用程序的安全等级和识别潜在安全性缺陷的过程 ?? ??? ??? ?方法 ?? ??? ??? ??? ?功能验证:权限管理、加密、认证等 ?? ??? ??? ??? ?漏洞扫描:使用工具 ?? ??? ??? ??? ?模拟攻击试验:跨站攻击 ?? ??? ??? ??? ?侦听技术:在数据通信或数据交互过程中,对数据进行截取分析的过程 ?? ??? ?恢复测试 ?? ??? ??? ?主要检查系统的容错能力。当系统出错时,能否在指定时间间隔 内修正错误并重新启动系统 ?? ??? ??? ?内容 ?? ??? ??? ??? ?自动恢复:重新初始化、数据恢复以及重新启动是否正确 ?? ??? ??? ??? ?人工恢复:还需估测平均修复时间,确定其是否在可接受的范围内
|