qileilove

blog已经转移至github,大家请访问 http://qaseven.github.io/

一道面试题:百度首页的测试用例设计

 最近我被裁员,去面试的时候有这个题目:

  说一下对百度首页的测试用例设计。

  以下内容除说明百度出来的以外全部原创。。。抛砖引玉,仅供参考。

  ××××××××××××××××××××××××××××××××××

  先来一个一般上测试人员最喜欢最常用的测试方法,边界值法。

  文本框边界值,一般可以测试一下输入字符的数量。

  探索过程:

  1.不输入文字,直接按搜索----->页面刷新,无变化---->结论1

  2.复制粘贴一段很长的中文进入文本框----->被百度自动截取其中前100个字-->结论2

  3.按下搜索按钮,百度跳转到搜索结果页面,并提示“"××" 及其后面的字词均被忽略,因为百度的查询限制在38个汉字以内”,将被自动截取的内容复制粘贴到word,统计字数为38--->结论3

  5.复制粘贴一段很长的中文、英文、空格、符号混合文本进入文本框----->被百度自动截取其中一段内容。---->结果截取了100个字--->结论4

  6.复制粘贴38个汉字进入搜索文本框,并中间加入62个连续空格后按下搜索----->搜索结果里最后一个汉字被忽略,因为前面有37个汉字加1个合并后的空格长度已达38.并且在文本框里原来62个空格的位置现在显示一个空格--->结论5

  关于文本框字符数的结论:

  1.最小输入值为0个字;

  2.百度搜索文本框内可输入的最大字数是100个汉字;

  3.百度搜索文本框的输入值在点击搜索按钮后,会被截取前38个汉字,其后面的字词均被忽略;

  4.任意一个中文、英文、符号、空格在输入进文本框内第一次计数时均视同一个汉字;

  5.连续的空格在点击搜索按钮后进行搜索时会自动合并,并转化一个单独的空格。

  根据上述探索结果设计的文本框边界值测试用例(思路):

  1.输入0个汉字:

  什么也不输入直接点击搜索按钮,点击后应刷新首页

  2.输入38个汉字:

  输入38个汉字后点击搜索按钮,成功跳转到搜索结果页面

  3.输入39个汉字:

  输入39个汉字后点击搜索按钮,跳转到搜索结果页面,并在结果页面上显示“"×" 及其后面的字词均被忽略,因为百度的查询限制在38个汉字以内”

  4.输入100个汉字:

  输入100个汉字后点击搜索按钮,跳转到搜索结果页面,并在结果页面上显示“"×" 及其后面的字词均被忽略,因为百度的查询限制在38个汉字以内”

  5.尝试输入100个以上的汉字:

  尝试输入101个汉字,预期结果为尝试失败,只能输入100个汉字。

  6.英文、符号的测试:

  以英文、符号作为输入值,重复用例1到5,预期结果应与汉字相同。

  7.空格的测试:

  复制粘贴38个汉字进入搜索文本框,并中间加入62个连续空格后按下搜索,预期搜索结果里最后一个汉字被忽略,并在结果页面上显示“"×" 及其后面的字词均被忽略,因为百度的查询限制在38个汉字以内”同时,连续的空格应在搜索后的文本框内显示为一个空格。

可能的问题或者待改进的地方:

  1.结论4导致百度搜索支持的英文关键字长度不足。与同类网站谷歌的对比,同样一段英文(约十几个单词)在谷歌里能正常搜索,在百度里会被截取前面38个字母。

  2.结论1中不输入关键字点搜索没有任何提示,如果有提示会不会好一点。与同类网站谷歌对比,百度有明显的刷新页面动作,谷歌没有刷新页面(没有刷新页面进度条)。如果没有刷新页面动作会不会更好。

  ×××××××××××××××××××××××××××××××××××

  然后是另一个测试人员最爱的测试,等价类法。

  一般面试另一个经常出的题目就是问一个三角形,输入三个数字作为边长,然后要判断会变成正三角,等腰三角,还是普通三角,还是不能变成三角来划分等价类。这种case的设计就是基础的基础。

  但如果测百度首页就比较复杂。因为用户输入值太多。

  等价类可以这么划:

  按区间划分。

  按数值划分。

  按数值集合划分。

  按限制条件或规划划分。

  按处理方式划分。

  三角形问题显然按照数值和区间划分了。但百度首页的话就难划了。

  按区间划 1.有意义的关键词做输入值,预期能搜出结果

          2.无意义的关键词做输入值(比如用脸滚键盘来输入一些乱七八糟的关键字),预期搜不出任何结果

  按数值划,不合适。

  按数值集合划分,不合适。

  按限制条件或规划划分,不合适。

  按处理方式划分,需要知道百度是怎样处理关键字的。也就是说知道内部代码逻辑,有几种处理方式的话就可以划几个等价类,但是我不知道。。。

  ×××××××××××××××××××××××××××××××××××

  第三种方法:写case就是按照需求和标准来写嘛

  对于搜索引擎的测试需求和评价指标随便百度了一下就找到了:

  1)搜索覆盖的网站或网页数目及范围;

  2)结果的准确性,或者说相关度;

  3)结果的全面性;

  4)结果的时效性,比如说期望搜到最新的结果;

  5)搜索的速度或者响应时间

  6)易用性

  7)链接有效性、稳定性等

  对于这些我们可以一个个设计用例来测

  比如

  1.找一个很偏僻的小网站看看能不能被搜到。

  2.挑一系列常用关键字,然后人工检查搜索结果的相关度。

  3.挑一系列常用关键字,然后人工检查搜索结果的排序等等

  其中的问题是,

  1.这个偏僻的小网站应不应该被搜到呢。

  2.我怎么知道这个搜索结果的相关度哪个应该算高,哪个应该算低。

  3.我怎么知道这个搜索结果的哪个应该排第一哪个应该排第二。等等

  这里应该超出黑盒测试的范围了。

  假如能用白盒测试/自动化测试。常用方法有:

  1.使用另一套完全不同的逻辑实现一套代码,来对比结果。(不常用,代价太高)

  比如说为了测试百度,我们自己写了一个谷哥欠,然后对比两者的搜索结果

  2.按照现有代码设计时的逻辑,人工计算验证该代码是否运行正确。(太难算。)

  3.设计一些有一定通用性的规则,然后校验。(推荐)

  比如说,给你一个数据库,告诉你里面所有记录都是数字,那么写脚本检查数据库的记录,当发现有字母时,脚本可以报异常。

  同样,在百度里搜索一个关键字,然后根据预先定义好的某个规则,比如搜索结果页面在相关度一样的时候应当以时间为排序标准,检查出结果里有明显违背时,脚本可以报异常。

  4.其他?(我上面都是自己根据自己经验总结的,真实情况毕竟不清楚)

  5.还有特别提一下易用性。

  百度里面有:

  1.下拉框提示

  2.搜索结果页提示”要找的是不是xxxx“

  3.搜索结果页提示”关键字里去掉引号可以找到更多xxx“

  4.搜索结果页提示”您输入的网址是不是xxx“

  等等,都可以用探索性测试的方法试出来。然后针对他们设计对应的case。

  ×××××××××××××××××××××××××××××××××××

  这样就完了?

  没呢。。。百度首页还有用户登录、导航、天气预报、随心听、自定义主页、各种链接等等。

  就光从功能测试角度来看也有很多东西需要测。

版权声明:本文出自 zhangting85 的51Testing软件测试博客:http://www.51testing.com/?207573

原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。










posted on 2013-09-10 11:18 顺其自然EVO 阅读(4491) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 
<2013年9月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

导航

统计

常用链接

留言簿(55)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜