文章

如何保证质量?

现在,我依然能碰到一些敏捷开发者和团队,他们在项目中还未采用自动化实践,比如微测试,自动化集成测试和集成测试。这种现象存在主要是因为三种原因:

1.开发者没有看到它的价值

一些开发者技术好经验足,他们很少出错,自动化测试对他们来说是个额外的负担。当一些初级开发者在忙着改bug时,他们往往在做更重要的事,比如把他们的技术应用到系统架构上。如果团队中有这样一批开发者的话是很难实施自动化测试的。 Read more

关于测试和测试人员

本文的作者Sriram Krishnan是一名程序员,曾在Yahoo和微软工作过,开发过很多软件,曾被纽约时报报道,写过一本书,本文是他的一篇博客。

这些年来,我对测试工作、测试人员,以及整个软件质量管理体系形成了一些明确的观点。受一篇关于Facebook的测试的帖子的启发,我想把这些写下来,用以拿给人看。有些观点是有争议的。事实上,即使在交谈中稍微表现出这样的看法,都会招致人们的鄙视。

大多数的开发团队并不需要一个独立的测试角色。即使有一个,他的所有的开发时间比上所有的测试时间应该 >20:1。证据呢?光看看一些从古至今最成功的软件开发团队就知道了。不论是当今的Facebook,还是30年前最初的NT团队,很多伟大的产品都是出自没有或很少测试人员的团队。 Read more

如何在Scrum项目中引入自动化测试

实施Scrum开发过程充满着挑战—尤其对于从零开始做产品的团队来说。在每个增量冲刺中,你不仅要新增功能,还要确保已实现的功能依然可用。这时,拥有一个可覆盖系统测试和集成测试的自动化框架,可为团队增添不少火力。它不仅能为回归测试增添一层保障,还能释放出珍贵的开发和测试人员时间,让他们花更多的精力在擅长的领域。

在这篇文章中,我想分享我们团队在最近项目中成功应用的一些自动化测试方法–事实证明,这些成果是一项巨大的资产。付出的努力将会在未来得到很多的回报。现在,我们每天能在类似线上的测试环境下,构建,集成,测试和发布同线上一样高质量的产品应用。通过相互分享好的和坏的经验,我们学到新的知识并且加以实践,把事情做得更好。 Read more

软件自动化测试工具介绍

一、功能测试工具

1、QTP测试工具
全名HP QuickTest Professional software ,最新的版本为HP QuickTest Professional 11.0
QTP是quicktest Professional的简称,是一种自动测试工具。使用QTP的目的是想用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。因此你在测试前要考虑好如何对应用程序进行测试,例如要测试那些功能、操作步骤、输入数据和期望的输出数据等
QuickTest针对的是GUI应用程序,包括传统的Windows应用程序,以及现在越来越流行的Web应用。它可以覆盖绝大多数的软件开发技术,简单高效,并具备测试用例可重用的特点。其中包括:创建测试、插入检查点、检验数据、增强测试、运行测试、分析结果和维护测试等方面。 Read more

基于界面自动化测试框架的4个发展阶段

我们知道基于界面的软件自动化测试经历了4个发展阶段。

(1)无框架阶段(即简单的录制/回放)
  在早期,自动化测试并没有框架这一说,自动化测试只是简单的录制/回放,由工具录制并记录操作的过 程或数据,并形成脚本。通过对脚本的回放重复人工操作的过程。这种模式脚本与数据混合在一起。站在软件开发的角度来看,这种开发耦合度高,我们知道软件工 程的思想,是高内聚低耦合。而简单的录制回放完全违背了这一思想,简单的录制回放,重用性非常低,同时维护成本非常高。
Read more

如何进行测试自动化的成本估算

对于自动化测试团队而言,容易犯的一个典型的错误是:没有选择恰当的测试用例来实现自动化。
大部分测试自动化项 目失败的原因主要归咎于被测试应用程序的快速变化、不恰当的测试用例、不可靠的框架、脚本编程的问题。分析这些问题的根源,我们可以看到,自动化测试必须 分阶段逐步开展,而不能局限在某个阶段完成自动化测试。因此,建议自动化测试从选择那些重要的、合适的测试用例开始,然后慢慢地扩展到其他方面。这样会带来较低的维护成本,但是实现更重要的业务价值。
那么如何选择合适的测试用例呢? Read more

软件测试方法比较

1         白盒测试

  优点:

  ● 迫使测试人员去思考软件的实现;

  ● 可以检测代码中的每条分支和路径;

  ● 揭示隐藏在代码中的错误;

  ● 对代码的测试比较彻底;

  ● 最优化。 Read more

如何正确理解自动化测试技术

谈到自动化测试,一般就会提到测试工具。许多人觉得使用了一、两个测试工具就是实现了测试自动化,这种理解是不对的,至少是片面的。的确,测试工具的使用是自动化测试的一部分工作,但“用测试工具进行测试”不等于“自动化测试”。

       那什么是“自动化测试”? 

       半自动化测试过程,算不算自动化测试?

       是否可以为“自动化测试”给出如下定义?   

       以自动化的方式完成测试?   

        测试过程的自动化?

  将手工测试的过程变成了自动化测试的过程?

  摆脱手工测试的各种途径和方法?

  自动化为测试而存在的,所以自动化测试的真正含义可以理解为“一切可以由测试是相对手计算机系统自动完成的测试任务都已经由计算机系统或软件工具、程序来承担并自动执行”。它包含了下列3层含义:

  “一切”,不仅仅指测试执行的工作——对被测试的对象进行验证,还包括测试的其它工作,如缺陷管理、测试管理、环境安装、设置和维护等。

  “可以”,意味着某些工作无法由系统自动完成,如脚本的开发、测试用例的设计,需要创造性,其工作需要手工处理。

  即使由系统进行自动化测试,还少不了人的干预,包括事先安排自动化测试任务、测试结果分析、调试测试脚本等。

  严格意义上,“自动化测试(Automated Testing)”不等于“测试自动化(Test Automation)”。自动化测试,模拟手工测试步骤,通过执行程序语言编制的测试脚本自动地测试软件,自动地实施软件的单元测试、功能测试、负载测试或性能测试等。自动化测试集中体现在实际测试执行(test execution)的过程,也就是由手工逐个地运行测试用例的操作过程被测试工具自动执行的过程所代替。自动化测试,强调借助工具(不仅仅是工具,有时包括策略和工件)来完成测试的执行,也就是用工具来帮助或辅助测试,这个执行过程可能是全自动的,也可能是半自动的。  测试自动化的要求高得多,侧重说明将测试用自动化设计和实现的过程,即所有的测试工作都能有计算机系统自动完成,包括: Read more

自动化测试方案选择需要考虑的方面

Bob Galen在名为《Sizing up Automation Candidates – Selecting Which Tests,When To Automate Them,and Which To Take Off the Ticket Entirely》的文章中提到:采用什么样的自动化测试方案,需要考虑以下几个方面的因素:

  1、项目的影响:自动化测试能否帮助你的项目进度、覆盖率、风险,或者让开发更敏捷?

  2、复杂度:自动化是否容易实现,包括数据和其他环境的影响。

  3、时间:自动化测试的实现需要多少时间?

  4、早期需求和代码的稳定性:需求或早期的代码是否能证明是在范围内变化的?

  5、维护工作量:代码是否能长期保持相对稳定?功能特性是否会进化?

  6、覆盖率:自动化测试能否覆盖程序的关键特性和功能?

  7、资源:测试组是否拥有足够的人力资源、硬件资源和数据资源来运行自动化测试。

  8、自动化测试的执行:负责执行自动化测试的小组是否拥有足够的技能和时间去运行自动化测试