使用微服务架构做测试服务开发

背景

产品测试部门发展到一定阶段,都会尝试进行内部测试平台的开发,真正从使用jenkins、jira、sonar等开源或市场工具转向开发和自身产品强相关的平台、SDK等工具,以实现测试效率的提升。

  • 产品功能——对照产品文档
  • 交互逻辑——交互图
  • 用户体验
  • 接口测试
  • 性能测试
  • 安全测试
  • 并发测试
  • 逻辑漏洞发现
  • 兼容性测试

<1>一般测试人员都能进行前两种测试。
<2>第三种依赖于经验但不限于经验。
<3>第四种行业内使用最普遍。
<4>第五第六种是专项测试。
<5>第七到九是个人能力的体现。

如果前四种做不好,那作为测试肯定不合格。

接口测试、并发测试、逻辑漏洞发现是真正检验一个测试水平的表现.

难点

接口的设计是否合理

微服务的每个接口都是要按照严格的标准进行开发的,不管是容错性、功能健全性,还是实用性。

一般的测试只会使用一些如Postman的工具进行接口调用,更深一点,使用测试框架进行E2E、集成测试以及接口参数测试。

这里想表达的是,测试人员要进行接口设计合格性审查,接口设计的合不合理、每个参数的使用是否方便、含义是否表达清楚,是否可扩展、是否兼容前期版本等,这些也需要测试。做过开发的测试会发现这些接口设计没有做好,会对整个服务的使用以及后面的测试环节带来影响。

并发和逻辑漏洞

这一点在金融类功能中比较常见。因为涉及到钱,所以企业对这一块非常重视。

哪些接口会出现并发,接口在什么情况下会出现并发,并发场景是什么、什么情况下的并发可能会导致问题。这些偏技术型的考虑以及实现,没有做过开发的测试很难做到。

逻辑漏洞就更难了。比如:订单的状态改变逻辑是否有漏洞,支付中的延迟会不会造成订单状态异常,服务端延迟会不会造成重复支付等。构想场景较困难,再找到匹配的工具和设计测试策略甚至架构就更难了。这里甚至需要自己开发服务进行测试。

兼容性测试

测试浏览器兼容性、手机系统版本兼容性、服务器版本兼容性等方面。

测试需要对浏览器的内核使用、版本更新内容,每款手机的系统特性、每个版本系统的更新内容,服务器每个版本的差异非常熟悉。

有些测试会说,不熟悉也可以进行测试。结果就是,每个版本每种型号都测试,测试工作量非常大。

直接去手动或者自动化测试只是一种方式。

不管是手动测试,还是写测试例进行自动化,亦或各种使用各种工具进行测试,都只是一种方式,目的都是验证需求的完备性。

以前就出现过,我根据已有测试和已知情形,使用逻辑证明了该服务的完备性。
这或许也是一种测试方式。

写在最后

最近一年一直在推测试开发向 面向测试的开发 靠近,而非原来的 了解开发知识的测试

当技术发展越来越快,系统越来越复杂的时候,已经很难使用手动测试加一两个工具进行测试工作,不进行开发的测试,如何去保证整个系统的完备?

你可能感兴趣的:(微服务,架构,microservices)