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

2013-09-11  白云 

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


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

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


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

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


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


探索过程:

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的设计就是基础的基础。


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


等价类可以这么划:

按区间划分。

按数值划分。

按数值集合划分。

按限制条件或规划划分。

按处理方式划分。

(来自百度百科http://baike.baidu.com/link?url=HKUGcy7CIsFhDOy9ru4cPHjOKZkV9uk665lz8YSfFaV4dlLkVJqxD3zG0brGMYew7thv8VPgMYIykoRXfhVXka


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


按区间划,

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。


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


这样就完了?

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

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

-------------------------------------------------------------------------------------------------------------------------------------------------------

转自:http://www.51testing.com/?uid-207573-action-viewspace-itemid-851764

836°/8347 人阅读/2 条评论 发表评论

王涞  2013-09-22

考察的测试思路,比较nice


白云  2013-09-23

王涞: 考察的测试思路,比较nice
我总觉得现实工作中这样测试成本太高了。。小公司是扛不住的。。


登录 后发表评论