针对功能测试,我们有两种不同的测试方法:
1.
基于用户层面的黑盒功能测试
a)
根据产品提出的需求文档,划分功能,拆分需求点,根据需求点,进行对应测试用例的编写;
b)
在这个过程中,基本上忽略了客户端与服务器端或前台页面与后台逻辑是如何进行交互的,完全通过客户端或前端页面的行为进行功能测试。
2.
基于代码逻辑和服务器配置的白盒测试
a)
服务器端配置的正确性与合理性
i.
服务器是否有缓存机制;
ii.
服务器对连接数是否有限制;
iii.
服务器的负载均衡是否合理;
iv.
服务器连接的是否有超时设置;
v.
各种网络请求是否使用的是内网IP。
b)
接口测试
我们知道一般情况下客户端与服务器端的数据交互,均是通过http请求完成的。而服务器端通过web服务器将接收到的请求进行处理。这些处理主要围绕着,对数据的存储、运算、转发等操作,并将操作之后的结果反馈给客户端。所以接口功能的正确与否,会直接反映服务器端功能的正确与否。那么,这对接口我们是如何进行测试的呢?
i.
根据该接口的功能,评估该接口定义的合理性与安全性,例如:
1.
客户端发送的网络请求是否需要带有时间戳;
2.
客户端发送的网络请求是否需要有固定的参数,比如客户端发送的请求中需要带有版本号等信息;
3.
客户端发送的数据是否需要进行加密;
4.
服务器端是否有针对请求发送来源的校验;
5.
服务器端给客户端返回的数据及状态码是否合理。
ii.
接口的测试方法
通过编写测试脚本,针对接口进行测试,步骤一般是这样的:
1.
根据接口定义的参数,确认传输的参数都有哪些,可能的正常取值和异常取值;
2.
通过脚本模拟客户端发送网络请求,对接口进行单独测试,并对服务端返回的结果数据进行自动化校验;
3.
通过脚本构造用户的一系列操作,用以验证系统功能的可用性。
c)
代码功能逻辑测试
i.
对服务器端的代码做静态代码走查,主要关注以下内容:
1.
定义的变量是否都被初始化;
2.
服务器是否有针对客户端发送的数据进行异常校验;
3.
对数据库的操作是否有未释放的情况;
4. 服务器端的判断逻辑是否存在功能隐患;
5.
连接的数据库环境是否正确;
6.
对数据库的操作是否有关闭操作。
ii.
通过编写单元测试用例进行验证