2021年3月22日学习日记

3.22学习情况回顾

今天主要学习了软件测试的分类,常见测试方法和软件测试的阶段。

一、软件测试的分类

  1. 静态测试与动态测试
    • 静态测试不必动态运行程序,也不必进行测试用例设计和结果判断等 工作。
    • 静态测试可以由人工进行,充分发挥人的逻辑思维优势。
    • 静态测试实施不需要特别的条件,容易开展。
    • 通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确 性和健壮性等性能

  2. 黑盒测试与白盒测试
    (1)黑盒测试
    黑盒测试又称为功能测试、数据驱动测试或基于规格说明书的测试。黑盒测试就当整个程序是个黑盒子,我们看不到它里面做了些什么事情,只能通过输入输出看是否能得到我们所需的来测试。
    黑盒测试的主要测试方法有:等价类划分法、边界值分析法、因果图法、场景法、正交实验设 计法、判定表驱动分析法、错误推测法、功能图分析法等。
    (2)白盒测试
    称为结构测试或逻辑驱动测试,白盒测试是针对被测单元内部是如何进行工作的测试。白盒测试可以当盒子是透明的,里面的一切我们都看的清楚,从而我们可以通过去测内部结构来测试。
    白盒测试的主要测试方法有:静态测试&动态测试、单元测试、代码检查、同行评审、逻辑覆盖、基本路径测试等。
    (3)区别
    白盒测试的重点是进行代码覆盖,而黑盒测试着重进行功能、性能的测试。
    白盒测试中可能不考虑软件的外在表现特性,往往根据运行的代码来判断测试的结果。
    而黑盒测试则不关心程序的内部逻辑结构,只提供输入和操作过程,通过软件运行给出的运行结果来判断测试是否通过。
    在实践中,单元测试主要是采用白盒测试方法,而除单元测试之外其他 阶段的测试则大都采用黑盒测试方法。
    有时并不能完全区分进行的是哪种测 试,往往把两者结合起来会得到更好的测试效果。
    (4)灰盒测试
    灰盒测试是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。
    灰盒测试不像白盒那样详细、完整,但又比黑盒测试更关注程序的内部逻辑,常常是通过一些表征性的现象、事件、标志来判断内部的运行状态。
    灰盒测试关注的是一个模块或模块之间的接口问题。

  3. 手工测试与自动化测试
    (1)手工测试
    就是由人去一个一个的输入用例,然后观察结果,和 机器测试相对应,属于比较初级但是必须的一个步骤。
    (2)自动化测试
    通过将测试执行部分或者全部交由机器执行的一种 测试,叫做自动化测试。这种测试不需要人的实时参与。同时这 种测试在小规模应用时会比手动测试昂贵许多。
    (3)测试自动化
    这是一种让测试过程脱离人工的一次变革。对于 控制成本,控制质量,回溯质量和减少测试周期都有积极影响 的一种研发过程。
    (4)手工测试与自动测试
    自动测试优点:
    对程序新版本运行前一版本执行的测试,提高回归测试效率;
    可以运行更多更频繁的测试,比如冒烟测试;
    可以执行手工测试困难或不可能做的测试,比如大量的重复操作或者性能测试,如处理精确的事务、大数据量事务、并发事务。
    自动测试局限:不能取代手工测试,自动化测试只能提高测试效率,不能提高测试有效性,即不可能发现更多缺陷,手工测试比自动测试发现的缺陷更多;
    对测试设计依赖性极大,测试设计的不好会遗漏问题;
    自动化测试对软件开发具有很大的依赖性,开发上出现变更可能导致前面的自动化测试 完全失效;
    工具本身并不具备想象力,工具不具有智能;
    开发、维护脚本工作量大、费用高。
    (5)适用情况
    适合使用自动化测试的情况:版本稳定、项目周期长、脚本可复用
    不适合使用自动化测试的情况:定制型项目(一次性的),项目周期很短的项目,涉及业务规则复杂的对象,关于美观、声音、易用性的测试,很少运行的测试,测试的软件不稳定,涉及物理交互的测试。

二、常见测试方法

  1. 功能测试
    对产品的各功能进行验证,根据功能测试用例,逐项测试,检查 产品是否达到用户的要求
  2. 性能测试
    观察系统在一个给定的环境和场景中的性能表现是否与预期目标 一致,评判系统是否存在性能缺陷,并根据测试结果识别性能瓶颈,改善系统性 能的完整的过程。
  3. 负载测试
    在一定的软件、硬件及网络环境下,通过改变系统负载方式、增加负 载等来发现系统中所存在的性能问题。用于确定系统所能承载的最大用户数、最 佳用户数。关注不同用户数下的系统响应时间及服务器的资源利用率。
  4. 压力测试
    在一定的软件、硬件及网络环境下,通过模拟大量的虚拟用户向服务 器产生负载,使服务器的资源处于极限状态下长时间连续运行。目的测试服务器 在高负载情况下是否能够稳定工作,挖掘系统最脆弱的位置。
  5. 稳定性测试(可靠性测试)
    在一定的软件、硬件及网络环境下,模拟一定数量 虚拟用户运行一种或多种业务,长时间的运行(7*24小时)系统。目的是检测系统 在长时间运行下的稳定性和性能相关指标是否符合预期。
  6. 易用性测试
    指用户使用软件时是否感觉方便,也称为用户体验测试。
    安装易用性
    功能易用性
    界面易用性 https://baike.baidu.com/item/易用性测试
    辅助系统易用性
  7. 界面测试
    测试用户界面的布局是否合理、整体风格是否一致、各个控件的 放置位置是否符合客户使用习惯,此外还要测试界面操作便捷性、导航简单 易懂性,页面元素的可用性,界面中文字是否正确,命名是否统一,页面是 否美观,文字、图片组合是否完美等。
    测试目标:通过用户界面 (UI) 测试来核实用户与软件的交互。UI测试的目标在于确保用户 界面向用户提供了适当的访问和浏览测试对象功能的操作。除此之外,UI 测试 还要确保 UI 功能内部的对象符合预期要求,并遵循公司或行业的标准。
    优秀界面的7要素:
    符合标准和规范、直观性、一致性、灵活性、舒适性、正确性、实用性。
  8. 安装测试
    确保该软件在正常情况和异常情况的不同条件下都能进行安装。https://baike.baidu.com/item/安装测试
    安装:首次安装、重复安装;卸载;升级。
  9. 文档测试
    检验各种文档的完整性、正确性、一致性、易理解性、易浏览性。
    软件产品的文档分为三大类:开发文档、用户文档、管理文档 。
  10. 兼容性测试
    指检查软件之间能否正确地进行交互和共享信息。软件兼容性 测试工作的目标是保证软件按照用户期望的方式进行交互。
    兼容性分类:
    向前兼容与向后兼容:向前兼容是指可以使用软件的未来版本,向后兼容是指可 以使用软件的以前版本
    硬件兼容:与整机兼容、与外设兼容
    软件兼容:操作系统/平台、应用软件之间的兼容、不同浏览器的兼容、数据库的兼容、软硬件配合兼容
    数据兼容:不同版本间的数据兼容、不同软件间的数据兼容
  11. 安全测试
    指有关验证应用程序的安全等级和识别潜在安全性缺陷的过程
    安全性测试方法:
    功能验证:权限管理、加密、认证等
    漏洞扫描:使用工具
    模拟攻击试验:跨站攻击
    侦听技术:在数据通信或数据交互过程中,对数据进行截取分析的过程
  12. 恢复测试
    主要检查系统的容错能力。当系统出错时,能否在指定时间间隔 内修正错误并重新启动系统。
    应该检验以下内容:
    自动恢复:重新初始化、数据恢复以及重新启动是否正确。
    人工恢复:还需估测平均修复时间,确定其是否在可接受的范围内。

三、软件测试的阶段

  1. 单元测试
    在这里插入图片描述
  2. 集成测试
    在这里插入图片描述
  3. 系统测试
    在这里插入图片描述
  4. 验收测试
    验收测试:也称交付测试,是针对用户需求、业务流程进行的正式的测试,以确定系统是否满足验收标准,由用户、客户或其他授权机构决定是否接受系统。
    是在软件产品完成了系统测试之后、产品发布之前所进行的测试。
    验收测试一般会根据产品产品需求(用户故事),严格的逐项的检查产 品,确保所开发的软件产品符合用户预期的各项要求。
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_56039103/article/details/115090854