软件测试技能-服务端测试篇

今天带大家了解下服务端测试,说到服务端测试,其测试内容包含了很多,接口API是最上层的展现形式,其他的还有服务、脚本、数据层、分布式、算法等。从编程语言来说服务端语言应用最多,主要应用的就有Java、C/C++、Go、Lua、PHP、Python以上几种。

接口测试不是简单的API调用请求和查看返回值测试,如果测试接口,我们至少还要了解接口的内部逻辑,比如一个稍微复杂的接口,其内部会调用很多接口和服务,拿到相应的数据返回,这样你就需要跟踪每一个被调用接口的处理逻辑和脚本,保证其逻辑正确和返回数据的准确性,只了解数据库是远远不够的,还要了解系统架构、数据来源和各链路的数据处理,这样才能更好的为后期自动化测试做准备。

常用测试工具:

Postman、Linux服务器、Nginx、Shell、Mock、数据库、开发工具、抓包分析工具、Git、Svn、Sublime Text、上述几种编程语言及对应的测试环境)。

从测试角度来看,服务端测试可从以下几点开展:

功能测试:

测试被测对象的接口,输入和输出(请求和响应)、内部接口逻辑调用的测试、数据有效性及各功能逻辑准确性。测试用例设计方法是通用的,这里不在介绍。

服务端的测试不能纯靠黑盒测试稍微深入或复杂的逻辑测后的业务代码,需进行code review,观察该功能的逻辑实现部分,并开展内部单元逻辑测试(举个简单例子,一个C接口的内部函数调用了TCP协议的服务,该服务后是另一套复杂的数据系统,这种情况测试人员须看其内部代码才会清楚后面具体都执行了什么,怎么调用的)、可结合详细设计文档、关键节点加Log日志进行检查,或者代码中Mock数据在进行一些内部逻辑单元的功能测试。

性能测试:

接口性能Jemeter、Loadrunner、Ab等工具、工具无法满足,需要结合自身业务开发压测脚本。

异常测试:

数据异常处理,可通过接口传参进行模拟(C/C++程序接口,如代码不严谨会经常出Core),另外Fuzzing工具可以了解下(随机构造测试输入,对被测软件进行大量测试来发现软件中的漏洞的一种模糊测试方法)。

数据测试:

Redis、Hive、Hdfs、Kafka、Memcahe、Sql数据库等。

算法测试:

了解算法模型、规则、对于该模型的数据效果开展测试,测试结果需符合算法规则预期。

自动化测试:

服务端自动化小文认为有两种:环境自动化、自动化测试(自动化测试一般都会和环境自动化、单元测试相结合使用)

环境:自动化环境搭建、持续集成(Jenkins等)

接口:基于自身业务开发的单元测试自动化(Junit、Python Unittest等)、第三方工具Test NG、Pytest、开源测试平台等。

单元测试:

单元测试注重内部代码逻辑的测试。

安全测试:同移动端篇

联调测试:

一般指后端各个环境、服务、模块间的联调测试,首先将所有测试环境链通,进行各模块间的联调测试,测试通过后,再和前端(Web、H5、客户端Android、iOS)联调测试、保证后端数据在前端正常展现。

以上,希望今天的内容,给你灵感和启发。码字不易,欢迎点击【关注】。

声明:上述观点为个人经验总结和观察,如有不对的地方请随时指正或留言交流。

作者:小文(一个即将从业10年的软件测试行业工作者)

你可能感兴趣的:(软件测试技能-服务端测试篇)