• 12
  • 12
分享
  • 测试工程师必学:测试人员如何深入了解项目——软件测试圈
  • 曼倩诙谐 2022-01-06 10:31:36 字数 2918 阅读 1783 收藏 12

  一、即便是测试,也要当优秀的那位

  测试作为项目最后一个环节,新的测试技术、手段、理念不断出现,但是保证项目质量的目标没有变。而深入到项目中,了解项目代码、了解项目设计对于一个优秀测试人员是必须具备的技能。

  下面分别从如下几个方面去介绍,测试人员,如何更为系统性的去深入了解一个项目。

  二、了解项目流程

  大部分项目,从需求确定到最后上线的大概流程:

1-1.jpg


  测试人员从需求评审阶段参与进来,在技术方案设计与评审时一定要参与,目的是要了解开发的设计实现思路,在过程中也可以找出思路的不足或漏洞。这阶段参与进去,能帮助测试人员更好地设计测试方案。(注意点是不要被开发的设计思路主导,这样会影响用例设计的思路)

  三、关注架构设计方案

  关注项目的架构设计,对测试人员有什么帮助?

  1、能够提前进行测试工作,更早发现缺陷

  这一点和上面建议在技术方案设计和评审时,测试人员也参与进去的目的类似。只不过在架构设计阶段,绝大部分测试人员是不具备“对架构设计评审发现问题”这一能力,但是参与进来了解,也可以逐步提升这方面的思维能力。

  2、能够帮助测试人员更全面、更有针对性地进行测试

  了解架构设计,能够让测试人员了解到项目各个服务之间的关系,业务交互,数据存储,数据流动等情况,从而能够让测试人员更有针对性地进行测试用例的设计。

  如果需要进行性能测试,甚至全链路压测,更需要对架构非常熟悉以及开发框架的熟悉。否则如果不清楚整个系统的架构设计,可能设计出的压测方案都有问题,更没办法对压测结果进行分析和问题定位。

  测试人员该如何了解一个项目的架构设计?

  1. 从系统架构图入手

  首先从系统架构图中,了解到有哪些服务,这些服务在每一层的分布情况;还有数据存储、缓存,不同层之间进行交互的协议。这样能帮助我们快速对项目架构有个大概的框架了解。

  2. 了解业务交互和数据流转

  接着可以通过阅读流程图、泳道图、时序图等,来帮助我们了解服务之间的业务交互关系,业务数据之间的流转。

  ps. 团队中如果没有这些,甚至开发人员没时间写,那么测试人员可以通过询问开发来自己完成这些。

  技术架构图示例:

1-2.jpg


图片来源百度

  多业务架构图示例:

1-3.jpg


  四、关注数据库设计

  从哪些方面去熟悉项目的数据库情况:

  了解不同数据分别存储在哪些数据库中。因为一些数据量大的项目,往往会根据业务实际情况,来把不同类型的数据存储到不同的数据库中。比如说经常查询的,会存在es/redis/clickhouse等数据库;需要持久保留的数据,会存在mysql之类,等情况。

  了解不同服务的数据存在哪个库中,然后每个表都存哪些内容,以及其中字段的意思和关联。(可以通过查询数据库设计文档来了解)

  了解表之间的关联性,比如说外键。

  了解数据库设计时的一些测试点。(数据库设计规则)

  例如:

  字段类型是否符合实际情况。比如说一些数据量大的整数类型设置成了int,其实使用bigint更加合理。

  字段长度设置是否合理。比如说一些字段在需求设计、前端、接口都进行了50长度限制,但是在数据库中却设计了1000的长度,明显不合理。

  字段是否为空的设置是否和实际情况相符。比如说需求和接口设计中,字段A可以为空,但是表设计中却设置了NOT NULL,这样接口传递空数据到数据库时,会报错。

  是否需要进行分库分表。在数据量激增时,是否需要进行分库分表修改。

  是否存在冗余字段。一些用不上的字段是否需要进行删除。

  表之间的关联是否合理。

  读写分离设计是否合理。

  ...

  五、关注接口文档

  1. 大部分时候,哪些情况需要去关注接口文档

  了解项目具体实现时:

  · 接口测试

  · 性能测试

  2. 在阅读接口文档时,需要注意以下几个方面(如果没有,则可以推动改进)

  字段定义:字段类型、长度、是否是必填字段等字段属性的定义。

  字段说明:每个字段是否都有字段的作用说明解释,并且无歧义。

  请求示例:是否有正确和异常的请求内容例子。

  请求规范:入参风格要统一,比如说日期格式如果是yyyy-mm-dd,那么所有接口都要这样。

  响应示例:是否有正确和异常的响应示例。

  响应规范:响应内容是否正确;响应值是否有固定的格式规范,通常响应结构要规范统一,并且失败情况要有字段说明失败原因,以及统一的一套自定义状态码来对应成功或各种失败情况。

  六、关注服务的部署情况

  如果项目有多个服务,并且是进行分布式部署时,也需要了解这方面的情况。因为在进行性能测试在监控和排查问题时,需要知道这些情况。

  七、阅读开发代码

  1.阅读代码对测试人员的好处

  · 结合代码和需求,可以更加熟悉系统和业务

  · 可以发现测试用例的遗漏点

  · 结合代码和需求,可以发现一些增量的bug(意思是本次的迭代会影响到哪些其它的功能模块)

  2.如何review开发代码?

  · 和开发了解基本信息

  首先和开发请教了解下代码的结构,比如哪些包对应哪些服务的代码,哪些是业务逻辑实现代码,哪些是和数据库进行交互的,哪些是配置文件,哪些是接口定义文件等,这些有助于我们快速了解代码结构。

  · 针对增量代码进行review

  大部分情况是没有足够的时间阅读所有的代码。那么我们可以选择增量代码进行Review。检查是否存在功能遗漏,逻辑错误,是否对原有的功能造成了影响之类。

  · 带着需求任务去看代码

  意思就是首先弄清楚本次迭代有哪些需求,熟悉了需求,编写了测试用例后,带着这些功能的实现是否存在问题的心理,去看开发代码。主要关注业务逻辑的实现以及接口参数定义的部分。不要关注配置以及其他和业务逻辑无关的地方,避免陷入到和业务逻辑实现无关的细节中。

  · review知识沉淀

  在review完成后,需要对发现的问题进行整理归类。这样既可以在后面的测试过程中做为测试用例的补充,也可以形成自己的一套知识沉淀。在review完成后,可以尝试着去画出服务的流程图、项目架构图,可以帮助自己对项目理解更深入。

  八、熟悉项目配置文件

  在review配置文件内容时,应该关注的点:

  不同环境的配置文件需要区分开,以防止将测试环境的配置同步到生产环境上;

  一些功能可以进行配置话,比如说灰度测试的流量限流,降级服务的开关,外部依赖的开关(比如说供应商的上下线);

  业务参数的配置,一些业务参数可能需要灵活配置,比如说活动的规则、抽奖的概率、临时的消息通知等;

  中间件的配置,比如说tomcat、redis、mq、mysql之类的配置,这些对环境、性能、任务调度等有关;

  数据库需要注意时区的问题,如果es需注意时间字段存储的值类型和查询语句对应的时间字段值的类型需一致。

  九、总结

  上面的这些注意事项,在实际工作中很少能一次性全部做得到的,这篇文章主要是希望能够起到个指导方向的作用,抛砖引玉,如果有写的不对的地方,或有不同的见解,欢迎指出来一起讨论。



作者:狂师   

来源:http://www.51testing.com/html/22/n-4477922.html



  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 软件质量保障是软件开发生命周期的重要组成之一,以确保产品和服务达到预期,以满足用户和市场的要求。为了达到所需的质量水平,测试报告分析成为该过程中不可或缺的重要组成部分。让我们详细了解测试报告、执行过程中的挑战、理想测试分析报告的组成部分等话题。什么是测试报告软件测试报告是团队所有测试活动、测试目标和测试项目结果的展示。测试报告有助于评估测试的执行情况,确定测试报告中未通过的测试项背后的原因。报告中的数据对业务至关重要。可以在整个测试过程中评估测试内容,测试产品或功能的质量,并帮助做出是否发布新版软件的决策。在测试报告分析的帮助下,测试人员、开发人员、数据分析师、产品经理等相关者了解整体测试和测...
            0 0 447
            分享
          • 在我看来接口测试相对其他类型的测试是比较简单的。对于最常见的HTTP接口,只需要知道接口的 URL、方法、参数类型、返回值 ... 就可以对接口进行测试了。apifox如果你是入门级选手,那么apifox应该很适合你,它是一款类似postman的接口测试工具。而且功能也很强大,定位 Postman + Swagger + Mock + JMeter。你值得尝试。为什么不postman? 嗯,你说的都对!HttpRunner如果你不想用工具,也不想写代码。想更加简单高效的编写接口测试用例,那么HttpRunner2.x 就很适合你了。{     "...
            0 0 1156
            分享
          •   为了回馈广大用户对51Testing软件测试网的支持,我们准备了一份价值398元的测试实战课程礼包,只需填写下方链接的行业调查问卷即可免费领取~ 链接:http://vote.51testing.com/   随着公司微服务体系服务越来越多,业务增长越来越迅速,版本迭代越来越快,而且对系统的可用性要求越来越高,传统的手工发布系统的方式已经完全无法满足日常运维的需求了,自动化构建发布的需求越来越强烈,但是自动化发布有个基础的环境,自动化测试,鉴于团队规模不大,测试人员的能力参差不齐,自动化测试我们选择了以开发测试一起搭建的方式,通过轻量级的工具postman进行自动化测试。  测试文件共享 ...
            1 1 1573
            分享
          • API安全概述       Application Programma Interface (API)由一组定义和协议组合而成,可用于构建和企业集成应用软件。随着数字化转型的深入,API产品的价值日益增高,特别是与微服务、DevOps等技术的融合,使得API成为企业战略发展加速的利器,但随之而来的安全问题也不容忽视。常见的API安全漏洞有以下五种:首先是API应该与应用系统一样在设计之初就考虑安全的因素,比如防篡改(签名)、防重放(时间戳)、防止敏感信息泄露(传输加密与数据最小化)等。API规范性带来的一个问题就是API很容易被发现,比如在URL中出现的...
            11 12 2406
            分享
          • 一、为什么抓包1、从功能测试角度通过抓包查看隐藏字段Web 表单中会有很多隐藏的字段,这些隐藏字段一般都有一些特殊的用途,比如收集用户的数据,预防 CRSF 攻击,防网络爬虫,以及一些其他用途。这些隐藏字段在界面上都看不到,如果想检测这些字段,就必须要使用抓包工具。2、通过抓包工具了解协议内容方便开展接口和性能测试性能测试方面,性能测试其实就是大量模拟用户的请求,所以我们必须要知道请求中的协议内容和特点,才能更好的模拟用户请求,分析协议就需要用到抓包工具;接口测试方面,在接口测试时,虽然我们尽量要求有完善的接口文档。但很多时候接口文档不可能覆盖所有的情况,或者因为文档滞后,在接口测试过程中,还...
            1 1 2156
            分享
      • 51testing软件测试圈微信