本节书摘来自华章计算机《Web测试囧事》一书中的第1章,第1.2节,作者 黄勇 雷辉 徐潇 杨雪敏,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.2 索引值计算错误使资源缩略图显示和大图展现不一致
业务方希望在商品展示的页面,不仅能添加展示图片,还可以展示关于商品的视频(见图1-3)。
小蔡按照通常的步骤编写完测试用例,开始使用标准测试数据执行测试。小蔡首先发现点击右下角链接时,本应该显示第1张图片或者视频,但是打开的却是第2张图片或者视频。
小蔡觉得这可能是开发人员在处理图片和视频展示的数组时,使用的是自然数计数,从1开始作为第1个数据项,而非计算机程序数组中通常使用的把从0开始计数作为第一个数据项。当小蔡把这一问题上报之后,开发人员发现确实是这个原因,并进行了快速修正。
小蔡在开发人员新发布的包上又一次进行了测试,这次测试用例基本没有什么问题,她就开始在类真实环境中执行探索性测试,结果发现在某些商品页面进行图片和视频跳转时,出现图片或视频显示错误或者显示成空白的问题。
在老牛的协助下,小蔡发现了问题出现的两个规律:① 当从第n张图片切换到视频的时候,系统显示的并不是用户期待的第1个视频,而是第n个视频;②当商品的图片和视频数量不一致,从数量多的资源切换到另一个数量少的资源时,内容就会出现空白。
小蔡和老牛都觉得出现问题的原因比较明确了,是因为在图片和视频跳转时,打开资源的索引值并没有清零,而是保存着前一个元素的索引值。
为什么这个问题在测试环境中没有发现,而在类真实环境中才被发现?原来最初小蔡在测试环境中执行测试用例的时候,使用的是基本测试数据,图片和视频都只有两个,而且两张图片和两个视频的内容分别都是一样的,因此不会出现这个问题。
小蔡和老牛商量了下,决定为了避免遗漏这样的问题,需要丰富测试环境的测试数据,使得测试数据更像真实数据,这样测试结果才更为准确 。
同时他们认为这个问题在开发人员的开发过程中也是不应该引入的,因为这样的错误比较初级。于是小蔡和开发人员进行了沟通,发现引入该问题的根源在于开发人员的疏忽。由于图片的文件格式和视频的文件格式不同,所以开发人员使用了两个库来支持图片和视频的打开,但是两个库之间的跳转需要通过在两个库之间传递参数来实现,然而开发人员并没有仔细检查两个库之间所传递的参数,导致并不需要被传递的索引值也传递到另一个库中。
老牛带着小蔡和开发人员立下一个约定:在使用第三方库实现功能时,一定要把使用的函数方法中的所有参数都核对清楚。