| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发测试 -> 面试千万不要这么说:“不喜欢开发,所以选择测试” -> 正文阅读 |
|
[开发测试]面试千万不要这么说:“不喜欢开发,所以选择测试” |
见过不少软件测试岗位,在面试时,问到选择软件测试作为职业的原因时,有不少测试工程师会回答:因为不擅长或不喜欢开发的工作。 这个想法,这个回答,就已经在面试官眼里打低分了。 现在网上也有不少类似观点
这样的说法已然是割裂了测试和开发的紧密联系,通常反映了开发能力的缺乏(也或许是对开发工作的厌倦)。 实际工作中,测试和开发是“你中有我,我中有你”。 诚然,对于黑盒测试中有些浅显的测试,并不需要多少开发知识,可是薪水也是测试中最低级的。 残酷的经验告诉我们,拥有出色的开发能力并努力将之应用于测试中的测试工程师,才会有个人的核心竞争力,薪资也会位于软件测试业的顶级。 ?判定缺陷间的重复及依赖关系需要开发能力? 很多时候,两个软件缺陷表现形式不同,但是根源相同,这样就形成了重复缺陷;或者有时,一个缺陷基于另一个缺陷,当另一个缺陷被解决了,这个缺陷就会消失,这属于缺陷间的依赖。 我们知道,有效缺陷的数量会用于统计项目的情况,重复或依赖性的缺陷数量达到一定程度时,势必影响领导对于整个项目进展的判断,进而带来很多的风险,因此各个测试部门都要求尽量减少这种无效缺陷的提交。 Bug1:当在日期控件中选择一个日期后,在该日期后可写入任意字符,如“KKK",单击OK按钮生成报告,报告中的日期含有“KKK",是不合法的日期。 Bug2:当在日期控件中选择一个日期后,在该日期后输入3000个字符后,单击OK按钮,程序崩溃。 这里有两个bug,乍的一看,这似乎是两个不同的缺陷。 可是有开发能力的人会知道,这二者的解法实则相同。只要限制日期文本框即只从日期控件中选择而不可手工填入,这两个缺陷就都被解决了。 由于解决方法相同,因此这两个缺陷应当被判定为重复。 有一定开发经验的测试人员,对于缺陷间的重复或依赖,在从前的开发实践中可能就遇到过类似情况,而更可以举一反三,进行更精确的判断。而这种判断,对于无开发能力和经验不足的人来说,是很难达到的 ?使用自动化测试工具需要开发能力? 无论是著名的性能测试工具LoadRunner、Jmeter,还是UI自动化测试工具selenium、appium,很多工具的使用都需要编写脚本程序。 脚本程序既没有C++或Java语言那么难,也不是面向对象的,只是简单的解释型语言。 拥有C++或Java等复杂语言的开发能力能帮助你更好地理解脚本语言,出问题时能够更快速、更准确地定位问题出在哪里。 丰富的开发经验能使你事半功倍,得心应手。 欠缺开发经验的人,即使在编写脚本语言中的简单语言时,也不免错误百出。因为缺少那种开发的思维,既不能规划好全局,也不能照顾到细节,这样的项目,失败的风险大大增加。 ?黑盒测试偏爱开发能力? 在黑盒测试中虽然看不到代码,但是如果有开发能力,则测试人员将可以更容易贴近开发人员的思路,从而更好地设计和执行测试。 说明 测试人员经常会琢磨:“如果我是开发人员,在开发这个模块时可能会犯什么错误?” 测试人员经常会琢磨:“如果我是开发人员,在开发这个模块时会犯什么错误“ 按照需求逐条测试,只能保证需求上写的部分是正确的,而其他很多部分是覆盖不到的。 而且根据80-20原则,80%的测试要用于20%高风险的地方。 同样,每个人被分配的任务中,也有80%与20%之分。如何来判断哪些是80%的呢? 事实证明,拥有一定的开发能力将帮助我们更准确地判断,从而使我们更聪明、更积极、更有效地完成工作。 具有开发能力完全可以代替数年经验的“老师傅”那数年的经验。 ?白盒测试需要开发能力? 在某应用中,有个生成网站统计报告的新项目进入了系统测试阶段,这个项目的核心部分是在数据库里运用SQL查询结果。 领导布置了一个任务,要求你来重写一遍所有的SQL查询,来对比一下报告数据。 首先你需要看懂代码,如果粘贴到Word文档上,每个查询语句平均有80行,这条的报告一共有约40种。 当看懂代码且理解了逻辑之后,能开始试图找出其中的 Bug。 一些典型的Bug有: (1)边界值错误。通常发生于“between, and”语句。 (2〉限定条件错误。例如在 where子句中少写了一个and条件。 (3)有的表无用。例如left join了个表,发现这个表没有用到或一些字段与另一表中的字段重复。 (4)函数使用错误。 (5)字段或表的混淆。例如应使用terminated_id字段的地方误用了end_id字段。 这就说明通常意义上的白盒测试不需要重写开发人员的代码,只需要理解并测试其逻辑即可,最后参照开发人员的代码来重写我的查询,并用其在数据库中运行的结果来对比软件生成的报告。 ?安全测试需要开发能力? 在进行安全测试时,作为测试人员,经常需要模拟攻击系统。 没有开发能力,就不知道可能的薄弱环节在哪里。 以一些简单的命令来攻击,这个层次比较浅,无法模拟出真正的高手来攻击的态势,也就是说,漏洞可能很严重,但是我们的测试水平达不到,根本测试不出来。 安全测试是一个计算机学科中很深的领域,很多高手不但精通多门开门语言,而且精通反汇编,对计算机运行原理了如指掌。 ?开发测试工具? 为了实现对某些项目的测试,部门中经常会要求开发一些小测试工具。 例如摩托罗拉公司的手机部门,需要开发一个工具,来自动化集成所有代码生成软件的一个版本,然后自动分发给相关部分,并进行一些基本的通过性测试(冒烟测试)。 这需要很强的开发能力。如果你有这种能力,显然就可以超越其他同事,成为部门的技术骨干。
|
|
开发测试 最新文章 |
pytest系列——allure之生成测试报告(Wind |
某大厂软件测试岗一面笔试题+二面问答题面试 |
iperf 学习笔记 |
关于Python中使用selenium八大定位方法 |
【软件测试】为什么提升不了?8年测试总结再 |
软件测试复习 |
PHP笔记-Smarty模板引擎的使用 |
C++Test使用入门 |
【Java】单元测试 |
Net core 3.x 获取客户端地址 |
|
上一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/17 22:28:02- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |