因为软件测试的工作量很大(40% 到60% 的总开发时间),而又有很大部分适于自动化,因此,测试的改进会对整个开发工作的质量、成本和周期带来非常显著的效果。
首先,谈谈在测试自动化的情况下,带有图形界面的产品的测试用例的设计问题。因为图形界面的输出显示不是很容易做到测试结果自动化比较,所以一般的做法是把图形界面输出的部分单独建立测试用例,以手工运行。而所有非图形输出则可进行自动测试。
下面举出一些测试自动化的例子:
1.测试个案(test case ,或称为测试用例)的生成
用编程语言或更方便的剧本语言(script language 例如Perl等)写出短小的程序来产生大量的测试输入(包括输入数据与操作指令)。或同时也按一定的逻辑规律产生标准输出。输入与输出的文件名字按规定进行配对,以便控制自动化测试及结果核对的程序易于操作。
这里提到测试个案的命名问题,如果在项目的文档设计中作统一规划的话,软件产品的需求与功能的命名就应该成为后继开发过程的中间产品的命名分类依据。这样,就会为文档管理和配置管理带来很大的方便,使整个产品的开发过程变得更有条理,更符合逻辑。任何新手半途加入到开发工作中也会更容易进入状态。
2.测试的执行写控制
单元测试或集成测试可能多用单机运行。但对于系统测试或回归测试,就极有可能需要多台机在网络上同时运行。记住一个这样的原则,在开发过程中的任何时候,如果你需要等候测试的运行结果的话,那就是一个缩短开发时间的机会。
对于单个的测试运行,挖潜的机会在测试的设置及开始运行和结果的对比及显示。有时候,需要反复修改程序,重新汇编和重新测试。这样,每一个循环的各种手工键入的设置与指令所花费的时间,加起来就非常可观。如果能利用make或类似的软件工具来帮助,就能节省大量的时间。
对于系统测试或回归测试这类涉及大量测试个案运行的情况,挖潜的的机会除了利用软件工具来实现自动化之外,就是怎样充分利用一切硬件资源。往往,就算是在白天的工作时间内,每台计算机的负荷都没有被充分利用。能够把大量测试个案分配到各台机器上去同时运行,就能节省大量的时间。另外,把大量的系统测试及回归测试安排到夜间及周末运行,更能提高效率。
如果不购买商品化的工具的话,应当遵从正规的软件开发要求来开发出好的软件测试自动化工具。在实践中,许多企业自行开发的自动化工具都是利用一些现成的软件工具再加上自己写的程序而组成的。这些自己开发的工具完全是为本企业量身定做的,因此可用性非常强。同时,也能根据需要随时进行改进,而不必受制于人。当然,这就要求有一定的人力的投入。
在设计软件自动测试工具的时候,路径(path)控制是一个非常重要的功能。理想的使用情况是:这个工具可以在任何一个路径位置上运行,可以到任何路径位置去取得测试用例,同时也可以把测试的结果输出放到任何的路径位置上去。这样的设计,可以使不同的测试运行能够使用同一组测试用例而不至于互相干扰,也可以灵活使用硬盘的空间,并且使备份保存工作易于控制。
同时,软件自动测试工具必须能够有办法方便地选择测试用例库中的全部或部分来运行,也必须能够自由地选择被测试的产品或中间产品采作为测试对象。
3.测试结果与标准输出的对比
在设计测试用例的时候,必须考虑到怎样才能够易于对此测试结果和标准输出。输出数据量的多少及数据格式对比较的速度有直接影响。而另一方面,也必须考虑到输出数据与测试用例的测试目标的逻辑对应性及易读性,这将会大大有利于分析测试所发现的不吻合,也有利于测试用例的维护。
许多时候,要写一些特殊的软件来执行测试结果与标准输出的对比工作,因为可能有部分的输出内容是不能直接对比的(比如,对运行的日期时间的记录,对运行的路径的记录,以及测试对象的版本数据等),就要用程序进行处理。
4.不吻合的测试结果的分析、分类、记录和通报
上一点所谈到的,用于对测试结果与标准输出进行对比的特殊软件,往往也同时担任对不吻合的测试结果进行分析、分类、记录和通报的任务。
“分析”是找出不吻合的地方并指出错误的可能起因。“分类”包括各种统计上的分项,例如,对应的源程序的位置,错误的严重级别(提示、警告、非失效性错误、失效性错误;或别的分类方法),新发现的还是已有记录的错误,等等。“记录”,是按分类存档。“通报”,是主动地对测试的运行者及测试用例的“负责人”通报出错的信息。
这里提到测试用例的“负责人”的概念。是用以指定一个测试用例运行时发现的缺陷,由哪一个开发人员负责分析(有时是另外的开发人员引进的缺陷而导致的错误)及修复。在设立测试用例库时,各用例均应有指定的负责人。
最直接的通报方法是由自动测试软件发出电子邮件给测试运行者及测试用例负责人。邮件内容的详细程度可根据需要灵活决定。
5.总测试状况的统计,报表的产生
这些都是自动测试工具所应有的功能。目的是提高过程管理的质量,同时节省用于产生统计数据的时间。
产生出来的统计报表,最好是存放到一个约定的路径位置,以便任何有关人员都知道怎样查阅。同时,可按需要用电子邮件向适当的对象(如项目经理,测试经理和质量保证经理)寄出统计报表。
6.自动测试与开发中产品每日构建(build )的配合
自动测试应该是整个开发过程中的一个有机部分。自动测试要依靠配置管理来提供良好的运行的环境,同时它必须要与开发中的软件的构建紧密配合。
在开发中的产品达到一定程度的时候,就应该开始进行每日构建和测试。这种做法能使软件的开发状态得到频繁的更新,以及及早发现设计和集成的缺陷。
为了充分利用时间与设备资源,下班之后进行自动的软件构建,紧接着进行自动测试(这里多数指的是系统测试或回归测试),是一个非常行之有效的方法。如果安排得好,到第二天上班时,测试结果就已经在各人的电子邮箱里面面了,等待着新的一天的开发工作。 |
相关推荐
书中以实际的案例为背景,结合实际经验,详细讲述了软件测试自动化的实际设计与实施方法。书中的内容涵盖了从计划、实施到管理的整个自动化测试流程,强调了在自动化测试项目中应考虑的各个方面,例如项目计划、文档...
《高效软件测试自动化》一书通过详细介绍一种可重用的自动化测试工具的创建过程,为读者提供了深入理解和实践自动化测试的方法。 #### 二、软件测试技术概述 本书开篇首先介绍了软件测试的基本概念和技术,包括但不...
软件测试自动化是软件开发过程中的一个重要环节,它通过使用特定的工具和技术来自动执行测试用例,以提高测试效率、准确性及覆盖率,同时节约资源并减少人为错误。本书《软件测试自动化》旨在全面介绍软件测试自动化...
### 高效软件测试自动化:关键技术与实践 #### 引言 随着软件开发周期的不断缩短以及产品质量要求的日益提高,软件测试自动化已成为确保软件质量不可或缺的一部分。《高效软件测试自动化:开发自动化GUI测试工具》...
### 软件测试自动化基础知识点详析 #### 自动化测试基础概览 软件测试自动化,作为现代软件工程中的重要组成部分,旨在通过利用软件工具和脚本来替代手动执行的测试活动,从而提升测试效率、准确性和覆盖率。自动...
这本书详细介绍了.NET软件测试自动化的重要概念、工具和方法论,对于希望提升.NET环境下测试效率和质量的专业人士来说,是一本非常有价值的参考书籍。 首先,书中阐述了软件测试自动化的重要性和它在软件开发周期中...
### 软件测试自动化培训...通过以上概述可以看出,软件测试自动化不仅涵盖了自动化测试的基础知识,还包括了测试设计与实施的具体步骤,以及自动化测试工具的关键特性。这对于提高软件质量、优化测试流程具有重要意义。
### 微软软件测试自动化:深入解析与实践 #### 一、软件测试的双重理念及其在微软的应用 软件测试在IT行业中占据着至关重要的地位,它不仅确保了软件产品的质量和可靠性,也是软件开发流程中不可或缺的一环。在...
在IT行业中,软件测试自动化是提高效率和质量的关键步骤,特别是在大规模项目中。"软件测试自动化工程"这一主题涵盖了多种技术,包括Selenium、Java、TestNG和Maven,这些都是构建高效自动化测试框架的重要组成部分...
标题和描述中提到的“软件测试”和“自动化测试”是IT行业中两个关键的领域,它们对于确保软件产品的质量和稳定性至关重要。以下是对这些主题的详细解释: **软件测试** 是软件开发过程中的一个阶段,目的是发现并...
《.NET软件测试自动化之道》是一本专注于.NET平台下软件测试自动化的专业著作。本书基于C#语言编写,对.NET环境下自动化测试的理论与实践进行了全面的阐述。在当前软件开发过程中,自动化测试已经成为提高测试效率和...
### 软件测试自动化技术白皮书关键知识点解析 #### 一、软件测试自动化的重要性与挑战 在软件开发过程中,软件测试自动化是一项至关重要的环节。它能够显著提高测试效率,减少人工错误,并且能够在短时间内完成大...
软件测试技术的研究主要聚焦在确保软件质量的关键环节,包括测试的目的、分类以及工作流程。软件测试的首要目标是对软件在投入实际使用前进行全面检查,确保其满足预定的需求和规格,找出潜在的错误和缺陷。这一过程...
《软件测试自动化》是由Daniel J. Mosley和Bruce A. Posey两位软件测试专家共同撰写的书籍,该书详细地介绍了自动化测试的理论与实践,提供了实用的指导和具体案例分析,具有很高的参考价值。书中探讨了自动化测试的...
下面将详细讨论微软的软件测试自动化策略、自动化测试用例设计、测试用例的管理和运行控制,以及如何提升自动化测试的效率。 首先,微软的软件测试基于两种经典理念:一是验证软件是“工作的”,这强调了测试的积极...