1、OA系统概述与测试策略

大家好,我是这次课程的主讲。在测试圈摸爬滚打了十几年,OA系统算是我接触最多的业务系统之一。说实话,很多人觉得OA测试就是点点按钮、看看流程通不通,其实远没那么简单。

今天这一章,我们先聊聊OA系统到底长什么样,自动化测试能帮我们解决什么问题,以及——怎么制定一套靠谱的测试策略。

OA系统的核心模块

OA系统,说白了就是企业内部的办公平台。你想想看,一个公司几百上千号人,审批、考勤、公告、会议……这些事总不能全靠纸质单据和口头传达吧?

我参与过的OA项目,核心模块通常包括这几块:

  • 流程审批模块:请假、报销、合同审批。这是最核心的模块,也是测试的重灾区。
  • 公文管理模块:收发文、签报、公告。权限和状态流转特别复杂。
  • 行政办公模块:会议室预订、车辆管理、物资申领。并发冲突是常见坑。
  • 个人办公模块:待办事项、日程、通讯录。看似简单,但集成点多。
  • 系统管理模块:用户、角色、菜单、日志。这是所有模块的基础。

重点提醒:流程审批模块的测试,一定要关注「分支条件」和「会签/或签」逻辑。我在项目中遇到过,一个三层的审批流程,因为条件判断写错了,导致所有报销单都直接跳到了CEO那里……

自动化测试的价值与挑战

为什么要做自动化?这个问题我经常被问到。其实答案很直接:

  • 回归测试效率:OA系统迭代频繁,每次发版手动跑一遍核心流程,半天就没了。
  • 数据准确性验证:审批状态、表单数据、日志记录,这些靠人眼检查容易漏。
  • 并发场景覆盖:比如多人同时提交审批、会议室秒杀,手工很难模拟。
  • 持续集成支持:代码提交后自动触发测试,快速反馈问题。

但挑战也不少。我个人习惯把挑战分成三类:

挑战类型 具体表现 我的应对思路
UI频繁变动 按钮位置、表单字段经常调整 多用数据驱动,少写死定位器
流程状态复杂 一个审批单可能有十几种状态 状态机建模,覆盖核心路径
环境依赖多 依赖LDAP、邮件、短信等外部服务 接口Mock + 测试容器

避坑指南:我曾经在一个OA项目里,自动化脚本跑了一周都稳定通过,结果上线当天全挂了。原因是什么?测试环境的日期是静态的,而生产环境的日期是动态的——审批超时自动驳回的逻辑,在测试环境根本没触发。嗯,从那以后,我所有时间相关的用例都会做「时间旅行」测试。

测试策略制定

测试策略这东西,听起来很虚,但落地起来其实就几个问题:测什么、怎么测、什么时候测、谁来测。

我一般会从这几个维度来制定OA系统的测试策略:

1. 分层测试模型

别一上来就想着UI自动化。我的经验是:

  • 接口层:覆盖流程流转、数据增删改查。占比60%左右。
  • UI层:覆盖关键用户操作路径。占比20%左右。
  • 集成层:覆盖跨模块、跨系统交互。占比15%左右。
  • 探索性测试:人工补漏。占比5%左右。

2. 优先级划分

你想想看,OA系统那么多功能,不可能全自动化。我建议按这个顺序来:

  1. P0:登录、待办列表、审批通过/驳回。这些挂了,用户直接没法干活。
  2. P1:表单提交、流程撤回、抄送。影响面大,但还有临时方案。
  3. P2:历史查询、统计报表、个性化设置。可以容忍短期故障。

3. 数据策略

OA系统的数据依赖特别重。我个人习惯的做法是:

  • 用API预置测试数据,别靠UI一步步创建
  • 每个用例独立准备数据,用完清理
  • 敏感数据脱敏,别把真实员工信息写进脚本

小技巧:我在项目中常用「数据工厂」模式。写一个工具类,传入参数就能生成一个完整的审批单、一个用户、一个部门。这样用例写起来特别清爽,维护成本也低。

4. 持续集成策略

自动化测试不接入CI,价值直接打五折。我建议这样安排:

  • 提交阶段:跑接口层的冒烟用例,5分钟内出结果
  • 每日构建:跑全量接口用例 + 核心UI用例,30分钟内出结果
  • 发版前:跑全量回归,包括集成测试,2小时内出结果

嗯,这里要注意一点:CI流水线里一定要加「失败重试」机制。OA系统的测试经常因为环境抖动挂掉,重试一次能过滤掉大部分假阳性。

5. 风险应对

最后说说风险。我见过太多团队,自动化测试做了一半就放弃了。原因无非是:

  • UI改版太频繁,脚本维护成本高
  • 测试数据不稳定,跑一次挂一次
  • 团队没有自动化经验,遇到问题卡住

我的建议是:从小处着手,先搞定一个核心流程,跑通了再扩展。别想着一步到位,那只会让你陷入「自动化陷阱」。

总结一下:OA系统的自动化测试,核心在于流程的稳定性和数据的可控性。策略上,接口优先、UI辅助、数据独立、CI集成。记住,自动化不是目的,而是手段。我们的目标是——让测试更高效,让发版更安心。

下一章,我们会具体聊聊环境搭建和第一个自动化用例怎么写。到时候我会分享一些我踩过的坑,保证让你少走弯路。