软件测试自动化的一些具体做法

原创 2004年10月10日 23:43:00
因为软件测试的工作量很大(40% 到60% 的总开发时间),而又有很大部分适于自动化,因此,测试的改进会对整个开发工作的质量、成本和周期带来非常显著的效果。

   首先,谈谈在测试自动化的情况下,带有图形界面的产品的测试用例的设计问题。因为图形界面的输出显示不是很容易做到测试结果自动化比较,所以一般的做法是把图形界面输出的部分单独建立测试用例,以手工运行。而所有非图形输出则可进行自动测试。

   下面举出一些测试自动化的例子:

1.测试个案(test case ,或称为测试用例)的生成

   用编程语言或更方便的剧本语言(script language 例如Perl等)写出短小的程序来产生大量的测试输入(包括输入数据与操作指令)。或同时也按一定的逻辑规律产生标准输出。输入与输出的文件名字按规定进行配对,以便控制自动化测试及结果核对的程序易于操作。

   这里提到测试个案的命名问题,如果在项目的文档设计中作统一规划的话,软件产品的需求与功能的命名就应该成为后继开发过程的中间产品的命名分类依据。这样,就会为文档管理和配置管理带来很大的方便,使整个产品的开发过程变得更有条理,更符合逻辑。任何新手半途加入到开发工作中也会更容易进入状态。

2.测试的执行写控制

   单元测试或集成测试可能多用单机运行。但对于系统测试或回归测试,就极有可能需要多台机在网络上同时运行。记住一个这样的原则,在开发过程中的任何时候,如果你需要等候测试的运行结果的话,那就是一个缩短开发时间的机会。

   对于单个的测试运行,挖潜的机会在测试的设置及开始运行和结果的对比及显示。有时候,需要反复修改程序,重新汇编和重新测试。这样,每一个循环的各种手工键入的设置与指令所花费的时间,加起来就非常可观。如果能利用make或类似的软件工具来帮助,就能节省大量的时间。

   对于系统测试或回归测试这类涉及大量测试个案运行的情况,挖潜的的机会除了利用软件工具来实现自动化之外,就是怎样充分利用一切硬件资源。往往,就算是在白天的工作时间内,每台计算机的负荷都没有被充分利用。能够把大量测试个案分配到各台机器上去同时运行,就能节省大量的时间。另外,把大量的系统测试及回归测试安排到夜间及周末运行,更能提高效率。

   如果不购买商品化的工具的话,应当遵从正规的软件开发要求来开发出好的软件测试自动化工具。在实践中,许多企业自行开发的自动化工具都是利用一些现成的软件工具再加上自己写的程序而组成的。这些自己开发的工具完全是为本企业量身定做的,因此可用性非常强。同时,也能根据需要随时进行改进,而不必受制于人。当然,这就要求有一定的人力的投入。

   在设计软件自动测试工具的时候,路径(path)控制是一个非常重要的功能。理想的使用情况是:这个工具可以在任何一个路径位置上运行,可以到任何路径位置去取得测试用例,同时也可以把测试的结果输出放到任何的路径位置上去。这样的设计,可以使不同的测试运行能够使用同一组测试用例而不至于互相干扰,也可以灵活使用硬盘的空间,并且使备份保存工作易于控制。

   同时,软件自动测试工具必须能够有办法方便地选择测试用例库中的全部或部分来运行,也必须能够自由地选择被测试的产品或中间产品采作为测试对象。

3.测试结果与标准输出的对比

   在设计测试用例的时候,必须考虑到怎样才能够易于对此测试结果和标准输出。输出数据量的多少及数据格式对比较的速度有直接影响。而另一方面,也必须考虑到输出数据与测试用例的测试目标的逻辑对应性及易读性,这将会大大有利于分析测试所发现的不吻合,也有利于测试用例的维护。

   许多时候,要写一些特殊的软件来执行测试结果与标准输出的对比工作,因为可能有部分的输出内容是不能直接对比的(比如,对运行的日期时间的记录,对运行的路径的记录,以及测试对象的版本数据等),就要用程序进行处理。

4.不吻合的测试结果的分析、分类、记录和通报

   上一点所谈到的,用于对测试结果与标准输出进行对比的特殊软件,往往也同时担任对不吻合的测试结果进行分析、分类、记录和通报的任务。

   “分析”是找出不吻合的地方并指出错误的可能起因。“分类”包括各种统计上的分项,例如,对应的源程序的位置,错误的严重级别(提示、警告、非失效性错误、失效性错误;或别的分类方法),新发现的还是已有记录的错误,等等。“记录”,是按分类存档。“通报”,是主动地对测试的运行者及测试用例的“负责人”通报出错的信息。

   这里提到测试用例的“负责人”的概念。是用以指定一个测试用例运行时发现的缺陷,由哪一个开发人员负责分析(有时是另外的开发人员引进的缺陷而导致的错误)及修复。在设立测试用例库时,各用例均应有指定的负责人。

   最直接的通报方法是由自动测试软件发出电子邮件给测试运行者及测试用例负责人。邮件内容的详细程度可根据需要灵活决定。

5.总测试状况的统计,报表的产生

   这些都是自动测试工具所应有的功能。目的是提高过程管理的质量,同时节省用于产生统计数据的时间。

   产生出来的统计报表,最好是存放到一个约定的路径位置,以便任何有关人员都知道怎样查阅。同时,可按需要用电子邮件向适当的对象(如项目经理,测试经理和质量保证经理)寄出统计报表。

6.自动测试与开发中产品每日构建(build )的配合

   自动测试应该是整个开发过程中的一个有机部分。自动测试要依靠配置管理来提供良好的运行的环境,同时它必须要与开发中的软件的构建紧密配合。

   在开发中的产品达到一定程度的时候,就应该开始进行每日构建和测试。这种做法能使软件的开发状态得到频繁的更新,以及及早发现设计和集成的缺陷。

   为了充分利用时间与设备资源,下班之后进行自动的软件构建,紧接着进行自动测试(这里多数指的是系统测试或回归测试),是一个非常行之有效的方法。如果安排得好,到第二天上班时,测试结果就已经在各人的电子邮箱里面面了,等待着新的一天的开发工作。

软件测试自动化的一些具体做法

软件测试自动化的一些具体做法        作者在上篇文章略微谈到了软件测试的自动化,但并没有把本文的内容也一起写进去。原因主要是希望读者先努力考虑在自己的企业或项目内,可以有一些怎么样的做法,而不会...
  • kxhu126028
  • kxhu126028
  • 2005年03月12日 18:28
  • 1380

闲聊软件测试自动化(1):测试自动化的好处我们知道多少?

笔者按: 在学生时代,参与过一些软件项目,也开发过一些模块,但对软件测试几乎一片空白、没有任何概念。进入工业界后,有幸在软件测试部门工作近两年。在实践中,深深体会到软件测试之于软件质量的重要性。测试自...
  • zjuxsl
  • zjuxsl
  • 2017年08月09日 16:43
  • 231

TCL、Python和软件测试自动化

这本书的作者名字好熟悉啊
  • jearmy
  • jearmy
  • 2016年11月03日 13:06
  • 387

做好软件测试的一些关键点

1.测试人员必须经过测试基础知识和理论的相关培训。2.测试人员必须熟悉系统功能和业务。3.测试必须事先要有计划,而且测试方案要和整个项目计划协调好4.必须事先编写测试用例,测试执行阶段必须根据测试用例...
  • Rzhghost
  • Rzhghost
  • 2006年07月07日 09:40
  • 1389

软件测试必读书籍

 https://www.douban.com/doulist/264611/ 来自:豆瓣读书 模糊测试——强制发掘安全漏洞的利器 7.3 (15人评价) 作者...
  • u010098159
  • u010098159
  • 2016年03月25日 12:15
  • 1043

软件测试笔记(一)

软件质量的定义CMM对软件质量的定义包括: 一个系统、组件或过程符合特定需求的程度; 一个系统、组件或过程符合客户或用户的要求期望。 概括地说,软件质量就是“软件与明确、隐含定义的需求相一致的程度”。...
  • chenmin_2014
  • chenmin_2014
  • 2017年03月06日 21:10
  • 309

《软件测试》 自动化测试学习笔记

《软件测试》 自动化测试学习笔记(红字部分是我自己的理解)参考资料:《软件测试》第14章自动测试和测试工具一。工具和自动化的主要属性1。速度2。效率(测试人员可以做别的测试任务)3。准确度和精确度(前...
  • szstc
  • szstc
  • 2007年05月25日 14:06
  • 489

我的第一次软件测试成果展示

1 知识总结 1.1软件测试管理基本流程   软件测试是软件开发过程中的一个重要组成部分,是贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早地发现在软件...
  • Wisteria_queen
  • Wisteria_queen
  • 2015年09月26日 17:27
  • 513

软件测试_JMeter自动化测试工具1_JMeter简介

JMeter的简介 可以肯定的是,JMeter至少符合以下几条自动测试标准: 零购置成本--直接从http://jakarta.apache.org/site/downloads/downlo...
  • zh70829287
  • zh70829287
  • 2016年01月13日 20:27
  • 2105

软件测试员这些坑一定要记住了,不要再往里面掉了

软件测试干了几年,项目一个接着一个,一路从一个坑跳入另一个坑,有些是开发问题,一些是测试本人问题,大家在测试过程中踩过哪些坑尼? 1.自以为了解业务逻辑,实际浮于表面 ...
  • zhusongziye
  • zhusongziye
  • 2018年01月19日 19:33
  • 59
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:软件测试自动化的一些具体做法
举报原因:
原因补充:

(最多只允许输入30个字)