在开始今天的测试项目之前,我们先来了解一下Web应用程序!

应用程序有两种模式,C/S和B/S。C/S模式,即Client/Server(客户端/服务端)模式,这类程序可独立运行。B/S模式,即Browser/Server(浏览器/服务端)模式,这类程序需借助浏览器来运行。

打开网易新闻 查看精彩图片

Web应用程序一般是B/S模式,一个Web应用程序是由完成特定任务的各种Web组件(web components)构成的并通过Web将服务展示给外界。在实际应用中,Web应用程序是由多个Servlet、JSP页面、HTML文件以及图像文件等组成。

最近在参加的一个项目,主要是web相关的产品,经常出现开发更完包之后,验证一些功能出现异常,但是一到别人电脑上又不复现,每次都让清理浏览器缓存。测试的时候可以这么清,到了客户那,客户愿意一直清吗?故尝试了解背后原因。

现象:怎么刷新都不行,必须清理浏览器才能查看提交的数据。

1.分析过程

1)问题发现后,按照刚才的操作仍然可以复现,有必现步骤的

2)观察日志打印,——这一步暂时因为某些原因没有做

3)删除配置后,发现数据库中的数据也成功删除了,但是重新添加时,仍存在校验提示配置已存在。——这一步也没做

4)数据库操作没有问题,于是合理怀疑页面的配置校验读取了缓存,而没有实时的读取数据库信息。

5)清除浏览器缓存,重启浏览器,再次进行添加,添加成功,证实了4中的猜测。

问题原因

页面在新添加配置进行保存时会进行校验,但是校验读取了缓存。导致了删除配置再添加时会失败。

修改方式

最后的修改方式,是在每次请求中添加了时间戳。这样,就不会由于每次请求相同,会读取相同的缓存。既保障了缓存的优势(查询反馈速度快),又避免了缓存造成的读取错误的原因

打开网易新闻 查看精彩图片

2.问题定位的思路

1)大多数情况,问题的原因是后端代码没有处理好,所以问题出现时,首先应该去看日志;

2)确定问题在前端或者后端日志不能定位的情况下,需要配合使用F12工具或者抓包工具辅助定位;

3)问题特别难定位时,可以使用假设-预测-试验-分析的方法推测问题的原因。

3.测试建议

1)在测试用例设计时,对存在唯一校验的功能应反复操作。像这个缺陷中的类似场景,可以添删除后重新添加相同的数据验证校验时读取的是缓存还是实时读取的后台数据。

2)如果存在本系统嵌入了其他系统的页面的情况,在本系统中打开其他系统的页面时,需要考虑清除缓存后进行操作。

3)对列表记录进行修改或者编辑后,列表没有马上刷新,需要手动刷新页面才会更新列表。对于此类问题,可以建议开发在提交修改或者编辑的数据后,再发一个请求获取数据来及时刷新列表数据,提高用户体验。

4)与缓存或是cookie、session有关的一类问题,测试过程中不能简单的清缓存就可以了,遇到这类问题时除了要多考虑问题的影响还要再多深究原因。

打开网易新闻 查看精彩图片