zl程序教程

您现在的位置是:首页 >  其他

当前栏目

软件测试 -- 进阶 11 手工测试与自动化测试

测试自动化 -- 11 进阶 软件测试 手工
2023-09-14 09:10:53 时间

    楚兰生于深林,不以无人而不芳;君子修道立德,不以穷困而变节。《论语.子路》
    释译:楚兰生在深山老林中,不会因为没有人欣赏而不散发自身的芳香与美丽;君子修身立德,不会因为穷困而变化。

1. 软件测试

  • 软件测试是为发现错误而执行的一个程序或者系统的过程
  • 软件测试的对像包括软件开发过程中的程序、数据和文档
  • 软件测试的执行以测试需求分析、设计、测试用例为基础
  • 软件测试根据执行方式不同,分为手工测试 与 自动化测试
  • 手工测试与自动化测试的“技术含量“之争由来以久,笑看之

参考:软件测试 -- 入门 1 软件测试是什么?

2. 手工测试

  • 基于测试用例
  • 以人工方式执行
  • 人工方式对比测试预期与实际执行结果
  • 可用于单元测试、功能测试、GUI、可用性/易用性、集成测试、系统测试、验收测试等常规测试

3. 自动化测试

  • 基于测试用例
  • 通过代码将测试用例执行由人工转为机器
  • 机器对比测试预期也实际执行,通过执行日志输出结果
  • 可用于单元测试、功能测试、集成测试、系统测试、等常规测试,并能高效完成性能测试、安全等非常规测试

参考: 测试小故事86:自动化测试

4. 测试自动化

  • 自动化(Automation)是指机器设备、系统或过程(生产、管理过程)在没有人或较少人的直接参与下,按照人的要求,经过自动检测、信息处理、分析判断、操纵控制,实现预期的目标的过程 -- 百度百科
  • 测试自动化关注测试过程、执行和结果,将测试过程的管理、控制实现系统化管理,减少人工参与,提高测试过程管理质量和测试执行质量
  • 测试自动化涵盖了测试资产管理(测试需求、测试用例、系统缺陷)、测试过程监控(数据的收集、整理、分析)、及自动化测试

参考:测试小故事51:测试自动化和自动化测试

5. 手工测试 与 自动化测试

  • 软件测试执行的不同形式
  • 基于软件系统需求分析、设计和测试用例
  • 以发现软件缺陷、提升软件质量为目的
  • 均可以完成软件系统功能测试和非功能性测试
  • 手工测试更擅长发挥人的主观能动性

    - 软件系统或其模块的功能验证、系统测试,系统运行未稳定状态下效果更明显
    - 临时或突发的测试任务执行,特定测试场景或业务验证
    - 图形界面GUI变动较频繁的用户场景测试验证
    - 可用性测试、易用性测试验证
    - 探索式Exploratory测试和随机Ad-Hoc测试
  • 自动化测试更擅长即定业务的回归验证及系统模拟

    - 软件系统或其模块的功能验证、系统测试,系统或其模块稳定状态下的回归验证效果明显、效率更高
    - 快速执行冒烟测试,验证系统测试可执行性
    - 稳定模块下的回归验证,业务主流程测试验证
    - 用户验收测试,系统发布验证,日常系统定期维护测试验证
    - 系统大数据量、多用户并行的性能验证;系统探测、扫描的安全验证
  • 优缺点

    手工测试
    - 手工测试依赖于测试人员的能力(分析、设计、执行)
    - 长期、稳定的系统回归测试,人力执行效率差、执行时间长、受执行时的人力状态影响大
    - 手工测试能充分发挥人的主动性、事先预判、逻辑推理和灵活性
    - 手工测试更能发现系统功能的、潜在的缺陷

    自动化测试
    - 自动化测试是人工设计并开发出来、按即定流程执行的程序,需要有一定的代码编程能力
    - 自动化测试在执行长期、稳定的系统回归测试时,更快速、更高效,节省时间;机器执行,不受人力影响
    - 为了保证自动化测试的有效性,需要根据系统变化(特别是GUI的自动化)对自动化代码进行维护(成本)
    - 自动化测试更容易发现系统变化前后的“变化”缺陷,机器没有想像力,不能发现系统功能、潜在的问题 -- AI能改进?

6. 手工测试 和 自动化测试 谁更强

  • 测试目的:在用户实际使用前发现和修复更多的系统缺陷,保证软件系统运行的稳定性
  • 手工测试发挥人的主观能动性更能发现系统存在的问题
  • 自动化测试按既定程序无差别执行,执行速度更快、执行效率更高
  • 手工测试 与自动化测试相辅相成,彼此促进、共同提升软件质量

* 测试金字塔模型,来自 百度百科
参考: 转载:自动化测试金字塔与反模式

7. 手工测试 与 自动化测试生存之道

  • 手工测试是软件测试基础,软件测试的分析、设计思路需要手工测试的实践经验
  • 软件测试需要自动化的加持,自动化测试需要手工测试逻辑思想的转换,测试人员需要代码和编程的能力
  • 软件需求的多变、发布版本的快速迭代,需要手工测试与自动化测试合理组织、分配、协调,共同提升测试效率和效果
  • 手工测试与自动化测试没有技术高低之分,区别在于是否能够在测试过程中不断学习和精进,殊途同归,不断主动挑战
  • 质量、质量、质量,如何提升软件质量,永远是手工测试和自动化测试首要考虑的问题,学习、融会、改进