最近重读《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的个数等,自动生成测试输入和验证

最后:

欢迎关注公众号:程序员阿沐,领取一份216页pdf文档的Python自动化测试工程师核心知识点总结!

这些资料的内容都是面试时面试官必问的知识点,篇章包括了很多知识点,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

Google测试工师的一道面试题目相关推荐

  1. 一道面试题目引发的思考

    起因 多列布局是前端一个经典的反复被提及的面试题目,最典型的即两列,左列定宽菜单栏,右列变宽为内容区域. 通常得到的答案无外乎左列浮动定宽,然后右列或浮动,或设置外边距,或绝对定位等等.偶尔会有面试者 ...

  2. 阿里在职5年,一个女测试工师的坎坷之路

    几年前进入到IT行业,现在发现学习软件测试的人越来越多,今天我想根据自己的行业经验给大家提一些建议. 跟其他行业相比,做软件测试的岗位确实算是高薪职业,我们那个时候起步的工资并不高,而看现在很多毕业的 ...

  3. 赴微软测试工程师必考一道笔试题目

    测试空间旗下大头针出品 最近学员们去各家软件外包公司面试赴微软软件测试工程师,大多都遇到了一个共同的编程问题:那就是 请将一个链表反置. 公司就爱考诸如数组反置等等的问题,程序都不难,但是你得现场编出 ...

  4. Mysql京东的一道面试题目 比较综合

    查询sql :求取一个月之内每天分数和大于40的天数大于1的人 # 凭借印象记下来的 一个意思 # 计算出每人每天的分数和 然后每人每天分数和要求大于40 # 然后统计一个月之内每人每天分数大于40的 ...

  5. Java实现C语言select函数_一道面试题目,分别用sql 和java,c++, c语言实现,

    引用来自"雨翔河"的评论 获取国家假日办的的信息,然后根据假日办提供的信息来搞定.日期的话,哈哈,找个提供日期查询的接口,借用一下来查日期,也搞定了.总之哪里有的抄就抄哪里的. 再 ...

  6. 软件测试面试关于压力测试,软件测试面试题目

    软件测试面试题目 1.   软件测试的分类? 2.   怎么才能够全面的测试到每一个点? 3.   基于web信息管理系统测试时应考虑的重要因素有哪些? 4.   集成测试通常都有那些策略? 5.   ...

  7. 测试开发工程师实习—第一次面试总结

    面试总结 前言 一面 二面 前言 大家好!我是一个自学测试的本科生Test_晓 这篇Blog整理了我第一次面试测试开发实习生岗位的面试题目以及整理搜集的相关知识点和资料 其中有些问题的解答还需要完善, ...

  8. 这安全测试的面试题目也太简单了吧,分分钟入职成功

    看看这些面试题目,目的是了解安全测试的基本概念.每一道题目都可以展开到一定的深度和广度. 这里仅仅是一个抛砖引玉,点到为止. Question 1. 什么是安全测试(Security Testing) ...

  9. 阿里P7架构师要求:Web核心+开源框架+大型网站架构!含面试题目!

    阿里P7技能(一):数据结构和算法: 常用数据结构:链表.堆与栈.哈希表等,常用的排序等. 掌握:精通 阿里P7技能(二):java高级 java相关的高级特性:JVM.多线程高并发.网络等. 掌握: ...

最新文章

  1. 人脸识别是大势所趋 加速落地“普惠AI”
  2. 如何用WORD制作三线表
  3. 【IM】关于支持向量机分类的理解
  4. SpringBoot - 统一格式封装及高阶全局异常处理
  5. 反射中Class.forName()和ClassLoader.loadClass()的区别
  6. 理论篇 GIT使用笔记
  7. Python文档阅读笔记-OpenCV中Match Shapes
  8. 查找文件夹下所有文件名字_我的电脑如何快速查找文件,分分钟钟找到你想要的文件!...
  9. 同样版本的jstl,都是jstl1.2版本,有个有问题,另一个没有问题
  10. 在ASP.Net中实现RSA加密
  11. 基于ssh框架mysql的jsp系统远吗_JSP+SSH+Mysql实现的学生管理系统
  12. 简述数字电路在计算机的应用,数字电路应用举例
  13. 软件评测师考试(下午考点,要背)
  14. 超级好用的谷歌浏览器页面翻译插件(Mac和Win系统通用)
  15. java黄金分割点游戏_黄金点游戏(单机版)
  16. bspline怎么使用 python_B-Spline曲线拟合
  17. Photoshop 2023 支持 M1 Mac下载
  18. 无人驾驶汽车系统入门(二十六)——基于深度学习的实时激光雷达点云目标检测及ROS实现
  19. 程序员必读书单1.0
  20. 海思Hi3536移植QT5.9.8教程

热门文章

  1. VUE 尚硅谷 学习内容详解
  2. echo命令详解 (二)
  3. 校招答疑总结!准备实习、校招的学妹(弟)们,可不要努力错方向了!
  4. Dagger2 进阶
  5. VirtualBox虚拟机网络设置(四种方式)
  6. Mysql的插件下载流程
  7. 数据库——MySQL概述
  8. Mockoon代理模式
  9. 中国公布建设网络强国的时间表和路线图
  10. JavaScript(JS) 浏览器中设置启用或禁用