关于自动化测试的前期发展历史及未来发展趋势
今天的软件市场完全以消费者为导向,为了保持相关性,产品必须处于不断的准备发版状态。面对不断变化的消费者品味,企业如何确保这一点?自动化测试在其中发挥了重要作用,使测试人员更多地关注维护测试计划并确保测试覆盖全面。本文借此总结一下自动化测试概念、换代历史和未来发展趋势。
自动化测试的概念
广义上来讲,自动化包括一切通过工具(程序)的方式来代替或辅助手工测试的行为都可以看做自动化,包括性能测试工具(loadrunner、jmeter),或自己所写的一段程序,用于生成1到100个测试数据。狭义上来讲,通工具记录或编写脚本的方式模拟手工测试的过程,通过回放或运行脚本来执行测试用例,从而代替人工对系统的功能进行验证。我们更普遍的认识把“自动化测试”看做“ 基于产品或项目UI层的自动化测试”。
自动化测试的更新换代(发展史)
软件的自动化测试在过去一段时间中有长足的进步。每个世代的产品都成功解决了某些重要的挑战,但是同时也引进了不同的问题等待解决。
第一代的自动化测试大概在15年前开始,透过硬件的方式录制键盘的输入并播放,但缺少检查点(checkpoint)的功能,而且测试脚本很难维护。
第二代的自动化测试则大约在10年前开始的,这时已经由硬件转变成透过软件录制/播放(capture/playback)的方式产生测试脚本(), 并且也增加了检查点的功能,可以对软件做验证,测试的范围也比硬件方式的自动化方式大了许多。比较大的问题是测试脚本也是一种程序语言,所以测试人员也需 要懂程序语言,换句话说就是要会写程序。而且当软件有变动时,测试脚本也需要同步更新,这对测试人员来说是一大挑战,测试人员常常就是整个测试脚本再重新 录制一遍。
在2001年开始了第三代的自动化测试称为「测试框架(test framework)」,主要是把测试脚本给抽象化(abstraction)(注:如Keyword-Driven Test),让非技术人员(如系统分析师、使用者等)即使不懂测试脚本,不会写程序的情况下,也可以使用自动化测试工具建立自动化测试个案。
第四代Mercury Business Process Testing:专注于业务需求的自动化测试。
随着测试仪器和测试技术的不断提高,自动化测试技术也经历了不断的完善、提高和发展的历程。
自动化测试发展趋势预测
1、测试任务复杂、工作量大,对侧试系统的功能、性能提出更高的要求
有些大规模或超大规模集成电此,每个单片上有成千上万的元件,电路的结构很复杂,需测试参数很多。其中有些集成电路和测试,还需在复杂定时条件下加入多种输人信号,通过有限的端子在规定的时间内进行快速测试,这些若采用人工测试不仅费时、费事,而且无法满足测试要求。若采用自动}}试系统,利用计算机控制,可达到实时控制、逻辑判断、记忆存储、运算处理。利用事先编好的程序快速准确的进行操作,可以自动切换测试点和进行重复测试,容易适应测试内容复杂,工作量大的要求。
2、测试速度快、精度高,测量准确度高
在传统人工测试中,一般只能先取得测量数据,再经人工分析,根据分析结果去调整或改进生产。现代化的生产往往要求实时检测自适应处理。在自动测试系统中,用计算机控制可以自动校准、自动调整测试点,自动切换量程和濒段,自动记录和处理数据,测试速度比人工测试快几十到几百倍。只有自动测试才能提供足够快的速度进行实时测量,实时处理、实时控制,使测试、分析和测试结果的应用融为一体。要保证测量精度,必须提高测量速度,才能保证多次测量真正处于相同条件,自动测试的高速度为多次测量及平均误差处理提供了条件。
随着科学技术的发展,各个领域对准确度要求越来越高。在一些情况下,如果误差超过一定范围,测量将毫无意义。众所周知,除人为误差外,测量误差主要有系统误差和随机误差两大类。系统误差是测量条件改变时按确定规律变化的误差。自动测试系统可将这种误差存储起来,在测试中加以修正。还可以通过自动校准克服某些系统误差的影响。另一方面,随着速度的提高,可进行多次测量、减少随机误差。
3、长期进行定时或不间断测试
为了发现偶然出现的情况或间歇故障,或某些不定期的客观现象,就要长期进行定时测试,才能及时发现问题,解决问题。例如对频稳度、品体管老化实脸等类似情况的测试,若用人工测试,不但繁琐枯操,难于严格按规定执行。在自动测试中,利用计算机定时电路按时开启测试程序,对于连续测试或监测的场合。可在循环程序中进行,对于需作出逻辑和数据处理的场合,可加人条件转移、中断处理,使测试既严格准确又灵活方便。
4、危险或测试人员难于进入的场地的测试
随着人类探索领域的扩展,要求测试的范围也在不断扩大,有些具有一定的危险性或有损人身健康的场合,测试人员不能进人现场。如核爆炸现场,就可利用自动测试取得结果。
5、延长测试设备本身寿命
从测试仪器本身来讲,随着计算机技术的发展,智能化程度和数据处理能力提高。对于高档仪表,其价格也比较昂贵,从保护其前面板,延长使用寿命的角度也应采用自动测试,提高测试数据的准确度.,对于不熟悉仪器仪表的操作人员,可以在计算机的提示下完成操作,减少由于人为因素造成的损坏。
客观的需求是科学技术发展的最大动力,正是上述迫切需要促进自动测试系统的产生和发展。