For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
做自动化测试应该掌握哪些技术,初学者可能有点摸不到边,不知从哪里开始,本文合肥IT培训机构小编探讨总结了关于自动化测试小白零基础学习的全部内容,希望对大家有所帮助。
软件工程&测试理论基础
各个公司产品形态迥异,因此也制定了不同的软件研发流程。大多数大公司都设置有运营、产品、视觉/交互、开发、测试、运维、技术支持、客服等岗位,应当明白各个角色的职责,以及了解整个产品运转的逻辑。至少应该了解所在公司的研发流程以及当前主流的研发流程(如敏捷开发Scrum),并在项目过程中积极思考,形成自身的软件意识与理念。在校的同学可以多在网上找找资料,有个大概了解。个人理解,软件工程本身是一个浩大的工程,也在日新月异不断地向前发展,它需要长期积累、不断修炼内功,并在实际项目中实践驱动,从业2年、5年、10年、20年都会有不同层次/深度的理解,自动化测试亦是如此。
关于测试理论基础这里不赘述了,网上资料一大把,搜白盒/黑盒、等价类、边界值等关键字就可以找到。
通用计算机基础(其实就是计算机专业相关的大学课程)
建议至少掌握一门编程语言(C/C++/Java/Python,推荐Python,学习成本相对更简单一些)。相比于特定需求/领域的开发人员来说,测试人员对编码技术要求相对会弱化一些(当然并不意味着不需要极客精神、架构思想)。涉及到Web、桌面GUI、Android/iOS的可以到具体应用再学习相应的框架。
掌握基本的数据结构以及在具体程序语言中的应用,例如:list、map。
掌握面向对象程序设计的基本思想。
掌握一种代码管理工具,如git、svn。
掌握Linux的使用及基本命令使用,如:cp、grep、vi/vim等。
掌握关系数据库的基本理论和关系数据库(如MySQL)SQL基本使用、NoSQL(如Redis)的基本使用。
掌握基础的计算机网络理论,如TCP/UDP协议、IP划分。
接下来,我们就需要站在巨人的肩膀上了。这部分可以根据实际需要进行学习,涉及的内容实在太多了,我这里主要从App自动化测试的角度给出一些工具使用、方向学习建议,大家搜关键字应该都能找到一些资料。
服务端:
白盒单元测试:Junit(Java)、unittest(Python)、gtest(C++)
http接口测试:Postman
抓包工具:Charles、Wireshark
压测:Jmeter,在大厂里面都会有特定的一些写好的工具可以使用。
链路依赖分析:梳理应用间的依赖关系,提供压测模型,大厂里面也有一些工具可以使用。
监控&日志分析:应用稳定性监控,如qps、rt,服务器负载、cpu监控等。日志分析这块可以做一些基于规则的错误日志监控、甚至基于AI的方式(如:机器学习)对日志大数据进行聚类、问题分析/定位。
客户端(Android/iOS/H5):
UI:Appium、Macaca、Airtest
性能(CPU/内存/帧率):Android Studio、Instruments(iOS)
稳定性:Monkey
兼容性:各种云真机平台
事实上,即使非常熟练掌握了以上工具,也无法达到完全释放人力的目的,甚至在自动化实践过程中会存在各种各样的问题(例如如何针对具体的场景设计自动化用例、提升覆盖率、如何维护/构造测试数据、如何进行精确校验、如何提高执行稳定性、如何缩短执行时长、如何监控线上问题等等)。
这就需要我们更加深度的去了解产品形态、在已有工具解决不了问题时,怎么去用创新的思维看待各个阶段面临的问题、甚至创造工具,这已经不仅仅只是技术本身的问题了,而是如何去挖掘、思考问题、如何去运用技术的问题了。实际上自动化测试可以归纳为如下几个阶段,这也是近2年智能化测试的研究方向:
另外,个人觉得目前市面上对自动化测试其实是存在的一些误区的:
认为自动化测试无所不能,只要有自动化,人工可以完全释放。对于复杂产品,目前来看,这几乎是不可能的。因此,目前市面上并没有类似“统一宇宙理论”的自动化测试工具。
自动化测试没技术含量(测试没开发有前途),如果仅仅是对工具使用,没有创造力,那确实没有什么太高的技术含量。但是如果是在DevOps各个阶段发挥最大价值,个人认为比传统意义的开发岗位难度更高,并且可发挥空间更大。举个例子,能否创造一种工具,能够根据视觉稿或者App UI自动生成测试用例(啊?怎么可能,试想下人是怎么设计用例的,得益于AI技术的发展,这完全有可能,目前也有一些根据视觉稿生成前端代码的工具了)。我不觉得这是一个没技术含量或没有价值的自动化测试。近些年,质量领域的大会越来越多,大家也可以关注关注。例如QCon、MTSC、TICA、Tid等等。
自动化覆盖率至高无上。这部分往往来自人们对自动化测试过高的期望,为了提升覆盖率,未考虑好ROI,以至于南辕北辙,入不敷出。著名的测试金字塔给了最好的解释。
人云亦云,泛而不专。相比于开发人员,个人认为QA开展自动化测试需要掌握的技术知识可能会更广泛,例如:开发人员可能专注于Android、iOS或者Java后端,亦或是某类AI算法,即对开发人员的要求是对某一技术掌握的足够深入,对QA来说,精力有限的情况下,可能又要懂点服务端、又要懂点客户端、又要懂点算法等等。再加上各种产品、技术形态不一,也衍生出了形形色色的工具和研究方向,初学者容易受到误导,不知所措。自动化测试和开发角色一样,也是一个逐步积累、实践的过程。
希望这辈子,最让你无悔的事情就是来达内学习!学习向来不是件易事,但无论过程多么艰难,希望你依然热爱生活,热爱学习!永远记得,达内将与你一同前行!现在扫码,立即领取万元课程礼包,助力0基础快速入行,为你梳理行业必备技能,全方位了解岗位发展前景!
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请添加3216764521学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。