首页 > 其他分享 >系统测试的实践与思考

系统测试的实践与思考

时间:2023-12-05 11:00:27浏览次数:26  
标签:上线 思考 验证 是否 系统 实践 测试阶段 测试

这是测试活动过程详解系列的最后一篇文章。之前的想法,是对测试过程各重要环节进行拆解,然后介绍这个环节重点要做的事情,为什么要做这些事,以及注意事项。

前面几篇文章分别介绍了单元测试、集成测试、回归测试阶段要解决的问题和实践的注意事项,这篇文章,分享一些我对于系统测试的实践经验和思考。

 

系统测试要解决什么问题

以微服务架构下的电商业务为例,我们的被测系统大致是这样的:

在单元测试阶段,我们通过验证代码中的语句、分支和条件,确保研发实现的系统可以顺利通过冒烟,满足集成测试阶段的可测性。

在集成测试阶段,我们采用接口测试的手段,尽可能验证单个模块或服务本身的数据处理逻辑和功能实现符合预期。到了系统测试阶段,我们要解决什么问题呢?

从上图可以看到,我们的测试对象,其实是一个很复杂的系统。为了保障最终的交付质量,我们要考虑很多因素,比如:

  • 网关层:负载是否均衡、验签、限流、黑白名单等功能是否正常;
  • 业务层:功能实现和页面跳转否和设计一致、业务逻辑是否正确、页面是否美观;
  • 服务层:数据交互和逻辑处理是否正常,对异常情况的处理是否优雅以及各组件的稳定性;
  • 数据库:数据读写是否正常,表字段类型设计是否正确,是否创建了索引,分库分表的落库逻辑是否正确;

总结来说,系统测试阶段的主要目的是:验证整个系统范围内各应用和组件之间的调用依赖关系以及各种场景下的逻辑处理功能实现正确与否

当然,这里仍然要说明几点前置条件:整个系统范围内一般默认是本次迭代或者某个发布节点要上线的所有需求对应的代码;实现是否正确主要包括两点:是否符合需求预期设计+是否满足交付质量标准。

 

系统测试的实践注意事项

系统测试阶段是软件产品从需求到上线过程中的重要环节,除了验证系统的功能、性能、安全以及可靠性之外,还要考虑用户使用体验和后续的维护便捷性。

在系统测试阶段,我个人的认为需要重点关注如下几项:

  • 进度管理:该阶段测试活动已经大范围展开,要重点关注整体进度,抓大放小(如有延期风险,在交付的完整性和质量之间做平衡)。
  • 测试效率:大范围的测试活动开展,最好是借助工具来提高测试过程效率(工具的建设是一个长期过程,切忌蒙头憋大招,也不要一味追求美观时尚,能运行起来提升效率解决问题就行)。
  • 边界划分:系统是由很多个不同模块组成,且实际工作中由多个不同团队负责,彼此职责范围内的边界划分和交互部分的约定至关重要(AB模块各自由谁负责,交互依赖的上下游内容、标准以及如何配合)。
  • 质量复盘:这里并不仅仅是测试出一份系统测试报告就完事,而应该和产品以及研发团队一起在这个阶段评估本次迭代部分的质量(即需求逻辑、编码质量、各自是否按时交付、影响质量和进度的风险因素)。可能很多人认为这个应该是上线后再进行的版本复盘,但上线后的质量已成定局,建议在系统测试阶段即将完成时就开展复盘,以便于回归测试和验收测试进行改进验证。
  • 质量监控:这点是很多团队容易忽视的一点,即系统上线后才开始慢慢补上对应的各种业务监控、基础指标监控,但在上线和补上监控的这段时间内,也是线上故障的频发区。更好的方法是,在系统测试阶段,就由测试同学推动相关的研发或者运维同学,对本次要线上发布的部分相关监控提前构建好并且验证通过,随着需求代码一起发布。这样即使上线后出现问题,也能及时发现和修复。

以上注意事项仅供参考,在具体的工作场景中,应根据团队具体情况来合理制定方案并落地。

 

标签:上线,思考,验证,是否,系统,实践,测试阶段,测试
From: https://www.cnblogs.com/imyalost/p/17876748.html

相关文章

  • phpstudyV8安装thinkcmf提示rewrite伪静态不支持解决方法 php项目中需要使用伪静态打
    使用phpstudyV8安装thinkcmf提示rewrite伪静态不支持,解决方法php项目中需要使用伪静态打开网页进行本地测试时,也可使用该方法解决 找了很多方法都无效,这个方法管用,记录一下。步骤一:服务器部署好的程序需要在本地再做二开时在phpstudy里总是打不开后台,这时候一般都是伪静态的......
  • 软件测试探秘:从各类软件测试入门,领略测试的奥秘
    前言在软件开发的世界中,软件测试是不可或缺的一部分。它是确保软件质量、功能完整性和用户满意度的关键环节。本文小编将为大家介绍各类软件测试的奥秘,并提供入门级的指导和见解。本文内容概要:软件测试是什么?黑盒测试vs白盒测试自动化测试vs手工测试功能测试方法论非功能......
  • Python编程:从入门到实践--Chapter16
    在16章的json数据测试如下代码时报错:[Errno22]Invalidargument:'eq_data\readable_eq_data.json'#将数据作为字符串读取并转换为python对象path=Path('eq_data\eq_data_1_day_m1.json')contents=path.read_text()all_eq_data=json.loads(contents)#将数据文件转换为......
  • 单元测试:Junit框架、反射、注解、动态代理
    单元测试:Junit框架单元测试单元测试就是针对最小的功能单元编写测试代码,Java程序最小的功能单元是方法,因此,单元测试就是针对Java方法的测试,进而检查方法的正确性目前测试方法的方式的和存在的问题方式:只有一个main方法,如果一个方法的测试失败了,其他方法测试会受到影响问题:①无法得......
  • MySQL系列之读写分离架构——Atlas介绍、安装配置、Atlas功能测试、生产用户要求、Atl
    文章目录1.Atlas介绍2.安装配置3.Atlas功能测试4.生产用户要求5.Atlas基本管理6.自动分表7.关于读写分离建议1.Atlas介绍Atlas是由Qihoo360,Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它是在mysql-proxy0.8.2版本的基础上,对其......
  • Nginx缓存入门实战(01)-深入实践ETag机制
    1RFC7232指纹1.1响应头部ETag=entity-tag,仅对同一个URL下的比较有意义。为啥需要这玩意?因为HTTP协议本质就是个KV,K=URL,V=body。因为URL并没有变,但我的V是会变的!所以需要对V生成一个摘要!1.2请求头部If-Match="*"/1#entity-tag。用于并发修改资源(POST/PUT/......
  • 优维产品最佳实践第17期:善用控制台
    「背景」遇到页面报错时,是不是感到困扰,不知如何解决?页面响应缓慢时,是否感到迷茫,不清楚从何入手排查?面对主机高负载时,是不是觉得确认异常根因很有挑战?本期最佳实践为您讲解如何通过控制台排查定位:页面报错时,获取traceId确认报错组件;通过全局监控确认组件状态,查看组件日志分析原因......
  • 内网测试-持久化
    隐藏文件•创建系统隐藏文件–attrib+s+a+r+hfilename/attrib+s+hfilename•利用NTFSADS(Alternate Data Streams)创建隐藏文件•利用Windows保留字–aux|prn|con|nul|com1|com2|com3|com4|com5|com6|com7|com8|com9|lpt1|lpt2|lpt3|lpt4|lpt5|lpt......
  • 软件测试/人工智能|Python 数据类型解析:探索编程世界的多样性
    数据类型是编程中不可或缺的基本概念。在Python中,有多种数据类型,每种都有其独特的特点和用途。本文将带你深入了解常见的Python数据类型及其实际应用。引言在编程中,数据类型是对数据进行分类和组织的方式。Python中有多种数据类型,每种类型都有其自身的特性和功能。了解这......
  • 软件测试/人工智能|Python 数据类型转换解析:理解数据之间的灵活转换
    引言数据类型转换是指将一种数据类型的值转换为另一种数据类型的过程。在编程中,我们经常需要处理不同类型的数据,正确地进行类型转换是编写健壮程序的关键。常见的数据类型转换整数和浮点数转换为字符串#示例代码num_int=10num_float=3.14str_int=str(num_int)str......