软件测试工具有哪些?

想知道学习软件测试必须了解哪些自动化工具吗?

软件测试工具有哪些?


持续的集成服务
过去十年来在软件开发领域到来的自动化一个最大的变化是任务自动化 。在过去,像构建一个应用的特殊版本,创建文档,或者更新bug报告的状态是人为的 。一些团队甚至贡献为了 启动一个版本而负责的"创建人"责任 。像这些人为的任务(或者是紧紧地绑定给个人或机器)是消耗时间的,并且创建来为了避免瓶颈,比如创建人占据私人的一天并阻碍新版本被完成 。
幸运的是,持续集成(CI)工具通过允许任务被标准化和自动化来挽救 。持续集成服务重要地安排和执行任务,一个规则的台式电脑能做的任务并且让这些任务在目标机器上执行而不是它自己 。回到创建版本的例子,取代让鲍勃为手工在他的机器上创建版本负责,一个持续集成服务能被集成去选择一个目标机器并且在那台机器上执行版本 。不仅使鲍勃不需要身体上在那台版本机器出现,而且能在任意时刻发生版本创建,不管是已安排的或者是为了响应另一个动作 。
举个例子,测试者爱丽丝可能想要一个基于最新改变的应用程序版本去看一个程序错误是否被修复,而且她能自己发起版本创建 。这个不仅使资源从做代表性任务中自由运作起来,而且给团队在个人以外和团队流程上给予了更多的控制 。你也可以把持续集成任务绑定一起给更深的线程一些任务 。学习一个持续集成如何工作是对没有放很多编程的重点在自动化上很好的引子 。
使用持续集成的一个途径是跑端到端的测试套装 。这些测试经常需要跑数分钟甚至数小时 。我使用过持续集成去自旋向上和自旋向下测试机器并且发起在那些测试机器上的测试 。相对于在你自己机器上跑这些测试这是一个很大的帮助,因为它允许一个测试开发者当测试到处跑的时候去做其他的工作 。持续集成的服务器控制着所有这些任务的方方面面 。
一些持续集成服务的普通例子是开源工具Jenkins,基于云的Travis CI,和专属工具Bamboo,但是这些也是其他的一些 。甚至更低技术是使用一个像克隆或者windows任务分配者的工具为了在单一机器上去使任务自动化 。
CI对于开发软件爱好之外的编程是独立的,并且它是一个测试能确实增加价值的一个地方 。
现代源码控制
我首先需要指出我爱源码 。当编写代码(或者博客!)时,它是一个很有帮助而不仅是工具 。对于一个编码的测试员,它是一个无需脑力者 。甚至即使一个测试不编码,当测试软件时以现代方法使用源码控制可能是一个大的利益 。
在现代方法中"我"的意思是什么?"我"的意思是使用源码控制1)集成其他工具,比如CI服务器或者问题追踪器,并且2)允许使用好的团队流程习惯,比如基于干线的开发 。好的源码控制允许个人去分析变化和更深地挖掘软件工程正在发生什么 。
一个接近源码历史和一些基本学习的测试能问出像"在应用里的哪个文件有最多的开发在它们上面工作?""哪个文件有最大的变化?""哪个变化的设置包含引起问题的代码?"等待 。这个信息有助于找到步调且暗示一些事件的引发 。
用CI集成源代码甚至能更加有力 。在问题跟踪者的事件能使它们的状态在由开发引起的变化中更新 。测试者能要求必要的需求在输入的代码被自动查找出来,比如通过自动测试或者代码模式需求 。建构和部署能被改代码发起 。当源码控制被很好使用,在这种情况下有很多种可能,这是一个在持续传递后隐含的概念 。

推荐阅读