你好 在Java QA工程师课程开始之前,我们准备了一些材料,这些材料将对那些打算朝这个方向发展职业的人有用。
测试员-是谁?
软件质量保证(QA)工程师倡导最终用户利益。 他正在开发一种保证
质量的软件测试过程-这样,该产品不仅可以满足要求,而且可以超出客户的期望。
区分以下测试类型:
- 说明书 它涉及使用消费者将使用的工具来熟悉产品:键盘,鼠标,触摸屏上的手指。
- 回归。 添加新功能后,测试人员必须从最终用户的角度检查应用程序是否保留了其操作属性。
- 自动化的。 提供代码编写以验证应用程序的预期行为和实际行为是否匹配。
自动化测试对于软件行业而言并不是一个新概念。 免费提供自动测试工具以创建更好的软件也不是一个新概念。 全新的是,得益于ThoughtWorks开发并得到Google支持的Selenium WebDriver,即使对于习惯于仅使用标准认证软件的公司而言,开源解决方案也变得可以接受。
Selenium WebDriver与CI / CD的结合导致对编码器的需求激增,以致“手动测试”一词在申请人的要求列表中消失了。 是什么取代了她? 开发自动化工具。
实际上,测试人员会编写这些测试并创建一个自动化环境来支持测试及其分析的执行。 为此,他尝试回答以下问题:
- 我们进行什么类型的测试? 我们是否将专注于通过Selenium WebDriver自动化浏览器回归测试套件? 还是我们也将自动化新功能?
- 如果我们使用Selenium WebDriver来自动执行浏览器测试,那么我们是否将其绑定到Java,Python,C#,JavaScript或Ruby?
- 我们是否可以沿着测试Mike Cohen的金字塔进一步发展,并测试那些为浏览器应用程序提供基本功能的Web服务?
- 哪些测试解决方案最适合应用程序编程语言?
今天如何进行测试员面试?
两年的休假后我来第一次面试时,一切进展顺利……直到要求我加入董事会的那一刻。
“使用您喜欢的编程语言,编写一种方法来测试给定的单词是否是回文。”
如果他们给我这份作业,我将能够弄清楚。 但是,当我发现自己站在董事会的前面,并且有两名石像鬼的开发人员对我进行评估时,我的想法变成了一块空白的画布。
处理了一半的作业后,我开始开玩笑:
- 如果只有一台配备IntelliJ的笔记本电脑!
- 如果我为自动化测试编写代码,我会做得更好。
答案是:“期望所有员工都具有一定的最低编程水平,即使是对于质量控制职位也是如此。”
之后,我不得不为另一份工作准备面试...

代码编写面试:不仅仅适合软件工程师
三年前接受采访时,我只遇到过编写代码的一次。 这次包含了7个适合我的空缺职位中的5个。 为什么测试人员职位的候选人必须与开发人员本人接受相同的验证? 答案对我来说似乎很奇怪:
因为今天的测试人员是开发人员。近年来,自动化功能已经从可以编写代码的测试人员转移到可以进行测试的开发人员。
开发人员认为面试中测试人员提出的问题并不困难。 他们不要求求职者解决河内之塔或解决一所优秀技术大学二年级的数学方程式。
他们要求编写的大多数代码示例都与循环,基本数学,字符串和符号操作有关。
为什么编写代码的采访如此复杂?
活动主题可能不在您的专业知识范围内。- 我通常使用Java编程语言。 我只需要偶尔使用比哈希表更复杂的数据结构。
- 我正在编写的代码围绕Selenium WebDriver展开。 我打开浏览器,转到页面,在文本字段中输入数据,选择单选按钮,它可以正常工作!
- 我不断比较字符串,并检查屏幕上的警告文本是否与预期的文本匹配。 但是,在日常工作中,我仅对字符串对象方法使用了一些辅助方法。
没有IntelliSense进行面试- 如果需要在字符串,字符或整数对象中使用辅助方法,则只需要在单词后面加上一个点,就会显示这些方法。
此类测试不允许使用外部信息源。- 您不能使用专门的论坛或
StackOverflow.com
。
在面试中,可能会产生孤立感。- 当我开始为我不熟悉的功能编写测试时,我通常会与同事交换意见。 但是在面试中,我无法与面试官交流想法。 还是可以吗? 在我看来,我不能-有时他们不是很友好。

一个人如何准备这样的任务?
刷新您的知识一个不错的选择是参加一些免费的在线编程课程。
实时FM
使用Oracle的Java学习资料:“ Java指南是想要使用Java来构建应用程序的程序员的实用说明。 该手册包括数十个课程和数百个示例。
查看API文档
要使用编程语言,您必须了解API文档中列出的基本术语。
如果您的主要编程语言是Java,请查看
https://docs.oracle.com/javase/8/docs/api/java ,重点关注
Integer ,
String和
Character主题,尤其是:
字符串函数是否需要查找字符串中的第一个字符? 使用
charAt(0)
。 找出字符或单词是否在字符串中? 使用
contains
。 需要后缀吗? 尝试
endsWith
。 您可以使用
equals
和
equalsIgnoreCase
检查这两行是否匹配。
角色功能布尔函数
isLetter
,
isLetterOrDigit
,
isLowerCase
,
isUpperCase
,
isLowerCase
,
isWhitespace
帮助了解字符的性质。 例如:
Character.isLetter('A')
将为true。 输入新字符时,请将其用单引号引起来,例如:
char newCharacter = 'a'
。
整数功能是否要转换整数? 在
Integer.toBinaryString(int i)
,
Integer.toHexString(int i)
或
Integer.toOctalString(int i)
输入整数,以将其转换为所需的格式。
纸上练习例如,问问自己如何使用循环循环显示:
- 从1到100的所有整数;
- 从1到100 {1 ... 100}范围内的所有偶数(i%2 == 0)
- 所有数字均可以除以3(i%3 == 0)。
或以下是字符串练习:
- 编写一个采用字符串s并以整数
s.length
返回长度的方法; - 编写一个采用字符串s并返回第一个字符
s.charAt(0)
。
重要说明:
- 尝试用清晰的笔迹书写所有内容。
- 不要忘记正确打开和关闭支架。
- 提出针对您的代码的验证测试。 如果字符串仅包含一个字符,它将起作用吗? 如果是100分? 如果是0?
逐周期查看未计入单位的错误:
- 在对字符串中的字符或数组中的第一个索引进行计数时,数字n被认为是从0到
n-1
的范围。 即,第一个字符为(0),最后一个字符为(length-1)。 for (for i = 0; i < 5; i++)
循环for (for i = 0; i < 5; i++)
将以数字5结尾。如果显示该数字,则将在此处显示0、1、2、3、4。要显示5个以上,请输入i <= 5 。
在本文的第二部分,我们将讨论为什么代码编写访谈如此复杂。 今天就这些。 可以在12月19日举行的免费网络研讨会上获得更多有趣的信息。