现代测试仪的图像。 您需要知道并能够



有一种观点认为,最简单的IT方式就是通过测试。 就像,您不需要了解任何东西,就能继续做下去,当您收到另一组用于回归测试的测试用例时,有足够的欲望和意愿不会从痛苦中流露出眼神。

在某种程度上,这甚至是对的,但对于10年前市场上的情况而言。 现在,一切都有些不同。 造成这种情况的原因有很多,它们有很大的不同。 如果您记下了密钥,那么可能是这样的:

对测试人员的要求,他们的知识和资格的要求越来越高,因为与“单击,点击和生产”相比,解决任务的难度越来越大。 测试人员的工作越来越“工程化”,它需要技术知识,特定知识,技能和能力。 测试人员越来越多地成为QA工程师(本学科中的任何人都了解差异)。

当昨天的“平民”人群涌入IT的深渊时,市场上的供应增加了,这是由大量信息推动的:从会议和书籍到软件测试的文章和课程。 您的谦卑的仆人一次也想创建一门通常可访问的课程,因为他们希望复制其专业领域中的基本知识(请参见此处此处 )。

因此,如今,随着市场需求的增长以及大量会议,课程,培训,文学,文章和其他信息资源与初学者之间的距离,仅依靠道德意志品质进入IT的可能性就越来越小。

当然,越来越多的公司正在努力培养专业人才,为幸运者注入新的知识和技能,同时提高对公司的忠诚度。 但是,在这种情况下,公司及其专家面临着严峻而严峻的问题……
如何不迷失在Internet和周围世界所充斥的各种信息中?
教自己什么或教战士什么?

在我的文章中,我将尝试概括性地概述您需要了解的知识,并且能够在最受欢迎和最受欢迎的领域中担任质量保证领域的专家。 走吧

以下专业在测试人员的供需市场中占据主要份额,因此(并且由于缺乏足够和相关的工作经验),该文章将没有关于性能和台式机专业化的章节。

本文的材料基于我与团队中杰出的专家一起工作的经验,莫斯科国立大学,MSTU的教学成果和在线课程,以及数百次面试和数十名聘用的各种质量保证专家的经验。 我不认为自己是例外,但我相信我的经历使我的观点很胜任。

性格特征


相信随着测试人员工作技术方面的要求不断提高,个人素质的重要性完全下降或完全消失的想法很奇怪。 而且,我确信角色特质是成功专家的核心,对于类似的知识和技能至关重要。 毕竟,我们不是在与Stack Overflow和Wikipedia进行人机交互,而是与仍在办公室和家里工作的在世人员合作。 因此,在即将到来的行业,专业和专业选择中考虑人格特质非常重要。

我为什么这么认为? 一切都非常简单! 我可以轻松地将专家派遣到课程或会议,订购书或进行有关测试设计,编程语言,SQL,网络和其他技术方面的细微差别的培训,以便过一会儿我可以获得第一个结果,并将其进一步扩大,从而巩固在实践中收到的信息。 但是,您无法发送到“如何在办完面包后停止运转并开始投资自己的知识”,“如何不再成为不负责任的骗子并诚实生活”,“如何不再成为灰老鼠并成为一个热情的人”,“如何停止讨厌人和学会在团队中工作”,并在聆听后指望取得切实成果。 las,这就是生活的真相,内部的分歧导致“信息商人”的广泛阶层在反叛中获利,他们渴望通过一次培训课程或一系列在线网络研讨会改变他们的基本支柱和性格特征。 这就是为什么在开始时拥有正确的生活动机和素质以从事IT尤其是QA工作如此重要的原因。 那么重要的是什么?

学习动机和自我学习


诚实回答您的问题:您喜欢学习吗? 不是一次性的,而是持续不断的。 您是否准备好神奇地带领您“成为女士”的唯一跳跃,还是您真的想每小时和每分钟吸收新知识? 在IT领域,眨眼并不成功,而且您已经处于行业边缘。 您不应期望在阅读了一年的测试书籍之后,会为自己打开通往新知识奇妙世界的大门,这将使您在未来十年内处于趋势。 理想情况下,如果您并不总是需要聪明的导师和老师来学习,并且能够自行准备新书,网络研讨会或课程。

责任感


评价您的责任等级。 一种简单的方法:首先,对自己说出人生中最大的一些错误。 无法运作 这与您的无懈可击无关,请记住,只有无所事事的人才不会误会。 还记得吗 如果仅是一些小事情,那么这是一个可悲的指示。 更糟糕的是,如果您回想起过去的错误,便会立即在内部将其归咎于其他人或情况,而不承认您对所发生的事情负责。 但是,如果您想起应该归咎于您的几次重大失败,甚至还记得如何解决这些问题,那么由您负责的事情会好得多。 塔是您不仅要纠正错误,而且还要为将来保价,以免它再次发生。 负责任的工作方法是任何领域成功事业的关键,因此对于测试人员而言,这是极其重要的功能。 最主要的是不要走得太远,不知道要采取的措施,因为过度负责并不总是那么好。

热情


你是一个充满激情的人吗? 老实说,你喜欢什么? 没什么特别的吗? 还是您每年做一次很多小的爱好? 也许有些大事,但时间总是在用光,但是因为业余爱好正在等待美好的时光。 无论在办公室还是离开办公室时,一个人仍然是一个人。 而且,如果一个人真的对平凡生活中的某件事充满热情,则意味着在工作中他会被很多事情带走,以至于他会主动地呆在晚上或在周末研究问题。 有能力的领导者和专家本人的任务就是找到这样的任务。 当然,重要的是要同时使已经开始的事情逻辑上得出结论,而不是半途而废。 测试员不能是“骗子”。 但是,如果他用自己的工作和产品辛勤工作,那么这样的员工的效率就会更高。

行为灵活性


在现代IT公司(尤其是质量检查)中工作的一个重要功能是灵活性。 新知识和新趋势以木星的狂风疾速而来,以甘道夫·格雷(Gandalf Gray)的风格站着:“你不会过去!” 面对行业是极其困难的,并非总是明智的。 因此,无论是公司的总路线,新产品,团队,工作方法还是工具,适应新的工作条件都是非常重要的。 员工越灵活,就越有机会发展IT职业。

社交性和联系方式


毫无疑问,您可以成为一名成功的专家,很有保留,但同时又深深地沉浸在您的任务中,但是,学习新知识并教育他人更可能是善于交际和联系的人。 不必每个人都做一个出色的演讲者并在活动中公开演讲,但是能够与同事找到共同语言,正确地口头和书面表达他们的思想是很重要的。 在测试人员的工作中,这些都是非常重要的功能,因为您需要经常进行大量交流,而您对质量保证的讨论越多,您就越深入和深入地浸入相关领域,而建立交流的能力却是成功的一半。

团队合作


测试人员必须是团队合作者。 无论您使用的是服务测试模型,还是测试人员已集成到每个团队中,都没有关系。 非常重要的一点是,给团队“肩扛的感觉”,以便他们可以依靠您,也可以依靠您。 一个人不是这个领域的战士-对于测试人员来说,这也是关于职业进一步发展的故事。 毕竟,团队是您的直接环境,是您将获得的有关产品,过程和技术的主要知识来源。 如果您是团队合作者,那么在测试中您将获得比孤独者更大的成功。

主动性和决心


如您所知,水不会在躺着的石头下面流动,因此在测试人员的职业中,惯性将向您倾斜。 优秀的测试人员会积极主动,不会期望同事和负责人为之兴奋,但会提供新的解决方案和建议。 如果测试人员曾经被告知“这不是错误,而是功能”,那么他就不应放弃。 取而代之,要主动说出自己的观点。 当然,您不应出于任何原因而走极端,但您不应该同意他们所说的一切。 优秀的测试人员的工作不仅基于批判性思维,它测试了周围的人的力量,而且还具有在适当的时候形成自己的位置并在他人面前捍卫自己的能力。

该列表可以继续和补充,我根据自己的经验确定了关键功能。 当然,我们并不是在谈论这样一个事实:如果您没有这些素质,那么您就不合适。 但是可以肯定地说,您所宣扬的品质越少,对您,您的团队和领导者来说就越困难。 允许任何例外,仅能确认规则。

测试基础


不论其专业知识如何,绝对任何测试人员都需要以下知识和技能。 这些东西是基础知识的基础,它们快速而轻松地学习,尤其是当它们被实践立即固定时。 我强烈建议所有初学者,无一例外地深入探讨以下主题。 掌握了这些知识,您将发现无穷无尽的软件测试世界,最终掌握了任何领域,但是基础知识始终是需要的。

测试类型分类


即使是新手测试人员,也应该对不同类型的测试,使用的时间和用途有基本的了解。 这是一个枯燥的理论,它本身并不需要,但是没有它,“靠在实践上”可能会非常痛苦且费时,但是在此过程中,您也可以组装自行车,但可以收集已知的耙子。 不要偷懒,退房,受益很多。 但是,您可以轻松地在面试中通过“测试铅笔”级别的任务。

错误本地化和错误报告


发现一个小错误。 以正确的方式定位错误,设置尽可能多的环境和条件以使其稳定再现,这一点极为重要。 此外,您需要掌握编译高质量错误报告的技能。 在我的演讲中以及与团队合作时,我经常使用以下比较:“如果您出门在外,请了第一位祖母,您的错误报告就不错了,她可以根据您的描述重现缺陷或验证缺陷的存在” 。

测试设计技巧


基本事物通常在面试或作业中以一种或另一种形式进行检查,赋予“测试输入数字的表格”级别和“在我们的授权表格上编写自动测试”级别的任务。 重要的是不仅要记住什么是“等价类”或“边界值分析”,而且要能够在任何条件下使用各种技术并将其结合起来。

错误跟踪,知识和测试管理系统


那些将错误报告写在工作表上,在Google码头上进行测试文档,检查清单和测试用例的时代已经消失了(是的,是的,我知道有些人还在写,有时甚至很方便) ) samopal已由专业工具取代-错误跟踪系统(最受欢迎的工具是Jira,Redmine),知识管理系统(Confluence,Wiki等)和测试用例管理系统(TestRail,Zephyr,TestLink等)。 ) 通过使用开放的Beta测试程序或自行安装软件,可以获得使用工具的基本原理(在市场上,有关事实调查的规模既有免费的解决方案,也有共享软件)。

软件开发方法论


测试人员可能甚至不需要在初始阶段就对软件开发方法进行深入的了解,重要的是至少要在手指上了解最受欢迎的软件(Waterfall,Scrum和Kanban)之间的差异。 但是随着时间的流逝,他将不得不越来越深入地研究方法论,并在特定开发过程的环境中进行测试时选择适当的方法和技术。 为此做好准备,并注意问题的这一方面很重要。

客户端服务器架构


大多数现代软件都是基于客户端与服务器交互的鲸鱼构建的。 对于测试人员来说,重要的是要在这种体系结构中了解其工作原理,主要优点和缺点。 这不仅使他们可以在工作过程中进行更好的测试,而且在必要时还可以了解应如何发现所发现的缺陷,从而正确确定缺陷所在的一侧。

作业系统


操作系统的运行原理,它们是什么以及它们通常是什么-常识,通常,这简化了测试人员的寿命。 甚至了解用移动操作系统代替台式机操作系统的趋势,以及掌握用户级别的操作系统使用技能已经是加号了。 而且,如果您更深入地研究此问题,那么随着时间的流逝,您将需要掌握配置和使用整个操作系统星系的技能(Android,Windows,iOS,macOS,Linux最为流行)。

Web应用程序客户端测试


进行测试的最简单,最常见的方法之一就是开始测试Web应用程序。 这种专业化是市场上最广泛的专业化之一,但是,紧随其后的是,移动应用程序的客户端测试的方向正在开始。 无论如何,您都需要了解,这样的发展载体是职业初期最容易获得的载体之一。 关于此主题有很多培训材料和文章。 如果您愿意,则可以朝任何其他方向发展,通常是自动化或相同的移动设备(例如,在掌握了针对移动设备的Web应用程序的测试之后)。

浏览器


在Web客户端测试的上下文中,重要的是要了解瘦客户端(尤其是浏览器)的结构,以及它们的区别,渲染和工作脚本的细节,引擎盖,版本控制,其他浏览器工具等。 对于测试人员而言,务必牢记在产品的实际用户中使用特定浏览器的普遍性,以便以最有效的方式分发测试。 最受欢迎:Google Chrome,Safari,Firefox,Opera,Internet Explorer。

浏览器中的开发者控制台


Web测试人员应该能够在浏览器中使用开发人员的控制台(至少使用页面上的元素和网络请求)。 在使用页面元素的情况下,测试人员必须了解如何对其进行本地化,或者在必要时进行更改;在进行网络交互的情况下,测试人员必须能够理解请求和接收到的响应的顺序。 理想情况下,您需要了解各种http方法(GET,POST,OPTIONS等),知道响应代码(10X-50X),能够读取答案的标题和正文。

HTML,CSS,JavaScript


为了使测试人员更好地了解现代网页的构成和结构,至少对HTML,CSS和JavaScript有基本的了解将非常有用。 这些知识还有助于定位与页面上特定元素相关的错误,快速找到它们,并在必要时在客户端进行更改。

后端测试


一个单独的Universe正在进行后端测试。 这个世界没有皱纹和美感,其中没有图形界面的位置,只有控制台中闪烁的光标,大量的文本和纯净的应用程序逻辑。 测试的特定方向,对于初学者来说并不总是那么容易。 一开始通常需要对专家进行更彻底的技术培训。

OSI模型


后端测试器应从其启动的基础是OSI模型。 尽管在大多数情况下测试人员不太可能找到低于所应用和代表水平的水平的有用信息,但如果他了解这些水平相对于其他水平,其特异性是什么以及如何应用,那将是很好的。

休息 香皂 JSON-RPC


REST, - , . REST- -, , (HTTP, JSON, XML). SOAP ( XML, XSD, WSDL) JSON/XML-RPC, .


- . , , , .. , , . bash-, , .

cURL. Postman. SoapUI


REST API cURL, , . ( GUI) API Postman, . SOAP API, SoapUI ( REST API).


, SQL (MariaDB, MySQL, PostgreSQL, MS SQL). SQL. , « SQL ». , INSERT, SELECT, DELETE, UPDATE, WHERE, ORDER BY, JOIN, INNER JOIN, RIGHT JOIN, LEFT JOIN. , NoSQL (MongoDB, Cassandra). .

-


, , . , , . , , — , , .

IDE


(XCode iOS, Android Studio Android). , , , , . , IDE , .

HTTP/HTTPS-


- . - , (Charles, Fiddler, Wireshark), . 即 , . , , ( , ). , .


, , Fabric (Crashlytics), HockeyApp, TestFlight. , , , .

测试自动化


, . , , , , . , , . , , , . , .


. — . .

:

— , - - Python , - Java . , .

:

, . (, , ..), ( ). , , . , , , ( ), .

:

, , . .

Python, Java, PHP, — Kotlin, Objective-C Swift.


, , (xUnit, nose, unittest, pytest, TestNG, Cucumber) , . , .


, . , . , Selenium WebDriver, iOS — XCUITest, Android Espresso UI Automator ( Google), — Robotium Selendroid. , , , , — . Appium Cucumber.


, , , . , , — Allure. , , .


, , , , , , . , , , . . Git, SVN, Mercurial, TFS. , Git . , commit, push, pull (force), fetch, checkout, branch, merge, rebase, revert.


, , - . , Jenkins, TeamCity, Bamboo. , - CI- , , unit-. , . , ( , ..) , .


, , . , , . , -, , , , . , , , , , 1% , , , . , , — .


, . , , , . — , , . , — , . ?


, — , : «, , , ». , . , , . , , . , — , — . , - , , . - .


. , , . , , , . , , , , .


, , — . — . . , , . — , , , . , , - . , , .


, , . , , , . — , , . , , . , , , , . 有必要! , .


, , , . , , -, , -, . — , . , , , .


— , . , . , , . , , , , .




, IT , - , — . , — . , , , . , , , , .

我想再次提醒您,一定性质对于IT尤其是测试的重要性。请记住,您可以将任何人选入使用编程语言和DBMS开设的课程,但可以选修那些渴望自我发展和奉献的课程,这将使您成功完成第一门课程,可惜没有人能成功。

我希望本文对初学者或经验丰富的专家都是有用的,因为对测试领域的专业开发人员的选择足以使他们迷失方向。让我提醒您,整个故事在我看来是卑鄙的,因此不要严格判断,不要穿拖鞋。谢谢您的建设性反馈。

所有的质量!

Source: https://habr.com/ru/post/zh-CN426759/


All Articles