位置:有考网 > 计算机类>软件测试> 技术新人如何学习自动化软件测试?  正文

技术新人如何学习自动化软件测试?

发布时间:2021-12-27 11:10:31来源:转载

技术新人如何学习自动化测试?传统软件使用较多的是瀑布模型。测试人员的活动区域是有限的,活动的时间区域主要是提测至上线前。传统瀑布模型中,QA发挥的空间比较有限,质量压力都集中在测试阶段。随着软件规模的扩大、部门职能的划分、敏捷迭代模式的发展,互联网或者大型软件项目绝大部分演变成了DevOps:

DevOps是软件文化上的一次飞跃,它强调产品、开发、测试、交付、运维各个环节的沟通合作,将敏捷的方式延伸到整个产品。从QA的角度也有了测试左移和测试右移的概念。

测试左移:

测试左移的思想是需求阶段、开发架构设计阶段或是未到系统测试或集成测试前就进行测试,目标是降低时间成本、减少风险,从用户角度描述产品行为、从技术角度建立好开发与产品需求的连接,防止产品设计上的雷或缺陷。这有利于减少无效代码的开发、以投入更好的时间在正确的产品上。也可以在代码编写阶段进行单元测试或覆盖率统计。

日常工作中,QA都期望只对修改的代码或受连带影响功能/需求进行测试,从而减少重复回归的工作量,即“精准测试”。但是实际上,往往得到开发同学的回复要么是“较好全回归或者核心流程全回归”,要么“是没关系的,就回归下A功能就好”(实际可能已经带雷上线了)。设想如果能够有个工具能够帮我们将需求与相关的代码调用栈联系起来,在相关代码依赖变动时都能够自动评估有效回归范围,可能是“精准测试”实现的一个方向(我相信业界应该已经有人在做了)。

测试右移:

测试右移简单来说是指产品上线以后开展的一系列质量活动。事实证明,在迭代以及产品复杂化、多样化的今天,几乎不可能做到0缺陷上线,当然,对硬件产品或涉及资金的产品而言,存在缺陷可能意味着产品召回或是资损,会给公司带来巨大损失,对于某些互联网产品而言,由于产品发布的天然优势,一般具备热修复、热发布能力,因此在时间和产品质量维度,可能会更强调上线,比如facebook就提倡灰度上线。因而如何监控产品的稳定性、第一时间发现线上用户问题、用户反馈并使问题及时得到解决、如何了解更好的用户需求(如AB测试)变成了QA在测试右移活动中的关注点。期间也有大量自动化测试可发挥的空间。

QA做自动化测试应该掌握哪些技术?

说到具体的技术,其它回复也有提到,感觉整体太散了,初学者可能有点摸不到边,不知从哪里开始,个人建议顺序是这样的:

软件工程&测试理论基础

各个公司产品形态迥异,因此也制定了不同的软件研发流程。大多数大公司都设置有运营、产品、视觉/交互、开发、测试、运维、技术支持、客服等岗位,应当明白各个角色的职责,以及了解整个产品运转的逻辑。至少应该了解所在公司的研发流程以及当前主流的研发流程(如敏捷开发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划分。

合肥达内软件测试培训机构怎么样?
青岛软件测试培训学校哪家强?
如何做好软件测试工作?
大专学历在市场上能够找到软件测试的工作吗?
计算机软件考试有哪些学习内容?
佛山达内软件测试培训机构口碑如何?

更多培训课程: 无锡软件测试 更多学校信息: 无锡新区宝龙达内IT教育培训 咨询电话:

相关内容: 软件测试 软件测试学习方法 无锡达内教育

同类文章