题目: 在一个 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
来源: http://www.jianshu.com/p/235927e3c92c