Totally Data-Driven Automated Testing
- 格式:doc
- 大小:104.50 KB
- 文档页数:9
ATE自动化测试系统是什么_ATE自动化测试系统介绍ATE自动化测试系统是一种用于进行自动化测试的软件工具。
它能够模拟人工操作,实现对软件系统、硬件设备或网络服务等的自动化测试。
它主要通过自动化脚本或测试用例来执行一系列的测试步骤,以验证被测试系统的正确性、可靠性和稳定性。
1.可重复性:ATE自动化测试系统能够准确地执行相同的测试步骤,确保测试结果的一致性。
它可以在不同的环境中重复运行,检测软件或硬件的稳定性。
2.高效性:ATE自动化测试系统能够在短时间内完成大量的测试任务,提高测试效率。
它可以同时执行多个测试用例,减少了人工测试的工作量,节省了时间和成本。
3.精确性:ATE自动化测试系统能够准确地模拟人工操作,执行测试步骤。
它能够判断测试结果是否符合预期,并生成详细的测试报告。
它可以捕获并记录系统中的错误,帮助开发人员进行问题定位和修复。
4.可扩展性:ATE自动化测试系统具有良好的可扩展性,可以根据需要添加新的测试用例或测试脚本。
它支持多种编程语言和测试框架,可以与其他测试工具或软件集成,提供更全面的测试功能。
1.提高测试效率:ATE自动化测试系统能够快速执行大量的测试用例,减少了人工测试的工作量,提高了测试效率。
2.提高测试覆盖率:ATE自动化测试系统能够覆盖更多的测试场景,执行更多的测试用例,提高了测试覆盖率。
3.提高测试准确性:ATE自动化测试系统能够准确地模拟人工操作,执行测试步骤。
它能够判断测试结果是否符合预期,并生成详细的测试报告,提高了测试准确性。
4.减少测试成本:ATE自动化测试系统减少了人工测试的工作量,节省了时间和成本。
它可以在非工作时间进行测试,提高了资源利用率。
以上是ATE自动化测试系统的介绍,它是一种用于进行自动化测试的软件工具,能够提高测试效率、测试覆盖率和测试准确性,降低测试成本。
阿尔法测试类似于可用性测试(在软件领域称之为软件测试),通常由内部测试人员完成。
在极为少见的情况下,阿尔法测试是由客户过外部人员完成的。
阿尔法测试发布的版本被称之为阿尔法版本(在软件领域常被称之为DAT 开发测试环境应用)。
阿尔法测试的目的是评价软件产品的FLURPS(即功能、局域化、可用性、可靠性、性能和支持)。
尤其注重产品的界面和特色。
阿尔法测试可以从软件产品编码结束之时开始,或在模块(子系统)测试完成之后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。
有关的“测试用例”应该在阿尔法测试前准备。
第103
期:阿尔法测试。
如何进行持续集成和自动化测试持续集成(Continuous Integration)和自动化测试(Automated Testing)是现代软件开发中非常重要的环节。
它们可以提高团队的效率,并保证软件质量。
本文将介绍如何进行持续集成和自动化测试,以及如何应用合适的工具和技术来实现。
一、持续集成的概念和原则持续集成是一种开发实践,要求开发者将代码频繁地集成到主干代码库中。
它的目的是通过尽早地发现和解决问题,最大限度地减少集成过程中的冲突和错误。
持续集成的原则包括:1. 尽早提交代码:开发者应该尽早地提交代码,不等到代码被积累起来再一次性提交。
2. 自动化构建:通过构建工具(如Maven、Gradle等)自动执行编译、测试和打包等任务。
3. 频繁集成:开发者应该频繁地将代码集成到主干代码库,最好是每天或每个工作任务结束后。
4. 快速反馈:持续集成需要快速反馈,通过自动化测试和构建过程来提供准确和及时的问题报告。
二、持续集成的步骤1. 版本控制:使用版本控制工具(如Git、SVN等)来管理代码,确保团队成员都使用相同的代码版本。
2. 自动化构建:使用构建工具来自动执行编译、测试和打包等任务。
常用的构建工具有Jenkins、Travis CI等。
3. 自动化测试:编写自动化测试脚本,覆盖功能测试、单元测试、集成测试等多个层次的测试。
常用的自动化测试框架有JUnit、TestNG 等。
4. 集成和部署:将代码集成到主干代码库,并自动部署到测试环境或生产环境中。
可以使用持续集成工具来实现自动集成和部署,如Jenkins、TeamCity等。
5. 快速反馈:通过自动化测试和构建过程提供快速反馈,及时发现和解决问题。
三、自动化测试的概念和类型自动化测试是使用脚本和工具来执行测试任务的过程,相比手动测试,它具有更高的效率和准确性。
常用的自动化测试类型包括:1. 单元测试:针对软件的最小可测试单元(如函数、方法)编写测试用例。
自动化测试中的持续集成与持续测试在软件开发领域,自动化测试已成为提高产品质量与开发效率的重要环节。
为了确保测试的准确性和效率,持续集成与持续测试成为了自动化测试中的核心概念。
本文将介绍什么是持续集成与持续测试,它们的意义以及如何在自动化测试中应用这些概念。
一、什么是持续集成与持续测试持续集成是一种软件开发实践方法,通过频繁地将代码集成到主干分支,使得团队成员能够更早地发现代码集成引起的问题,并且可以立即进行修复。
持续集成的目标是保持代码的稳定性和可靠性,同时提高软件开发团队的整体效率。
持续测试是持续集成的重要组成部分,它确保在频繁地集成代码的同时,测试也是连续进行的。
通过持续测试,可以在代码集成之后自动执行一系列测试用例,确保新添加的代码没有破坏系统的功能和稳定性。
持续测试的目标是提供即时反馈,减少测试延迟,并加速问题的解决。
二、持续集成与持续测试的意义1. 问题早发现:通过持续集成与持续测试,可以及早发现并解决代码集成引起的问题,避免问题扩散到整个系统,提高代码的稳定性和质量。
2. 自动化流程:持续集成与持续测试的实施需要构建自动化的流程,包括自动化构建、自动化测试用例执行等。
这有助于减少人工干预带来的错误,并加快软件发布的速度。
3. 可追溯性:持续集成与持续测试的每个过程都有详细的记录,可以追溯到具体的代码提交和测试结果。
这对于问题的排查和团队协作非常重要。
4. 增强团队合作:持续集成与持续测试要求团队成员频繁地合并代码和测试,这促进了团队的合作和沟通,提高了开发效率和整体质量。
5. 快速反馈:持续测试通过自动化的方式提供即时反馈,使得开发人员可以快速获知代码的质量和稳定性,促使及时的改进和修复。
三、在自动化测试中应用持续集成与持续测试1. 自动化构建:利用构建工具(如Jenkins)实现自动化构建,通过构建脚本将代码从版本控制系统中获取并编译。
每次代码提交后,都会触发自动化构建过程,确保代码的一致性和可编译性。
NEW AND NOW 26SAFETY & EMC No.1 2021泰尔完成5G 终端MIMO OTA 自动化测试认监委关于明确5G 移动用户终端CCC 认证要求的公告近日,泰尔终端实验室完成了国际首次基于3GPP 测试规范的FR1 MIMO OTA 端到端性能自动化联调测试,实现了5G 终端多天线吞吐量性能全自动化测试,显著提高测试效率,为MIMO OTA WI 项目及后续大规模行业摸底测试建立了良好的工程基础。
本次测试参照3GPP 最新标准要求,完成了三款不同品牌的商用5G 终端吞吐量测试,各终端之间多天线性能差异可达约8 dB。
测试对比了终端在各姿态及角度下的方向一致性,差异最大可达6 dB 以上,部分终端在特定角度下无法达到目标吞吐量。
随着我国5G FR1的商用,为了确保5G 多天线传输性能,开展基于标准认证的5G MIMO OTA 端到端吞吐量性能评估十分重要。
目前,3GPP 5G 终端多天线性能测试标准已于RAN#88次全会完成结项,并正式发布TR38.827 v16.0.0版本。
Rel-17阶段正在开展MIMO OTA WI 项目研究,预计将于2021年9月完成测试方法及限值制定,输出至3GPP 规范TS 38.151。
本次由泰尔终端实验室联合Keysight 和ETS-Lindgren 两家公司进行的基于最新标准的自动化测试将大大加速FR1 MIMO OTA 的工程化进程。
未来,泰尔终端实验室将按照3GPP 项目计划引领行业进行大规模比对测试,制定3GPP5G MIMO OTA 限值要求和我国通信行业标准限值要求,保障5G 用户高质量的网络体验,并向社会开放FR1 MIMO OTA 测试平台,为更多的5G 终端厂商研发及验证工作提供测试服务。
根据《第一批实施强制性产品认证的产品目录》(质检总局、认监委联合公告2001年第33号),5G 移动用户终端属于强制性产品认证(以下简称CCC 认证)范围。
accelerated tests名词解释
Accelerated tests(加速测试)是一种用于评估产品可靠性和寿命的测试方法。
这种测试方法通过在短时间内模拟产品在长时间使用过程中可能遇到的各种环境和应力条件,来推断产品的寿命和可靠性。
加速测试的原理是将产品暴露在高温、低温、高湿度、振动、电磁场等各种环境和应力条件下,模拟产品在实际使用中可能遇到的各种情况,比如高温会加速材料老化,振动会加速零部件磨损等。
通过观察产品在这些条件下的表现和损耗程度,来推断产品在实际使用中的寿命和可靠性。
加速测试可用于各种产品的可靠性评估,比如电子产品、汽车、航空航天设备、医疗设备等。
加速测试可以帮助厂商在产品上市前发现潜在的问题,进行改进和修正,从而提高产品的可靠性和寿命,减少售后维修和召回的成本。
自动化测试-提高测试效率的途径2007-05-25 16:48自动化测试-提高测试效率的途径长期以来,软件测试给人的一种印象是一门”手艺活”,就是跑跑开发者写出来的程序,点点鼠标之类,然后大喊一声,“哇,你这个有个错别字”。
实际上真正的测试并不是这样的。
在真正的测试中,手动操作的测试被称为Manual Testing,在整个测试流程中只占一小部分。
想想现在的商用程序都是那么庞大的,动辄几百万行几千万行代码,这么多的功能依靠于人手工的测试是不现实的而且是对人力资源的极大浪费。
因为这些简单的事情本来可以由程序来做,而且自动做。
而且有的事情靠人工也是干不了的,比如测一下某个程序打开关掉1000次会不会有内存泄漏。
让人干,非疯了不可。
因此开发和使用自动化测试软件是测试工作中很大的一部分。
让程序自动可以做的事情交给程序去做,这样才能提高测试的效率和产出。
在一个项目刚开始的时候,负责测试的人也知道自动化测试很重要,但是需要确定那些东西是需要自动化测试的那些东西是不需要自动化测试的。
需要确定哪些自动化测试的软件是现成的那些自动化测试工具是需要自己开发的。
因此在开始执行测试之前,在测试计划中就要对测试用例进行一个评估,将测试用例分成自动化和手工测试两类。
然后根据测试的内容选择对应的测试工具,或者自己开发。
在评估的过程当中一般依据这样的规则:可以自动化测试的:. 具有良好定义的测试策略和测试计划(知道要测试什么,知道什么时候测试). 对于自动化测试你拥有一个能够被识别的测试框架和候选者. 能够确保多个测试运行的构建策略. 多平台环境需要被测试. 每个版本都要测的. 拥有运行测试的硬件. 拥有关注在自动化过程上的资源等需要手工测试的:. 只需要执行一次或者执行次数相当少的测试. 自动化成本太高的测试. 易用性测试. 测试结果不确定的测试. ADhoc另外根据测试用例需要选择测试工具,现在在市场上确实也有很多自动测试软件。
自动化测试的设计模式和最佳实践自动化测试(Automated Testing)是软件开发中一个至关重要的环节,通过使用自动化测试工具和技术,可以有效提高测试效率、减少测试成本,并保证软件质量。
在实施自动化测试时,设计模式和最佳实践是关键,可以帮助测试团队达到更好的测试覆盖率和质量管理。
本文将介绍一些常用的自动化测试设计模式和最佳实践,以期为读者提供有价值的参考。
一、数据驱动测试(Data-Driven Testing)数据驱动测试是一种基于数据集合的测试方法,通过将测试数据与测试逻辑分离,实现对不同数据集合的重复测试。
在自动化测试中,数据驱动测试被广泛应用,它能够提高测试效率、发现异常和边界情况,并允许开发人员快速运行多个测试用例。
在实施数据驱动测试时,以下几点是值得注意的最佳实践:1. 选择合适的数据源:测试数据可以来自于外部文件(如Excel、CSV等)、数据库或者直接在代码中进行定义。
根据实际情况选择合适的数据源,并确保测试数据能够满足测试覆盖的需求。
2. 封装数据处理逻辑:处理测试数据的逻辑应尽量与测试脚本分离,可以定义单独的数据处理模块或函数,以便在将来的测试中重复使用,并提高维护性和可复用性。
3. 错误处理和日志记录:对于异常数据或错误数据的处理应该进行有效的处理和记录,以便于后续的问题分析和排查。
二、关键字驱动测试(Keyword-Driven Testing)关键字驱动测试是一种基于关键字的测试方法,通过定义和组合关键字来实现测试用例的执行和管理。
关键字可以是测试步骤、验证方法或者特定的测试操作。
关键字驱动测试具有灵活性和可维护性的优势,常见的最佳实践包括:1. 定义可扩展的关键字库:关键字库包含了测试所需的所有关键字及其实现细节。
关键字库可以根据需要进行扩展和维护,以便满足新的测试需求。
2. 封装关键字逻辑:关键字的实现应尽量与测试脚本相分离,可以定义单独的关键字函数或者类。
这样可以提高代码的可读性和可维护性,并降低测试脚本的复杂度。
梅特勒-托利多推出完整的产品检测解决方案佚名【期刊名称】《中国食品工业》【年(卷),期】2017(000)005【总页数】2页(P28-29)【正文语种】中文在2017年interpack展会上,来自各行各业的数千名代表齐聚杜塞尔多夫展览中心。
无论是食品、饮料、制药还是任何其他消耗品制造商,他们都有一个共同的诉求——获得准确、高效的产品检测解决方案。
防护、效率和质量是梅特勒-托利多产品检验部门所追求的基本价值,这是基于服务多样化的制造业的经验所总结出来的。
无论您的产品以什么方式展示-散装(松散)、包装、未包装、下落式还是管道内,梅特勒-托利多均可以提供一套能够满足您需求的系统,能够提高这三个核心领域的运营,同时确保100%符合规定。
梅特勒-托利多产品检测部门的营销经理 Daniela Verhaeg 评论道:“Interpack 始终是个非常棒的展览,因为让我们有机会真正展示我们完整的解决方案。
参观者可以与新技术互动,其中部分技术迄今尚未见过,并可以与我们的专家讨论他们具体的需求和要求。
展示的产品包括金属检测机、自动检重秤、X射线和视觉检测系统,我们会进行现场演示,以突出它们的先进功能。
参观者目前可以直接与垂直喉式和超级喉式金属检测机以及重力下落式金属检测系统互动,实时地体验带eDrive的简化测试模式(Reduced Test Mode)、仿真模式(Emulation Mode)和自动测试系统 (Automatic Test Systems)。
这些新功能使检测更小污染物的灵敏度提升幅度达20%,把性能测试频率降低达83%,并使花费在性能监测的时间缩短80%以上。
此外,还提供Profile Advantage管道式金检技术的现场演示。
该系统带有可全面运行的气泡管道,实时地演示该技术如何克服泵送产品流中的气泡和空隙问题。
此外,还有一套完整的尽职调查规范操作系统,突出了支持主要零售商实施规程指南所必需的各种组成部分。
浅谈储能系统测试“电池测试”储能系统测试是当今的热门话题。
通常被称为“电池测试”,它的范围从小型便携式电池到电动汽车(EV)中使用的较大电池,再到所谓的“固定应用”中用于高能量供应的备用系统中的电池。
根据这些系统的具体环境和制造周期阶段,泰克吉时利为市场提供测试解决方案,例如那些旨在满足为 EV OEM 设计自动化测试系统(ATE)的系统集成商的紧迫需求的解决方案。
随着技术的进步,我们将继续在各种测试用例和生产质量要求方面积累经验。
安全、性能和系统管理“电池测试”的范围非常广泛,从便携式设备中最小可能电池的表征到在 1,000 V 甚至更高电压下运行的大型车辆电池。
电池系统对于电动汽车至关重要。
如今,锂离子电池因其高能量和功率密度而成为电动汽车中最常用的类型之一。
“电池”有不同的命名法,具体取决于市场环境。
例如,在汽车中,根据车辆的集成状态,如果您提到电池制造、模块或电池组制造,作为被测设备的 EV电池和相关测试程序可能会有所不同。
电池通常是单个电化学装置,单个存储单元的范围通常不超过最大 5 V。
该模块由几个连接的单元和一些其他电子设备组成,以控制整个系统。
模块以某种方式打包,因此测试通常将整个事物作为单个元素进行。
一个包是由几个模块组成的更大的元件,再次通过一些布线连接,并在板上具有更复杂的控制和通信电子设备,以与其他处理单元通信,例如车辆。
如前所述,测试单元与测试模块或测试包不同,并且测试设置在制造价值链的每个阶段都可能有所不同。
测试最终会因所使用的测试方法而不同,例如阻抗测量。
泰克吉时利为测试系统设计人员提供涵盖电气测试的解决方案,专注于在复杂的 ATE 中需要潜在电压、电流和电阻测量的任何地方,以便在电池制造(例如,电池、模块和电池组组装线)中进行系统集成测试和最终应用集成(例如,汽车电池管理系统[BMS]和电池组集成)。
测试通常涉及三个主要领域:安全测试,对于由以串联/并联拓扑排列的多个电池组合构建的系统至关重要,以提供更高的功率密度;电芯/模组/pack的性能测试,与充放电循环次数、运行时间、温度等密切相关;和管理测试,当性能优化和 EOL 测试验证是关键时。
Totally Data-Driven Automated Testing原文:Totally Data-Driven Automated Testing By Keith ZambelichSr. Software Quality Assurance Analyst, Automated Testing Evangelist作者簡介作者目前為Automated Testing Specialists, Inc.這家公司的總裁兼執行長,主要從事自動化測試導入的顧問工作,而且本身也是Mercury Interactive認證的WinRunner CPS(Certified Product Specialist)。
摘要「軟體測試自動化」已經被許多的軟體測試專家驗證是可行的,並且反覆的運用在許多軟體開發過程中。
大多數參與軟體測試的專家也同意自動化測試不只是值得的同時也是必要的。
在軟體測試的市場上有許多針對使用者介面(GUI)應用程式所開發的自動化測試工具,而且其中有些工具所提供的功能,已經足夠滿足軟體測試自動化的需求。
但是,我們卻看到越來越多的公司,在購買自動化測試工具之後才發現,實施一個符合成本效益(cost-effective)的自動化測試解決方案(solution)原比其所呈現的還困難。
我們會常常聽到一些抱怨,像是"看軟體測試工具廠商做起來好像很容易,但是當我們的人自己做的時候卻完全不是那麼一回事!"、"事實上我們已經花了六個月的時間在導入自動化測試,但是大部分的測試卻還是停留在人工測試的階段!"或是"要讓整個自動化測試運作起來所花費的時間實在太長了,還不如使用原本的人工測試所花的時間更短!"。
通常最後的結局是"另一個錯誤的採購!",自動化測試工具從此被束之高閣了。
本文的目的是跳脫學術理論,透過作者本身的經驗,以更直覺、忠實的態度來討論自動化測試的議題,讓讀者能夠清楚的瞭解,要成功實施符合成本效益的自動化測試,到底需要哪些條件的配合。
何謂自動化測試?簡而言之,所謂的自動化測試就是將您現有的手動測試流程給自動化。
而且要實施自動化測試的公司或組織,本身必須要有一套「正規(formalized)」的手動測試流程。
而這個正規的手動測試流程至少要包含以下的條件:∙詳細的測試個案(test cases):從商業功能規格或設計文件而來的測試個案,包含可預期的(predictable)的預期結果(expected result)。
∙獨立的測試環境(test environment):包含可回覆測試資料的測試環境,以便在應用軟體每次變動後,都可以重複執行測試個案。
假如您目前的測試流程並未包含上述條件,即使您導入了自動化測試,也不會得到多大的好處。
所以,假如您的測試方法(testing methodology)只是將應用軟體移轉到一群由「使用者」或「專家級使用者(subject matter experts)」組成的測試團隊,然後任由他們去敲擊鍵盤執行測試工作。
那我建議您先把自動化測試放一邊,把「建立一個有效的測試流程」當成您目前首要的工作。
因為要自動化一項不存在的流程是完全沒有意義的。
自動化測試最實際的應用與目的是自動化回歸測試(regression testing)。
也就是說,您必須要有用來儲存詳細測試個案的資料庫,而且這些測試個案是可以重複執行於每次應用軟體被變更後,以確保應用軟體的變更沒有產生任何因為不小心所造成的影響。
「自動化測試腳本(script)」同時也是一段程式。
為了要更有效的開發自動測試腳本,您必須和一般軟體開發的過程一樣,建立制度以及標準。
要更有效的運用自動化測試工具,您至少要有一位受過良好訓練的技術人員,換句話說,您至少要有一位程式設計師(programmer)。
自動化測試的成本效益(Cost-Effective)首先我要告訴您的是,自動化測試是非常昂貴的(這違反了工具廠商灌輸給您的觀念),而且自動化測試不會取代手動測試或是幫助您縮編(down-size)您原本的測試團隊。
對於您的測試流程,您應該將自動化測試看成是附加的選項。
譯註:也就是說即使沒有自動化測試工具,您應該也可以將測試做的很好,工具只是幫您做得更快更多,而且讓您有更多的時間花在設計好的測試個案上。
根據Cem Kanner 的一篇文章「Improving the Maintainability of Automated Test Suites」(),要建立一個自動化測試個案,包含開發、測試、撰寫文件,所花費的時間大約是手動測試個案的3到10倍之多(甚至還要更久)。
特別是當您選擇使用「錄製/播放(大部份自動化測試工具都提供此功能)」的方式作為您建立測試腳本的主要方法時,這個公式更是能成立。
也就是說只透過「錄製/播放」的方式建立自動化測試所能得到的效益是最少的。
投入自動化測試可以是有效益的,只要您能把握以下的原則(common sense)並將其應用到導入的過程當中:∙為您公司或組織選擇一個最符合您測試需求的自動化測試工具。
∙瞭解不是所有的測試都適合或直得自動化。
例如將過度複雜的測試自動化可能會花費更多的成本,那您就要考量值不值得將其自動化。
切記,將自動化的重點放在主要的測試個案上。
∙只有會重複執行的測試才需要自動化。
只做一次的測試那就免了吧!∙避免只使用「錄製/播放」的方式實施自動化,因為這個方式可能會潛藏著陷阱,而且就長期的考量,這也是最浪費時間的自動化方式。
不過您可以使用「錄製/播放」的功能,觀察自動化測試工具如何在您的應用軟體上執行測試,這或許對於您在發展測試腳本時會有幫助。
∙採用「資料驅動(data-driven)」的自動化測試方法,將測試的「輸入資料/預期結果」與測試腳本分開,如此一來,您可以開發更通用(generic)的測試腳本,然後只要更新「輸入資料/預期結果」的資料就可以了。
接下來我會介紹二種非常有用的資料驅動測試方法。
錄製/播放的神話每一家自動化測試工具廠商都會告訴你,他們的工具非常容易使用,所以非技術背景的測試人員,只需要簡單錄製測試的操作過程,然後播放錄製好的測試腳本,就可以輕鬆自動化所有的測試。
這樣的說法要為自動化測試工具被束之高閣的結果負大部分的責任。
假如可以,我倒是很願意看到說這些話的業務人員,真的在實際的測試上,使用他們自己所賣的工具,然後看看自動化測試是否就如同他們所形容般的如此簡單。
為什麼自動化測試不能單單只靠「錄製/播放」來完成呢?以下幾點將告訴您為什麼:∙透過錄製建立的腳本,裡面的資料基本上都是hard-coded 的,當應用軟體變動時,意味這些hard-coded 的資料可能也需要修改。
∙維護這些錄製的腳本,成本是非常高的,高到幾乎不能接受。
∙透過錄製建立的腳本,不是很可靠,甚至在應用軟體完全沒有變動的情況下直接播放,也可能因為一些例外狀況而出現無法執行的問題。
∙假如錄製時測試人員使用了錯的資料,那腳本就必須重新錄製。
∙當軟體變動時,要重新錄製腳本。
∙所有的測試腳本都必須是在應用程式可以正確執行時才能錄製,假如在錄製過程中發現bug (錄製的過程也可以看成是作手動測試),測試人員必須回報bug,而且等到bug 解決了,整個錄製腳本的動作才能在繼續下去。
在這樣的情況下,您可以好好的思考一下,你到底是在測試什麼?經過2~3個月這樣沒有實質效益的嘗試後,測試人員終究會發現自動化測試並非如工具廠商所形容的簡單,然後他們會放棄自動化測試,重新回到原本手動測試的作法。
而工具廠商對他們也不再關心了,畢竟他們的工作是賣工具而不是作軟體測試。
可行的自動化測試方法就長期的效益上,我們不會將「錄製/播放」當成是我們自動化測試的策略,接下來就讓我們討論以下二種真正有效益的自動化測試的方法論(methodlogies):Function Decomposition「Function Decomposition」的主要概念在於將所有測試個案分解成最基本的動作,如User-Defined Function、Business Function 腳本,並建立可以獨立執行的共用腳本,如Sub-routine、Utility 腳本。
而這些基本腳本可能包含以下動作:1.Navigation (e.g. "Access Payment Screen from Main Menu")2.Specific (Business) Function (e.g. "Post a Payment")3.Data Verification (e.g. "Verify Payment Updates Current Balance")4.Return Navigation (e.g. "Return to Main Menu")除此之外,還需要將「資料」從Function 中抽離出來。
如此一來,當測試人員想要使用不同的輸入資料以及驗證預期結果時,就只要修改資料檔案(data file)就可以了,不需要修改到測試腳本。
在最上層的腳本則是Driver 腳本,是整個測試的啟動引擎,同時也會作一些初始化動作,如載入GUI、設定路徑等。
Driver 腳本會去呼叫一個或一個以上的Test Case 腳本。
而Test Case 腳本則是透過呼叫Business Function 腳本以完成整個測試個案應該執行的功能與驗證。
至於Utility 以及User-Defined Function 則是可以看成是共用的模組,提供Driver、Test Case、Business Function 等腳本呼叫使用的。
優點1.較為模組化(modular)的設計,避免重複的腳本,減少建立或維護腳本的成本。
2.在應用軟體開發的同時,就可以同步進行腳本建立的動作,而且當應用軟體功能變動時,只需要修改Business Function 腳本。
3.由於應用軟體的功能已經被分解成Business Function 腳本,測試人員可以隨意組合Business Function 腳本成為更複雜多樣的測試個案。
4.測試輸入資料與驗證資料與腳本分開,儲存在另外的檔案,如純文字檔或Excel 檔,測試人員可以更容易修改與維護。
5.透過判斷Function 回傳值是TRUE 或FALSE ,可以作錯誤處理,讓腳本更有彈性。
缺點1.需要「精通」測試工具腳本語言的工程師。
2.每個腳本都會有許多的資料檔,而且資料檔會附在各自的目錄中,增加使用上的複雜性。
3.測試人員除了要維護測試計劃之外,還要另外維護資料檔(譯註:相同資料要做二次)。