想知道学习软件测试必须知道的自动化工具有哪些?
持续集成服务
过去十年软件开发领域自动化最大的变化之一就是任务自动化。在过去,构建应用程序的特殊版本、创建文档或更新错误报告的状态都是人为的。有些团队甚至贡献了负责启动一个版本的创建者的责任。诸如此类的人工任务(或与个人或机器紧密相关的任务)非常耗时,并且是为了避免瓶颈而创建的,比如创建者占用了一天的私人时间,阻止了新版本的完成。
幸运的是,通过允许任务标准化和自动化,持续集成(ci)工具得以保存。持续集成服务对于安排和执行任务非常重要,这些任务是普通桌面计算机可以完成的,并且让这些任务在目标计算机上执行,而不是在目标计算机上执行。回到创建版本的示例,不是让bob负责在他的机器上手动创建版本,而是可以集成持续集成服务来选择目标机器并在该机器上执行该版本。bob不仅不需要亲自出现在那个版本机器上,而且他还可以在任何时候创建一个版本,无论是按计划还是响应另一个动作。
例如,测试人员alice可能想要一个基于最新更改的应用程序版本,以查看程序错误是否已被修复,她可以自己启动版本创建。这不仅使资源能够自由地执行代表性的任务,而且给予团队在个人和团队过程之外更多的控制。还可以将持续集成任务绑定在一起,将一些任务交给更深层次的线程。学习持续集成如何工作是对自动化的一个很好的介绍,不需要太强调编程。
使用持续集成的一种是运行端到端的测试套件。这些测试通常需要运行几分钟甚至几小时。我使用持续集成来加速和减速测试机器,并在那些测试机器上启动测试。与在您自己的机器上运行这些测试相比,这是一个很大的帮助,因为它允许测试开发人员在测试运行时做其他工作。持续集成的服务器控制这些任务的所有方面。
持续集成服务的一些常见示例是开源工具jenkins、基于云的travisci和专有工具bamboo,但这些是其他的。更低级的技术是使用像克隆或windows任务分配器这样的工具在单台机器上自动执行任务。
ci独立于开发软件的爱好之外的编程,是测试真正能增值的地方。
现代源代码管理
我需要首先指出我热爱源代码。写代码的时候(或者博客!),它是一个非常有帮助的而不仅仅是一个工具。对于一个编码测试人员来说,就是一个无脑的人。即使一个测试没有编码,在测试软件的时候,也是用现代的方法做的。使用源代码控制可能是一个很大的好处。
我在现代方法中的意思是什么?我的意思是使用源代码控制来1)集成其他工具,例如ci服务器或问题,以及2)允许使用良好的团队过程习惯,例如基于主干的开发。良好的源代码控制允许个人分析变更并更深入地挖掘软件工程中正在发生的事情。
一个接近源代码历史和一些基本知识的测试可以询问应用程序中的哪些文件对它们进行了最多的开发工作?哪个文件变化最大?哪个更改的设置包含导致问题的代码?等等。这些信息有助于找到一些事件的触发节奏和暗示。
将源代码与ci集成会更加强大。问题追踪器中的事件可以在开发引起的变更中更新它们的状态。测试人员可以要求在输入代码中自动发现必要的需求,比如通过自动测试或者代码模式需求。可以通过更改代码来启动构建和部署。当源码控制用得好的时候,这种情况下有很多可能性,这是一个连续传输后隐含的概念。
例如,我在一个开源项目中工作,该项目使用基于云的集成服务来检查提交者提交的每个交付。在这个项目中,所有的自动化测试都被持续地集成和运行,并且所有为表单和格式添加的代码都被检查。如果一个提交导致了一个错误的测试,或者不符合设定的风格指南,那么这个提交就失败了,并且暗示着提交者和项目维护者将会修改这个提交。这有助于在项目历史中以统一的风格提供每个提交,并暗示提交者在添加或更新模块时可能会犯一些小错误。
源代码控制中的这些热点是git,它是免费和开放的代码,并且围绕它有一个健壮的生态系统。这也是一些其他方面,比如subversion,mercurial,微软t
如果是自学软件测试,关于软件测试需要学习哪些技能,可以参考下面的介绍。在学习了相关的知识和技能,加上适当的项目练习后,就可以尝试投简历面试了。掌握以下基本技能:
首先,了解软件测试的本质。这是最基本的理论知识,但很少有人能真正去关注它,去检验自己是否能完全站在用户的角度s的观点,严谨、全面、有条理、有逻辑地思考问题。首先,一些面试官会推断申请人s参加面试时从这个回答中了解和体验软件测试的指数。
熟悉常用的测试方法和类型。对于常见的测试类型,如白盒测试和黑盒测试,我们应该清楚它们的定义和测试原理。白盒测试不需要我们自己去摸,但是了解基本概念以及其他测试类型在不同项目环境下的应用场景就好了,比如可接受性测试、alpha测试、beta测试、接口测试、文档测试、安装测试、本地化测试、国际化测试等。有些并不常用,但在一些公司中还是会不可避免的出现笔试试题。
理解软件生命周期和软件测试过程的概念。比如,面试中最常被问到的一个问题是:你经历过的测试过程是怎样的?或者你的bug处理流程是怎样的,从需求到交付的不同阶段,测试人员扮演什么角色?具体流程可以参考一些基础的专业书籍来介绍,但不能被观念固化,要接触不同类型的项目,了解测试流程的灵活运用。
熟悉操作系统原理,计算机专业毕业的同学应该对操作系统原理印象深刻。而转行或者其他交叉学科的测试人员,则需要在业余时间阅读操作系统原理方面的书籍。因为操作系统是平台的基础,许多公司产品支持一些主流平台,如unix、mac、windows等。,学习操作系统知识如果只是看书容易枯燥,与实际应用结合的效果也不明显。你可以在一些网络平台上找到相关的视频学习。
测试环境建设
这是自学测试人员最容易忽略的一点。但如果是在实习测试的前期,就不会要求能够搭建环境。但是在自学的过程中,你可以掌握一些常用的技术,一方面可以在面试中加分,其次当你真正需要学习搭建环境的时候,你的理论知识也可以及时发挥作用。
以下是测试环境建设需要掌握的技术,这里只列举一部分。
了解专业术语,构建测试,跨平台,测试环境镜像,虚拟技术,linux基本操作,中间件等。这些术语就不一一解释了,但是每一个对提高自己的测试技能都起着关键的作用。比如学习中间件可以通过应用服务器管理和监控目标应用,与发现和分析问题密切相关。
掌握1-2个常见的开发模式,可以参考之前推文中的瀑布模式和敏捷模式。理解相应的测试模式是很重要的,比如与敏捷开发相关的敏捷测试模式。总的来说,游戏公司更多使用敏捷开发模式,了解它的迭发和增量开发。
了解合适的开发技术类似于构建一个测试环境。前期知道就够了,但后期也需要提高自己的专业技能。测试人员检查开发和生产的产品。如果他们不如果根本不知道产品是如何制造的,就无法实现全面质量管理,也就是测试覆盖和测试深度的问题。
最后是测试人员的基本功,如何设计测试用例,提交缺陷报告。
掌握设计测试用例的基本方法,如等价类、边界值、判断表、因果图、误猜等。法、情景法、过程分析法等。安装并试用1-2种缺陷管理工具,熟悉基本操作。一般面试都会问:什么项目管理工具,缺陷管理工具等。以前用过。
最后是用例编写和缺陷报告的书写格式,你要从一开始就给自己养成一个好习惯。跟随公司的内部书写格式规范。;不允许有一点点的懒惰,你在从事考验自己的工作,你应该更加注意一些细节。养成良好的习惯将使你终身受益。
#软件测试#