当前位置: 首页 > news >正文

探讨系统测试的最佳实践与思维模式!

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

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

系统测试要解决什么问题

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

在单元测试阶段,我们通过验证代码中的语句、分支和条件,确保研发实现的系统可以顺利通过冒烟,满足集成测试阶段的可测性。在集成测试阶段,我们采用接口测试的手段,尽可能验证单个模块或服务本身的数据处理逻辑和功能实现符合预期。到了系统测试阶段,我们要解决什么问题呢?

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

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

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

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

 
  1. 现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。

  2. 如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受

  3. 可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛

  4. 分享他们的经验,还会分享很多直播讲座和技术沙龙

  5. 可以免费学习!划重点!开源的!!!

  6. qq群号:455787643【暗号:csdn999】

系统测试的实践注意事项

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

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

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

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

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
 

在这里插入图片描述

相关文章:

  • Java8 CompletableFuture异步编程-进阶篇
  • 300分钟吃透分布式缓存-24讲:Redis崩溃后,如何进行数据恢复的?
  • Django学习笔记
  • ULTRAL SCALE FPGA TRANSCEIVER速率
  • python使用multiprocessing
  • Spring学习 基础(三)MVC
  • 2024/3/10周报
  • 如何清除keep-alive缓存
  • mongodb的备份与恢复
  • C#与欧姆龙PLC实现CIP通讯
  • Draco点云压缩测试
  • scikit-learn保姆级入门教程
  • Qt 定时器事件
  • Python中,括号内部的for循环(列表推导式)
  • Kubernetes 安全秘籍:5 个你必须知道的知识点
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • Js基础知识(一) - 变量
  • Material Design
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • windows-nginx-https-本地配置
  • windows下mongoDB的环境配置
  • Xmanager 远程桌面 CentOS 7
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 回顾 Swift 多平台移植进度 #2
  • 机器学习中为什么要做归一化normalization
  • 基于HAProxy的高性能缓存服务器nuster
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 前端性能优化——回流与重绘
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 微信小程序实战练习(仿五洲到家微信版)
  • 我看到的前端
  • 一起参Ember.js讨论、问答社区。
  • 原生 js 实现移动端 Touch 滑动反弹
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​比特币大跌的 2 个原因
  • ​虚拟化系列介绍(十)
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #1014 : Trie树
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (1) caustics\
  • (145)光线追踪距离场柔和阴影
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (二)斐波那契Fabonacci函数
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (规划)24届春招和25届暑假实习路线准备规划
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (论文阅读30/100)Convolutional Pose Machines
  • (三十五)大数据实战——Superset可视化平台搭建
  • (学习日记)2024.02.29:UCOSIII第二节
  • (转)IOS中获取各种文件的目录路径的方法