Google测试工师的一道面试题目

题目:在一个Web测试页面上,有一个输入框,一个计数器(count)按钮,用于计算一个文本字符串中字母a出现的个数。这里的问题是,请设计一系列字符串用以测试这个Web页面。

题目

题目非常简单,看到这个题目不要上来就开始设计用例,最好能有一些思考,这样看起来更加“专业”。

所以,我第一个想到的是设计这个功能的背景,因为同样一个功能,在不同的背景下,测试需要考虑的点可能是不一样的。例如,同样是一个搜索功能,百度的搜索和淘宝的搜索就有很大不同,因为用户的使用场景完全不同,输入搜索的关键字和预期结果也不一样。

当然,这只是一道题,你根据题目回答就好了。

不过,我们仍然可以就题目本身来提一些问题:大写还是小写?只是英文么?计算完成后文本会被清除码?多次按下按钮会发生什么事情?…..

接下来你假装有条不紊的设计用例(思考一会儿,然后再输入一串字符,然后再思考…),而不是看起来像monkey试图破坏软件(拼命的敲击键盘…)。

“banana”:3(一个合法的英文字)。

“A” 和“a”:1(一个简单有正常结果的合法输入)。

“”:0(一个简单的结果为0的合法输入)。

Null:0(简单的错误输入)。

“AA” 和“aa”:2(个数大于1并且所有字符都为a/A的输入)。

“b”:0(一个简单的非空合法输入,结果为0)。

“aba”:2(目标字符出现在开头和结尾,以寻找循环边界错误)。

“bab”:1(目标字符出现在中间)。

space/tabs:N(空白字符与N个a的混合)。

不包含a的长字符串:N(N大于0)。

包含a的长字符串:N(N是a的倍数)。

{java/C/HTML/JavaScript}:N是a出现的个数(可执行字符,或错误,或代码解释)。

更优秀的测试工程师,应该跳出输入本身,设计以下用例。

质疑界面的外观、调色板和对比度(这与相关应用风格一致么?)

文本框太小了,建议加长以便显示更长的输入字符串

这个应用能否在同一台服务器上运行多个实例,多个用户同时使用是否会有问题。

是否会根据用户的输入自动匹配内容?

建议使用真实的数据,如从词典或书中选择输入内容。

提出疑问:“输入的数据是否会被保存”,输入字符串可能包含地址或其他身份信息。

输入HTML和JavaScrip,看是否会破坏页面渲染。

尝试复制/粘贴字符串。

提出疑问:“计算足够快么?在大并发下使用”。

提出提问:“用户怎么找到该页面?”

还有一些测试点,只有经验丰富的测试工程师才会想到。

意识到计算会通过URL-encodedHTTP GET请求传递到服务器,字符串可能会在网络传输时被截断,因此,无法保证支持多长的URL。

建议将此功能参数化,为什么只对字母a计算呢?

考虑计算其它语言中的a(α,Alpha)。

考虑到该应用是否应该国际化。

考虑编写脚本或者手工采样来探知字符串长度的上限,然后确保在此区间内功能正常。

考虑背后的实现和代码。也许已经有一个计数器遍历该字符串。

提出疑问:“HTTP POST方法和参数会被黑掉码?也许有安全漏洞?”

用脚本创建各种有趣的排列组合和字符串特性,如长度、a的个数等,自动生成测试输入和验证。


转自 testclass.net

你可能感兴趣的:(Google测试工师的一道面试题目)