前言
在我们公司团队中,一款软件产品的生命周期会经历用户需求→设计→软件需求(需求评审)→软件设计(设计评审)→编码→测试→上线→运维或废弃下线。这意味着测试阶段一般是软件开发后才开始介入的。但实际上,作为测试人员,我们会在产品需求提出时候就参与进来评审,以及后期产品上线后仍会进行相关测试工作。这无形中,我们贯彻了一种软件开发理念,也就是今天要聊的测试左移和测试右移。
测试左移
介绍:测试左移是在测试阶段到来之前,尽可能的抓紧开发前(需求分析)和开发中的时间做测试,提前发现问题,防微杜渐,避免积重难返。
一、价值
-
早期发现和解决问题
在需求阶段发现的一个功能误解问题,如果能及时纠正,只需要修改需求文档和相关的设计文档,而如果等到系统测试阶段才发现,可能需要修改大量的代码,甚至可能影响到整个系统的架构。 -
减少后期测试成本和时间
如果在单元测试阶段已经充分验证了各个函数和模块的正确性,在集成测试和系统测试阶段就可以更加专注于系统级别的功能和性能测试,减少了因底层代码问题而导致的测试反复。 -
提高软件质量
通过在早期阶段进行各种测试活动,能够从多个角度对软件进行审视,包括需求质量、架构质量和代码质量等,从而全面提升软件的质量。
二、落地事项
- 需求用例评审和风险评估
- 持续集成和持续交付
- 制定测试策略和计划
- 自动化测试(单元测试、接口测试)
三、落地方法
-
需求阶段:
- 分析需求的可行性
- 评估功能结果的正确性
- 需求落地性评估
-
设计阶段:
- 确认底层功能的期望值
- 提出有效的调优建议
- 确认开发周期,测试介入时机,以此评估出测试周期
- 功能可测性的确认
-
编程阶段:
- 前置完成测试用例自动化脚本的编写
- 拆解更细粒度的测试对象:微服务测试
- 开发人员在提测前进行自测
- 制定提测门禁,满足一定要求,才能进入测试阶段
测试右移
介绍:测试右移是产品上线了之后也可以进行一些测试活动。当然在生产环境直接做测试是不推荐的,但是我们可以在生产环境做监控,监控线上性能和可用率,一旦线上发生任何问题,尽快反应,提前反应,给用户良好的体验。
一、价值
-
持续质量保障
通过对生产环境的持续监控和线上测试,可以及时发现和解决问题,避免问题积累导致严重的系统故障。例如,通过实时性能监控,可以在用户体验受到影响之前发现性能瓶颈并进行优化。 -
用户体验优化
基于用户行为监测和 A/B 测试等方法,可以更好地了解用户需求和行为,从而优化软件的功能和用户体验。例如,根据用户的反馈和行为数据,对界面布局进行调整。 -
风险防范
通过模拟网络故障,发现系统在网络中断时的恢复能力不足,从而及时进行改进,降低因网络问题导致的系统故障风险。
二、落地事项
-
灰度发布:新版本线上测试;
-
监控:合理的性能监测、数据监控和预警机制;
-
用户反馈:线上问题处理、跟踪机制。
三、落地方法
-
线上灰度发布
灰度发布是指将新版本的软件部署到生产环境的一部分服务器上,让部分用户尝试新功能,从而收集反馈并评估风险。灰度发布可以帮助团队发现可能在测试环境中无法发现的问题,降低全面发布的风险。
-
生产环境监控
-
持续监测软件在生产环境中的性能指标,如响应时间、吞吐量、资源利用率等。
-
部署实时监控和日志分析工具,以收集关于软件性能、可用性和稳定性的数据。
-
设置自动化回归测试,确保在发布新功能或修复缺陷后,软件的核心功能仍然能够正常工作。
- 用户反馈
- 测试参与到线上用户反馈的问题中去,帮助复现和定位各类线上用户反馈的问题。
- 鼓励用户提供关于软件的反馈,例如通过设置用户反馈频道、调查问卷或在线社区。
- 闭环的线上问题反馈-检查-解决-更新流程
评论区