精华内容
下载资源
问答
  • 工业自动化软件

    千次阅读 2012-09-21 09:59:09
    工业自动化软件技术的发展   目前在国外,很多发达国家及有些发展中国家普遍采用美国Wonderware工业自动化软件套件技术,根据用户需求构建系统,实现对复杂工业大系统的控制与管理.例如,在20世纪90年代印度最大的...
    工业自动化软件技术的发展 
           目前在国外,很多发达国家及有些发展中国家普遍采用美国Wonderware工业自动化软件套件技术,根据用户需求构建系统,实现对复杂工业大系统的控制与管理.例如,在20世纪90年代印度最大的TISCO钢铁公司采用美国Wonderware工业自动化软件系统套件技术实现了直接与ERP通信,从Internet上直接接受用户订单后,通过生产执行系统(MES)把总公司和职能部门,分厂,车间直至各条生产线都采用统一的控制,数据和信息平台纳入管理,系统开发周期短,系统开发和运行,维护成本低,由于软件组件套件技术可方便地实现系统的无缝集成,可靠性高,实现了从接受订单,原材料订购,产品生产,直至把产品运送到用户手中的全公司统一的自动化监控与信息化管理,效率极高.美国Wonderware公司的软件套装组件系统是工业界第一个集成的工业自动化软件包FactorySuite,它从根本上改变了人们的传统观念以及在制造行业存在了多年的从上到下的信息流模式.除了上述核心组件外,还有Industrial SQL数据分析工具,SCADAlarm企业级的电话/报警系统等等。
            总之Wonderware的Factory Suite是套装的软件组件系统,可以根据需要选配组件模块使系统实现无缝集成,给企业信息化提供了完整的解决方案.如在钢铁行业中,采用美国Wonderware的I/OSever技术和InSQL Server技术,建立统一的控制,数据,信息平台,效果极好,可实施建立产品流转动态跟踪系统实现从原材料到成品的全线动态跟踪,建立生产信息动态管理系统,实现生产计划,生产调度,库房(包括原料,半成品库,热处理,成品库)管理,生产作业和过程管理,合同管理,质量管理,工艺规程在线指导子系统,生产信息动态查询,统计,分析管理等,由于管理与控制都是动态实现,没有最先进的软件技术支撑和可以无缝集成的软件套件组件搭建系统,很难想象研发工作量有多大,成功率有多高,真正意义上的CIMS系统能否实现。
             近年来工业自动化软件技术在多个方面都有了长足的发展,其中特别值得关注的是系统开发环境和系统构架方面的新进展.集成开发环境(IDE)通过应用组件实现工程重用,Industrial ApplicationServer的组件对象体系结构可以显著地提高生产力.组件对象模型有利于开发代表工厂设备的可重用的应用对象.在FactorySuite IDE内部建立的应用对象包含与自动化设备有关的所有必要的元素,例如历史参数,标记,报警与事件,文档,脚本,安全和通信参数.可以建立,复制和部署一个可重用组件的模板库,提高快速应用软件开发能力.每个组件模板支架变化传播特性,因此,一个元素的改变可以自动地被传播到所有受影响的组件或选择的组件,节省了宝贵的工程时间和成本.工厂模型体系结构用户可以把预先设计的应用对象变成利用最佳惯例和公司的工程标准的模板.获得灵活的应用对象可以包含代表物理工厂设备监控自动化策略或更高级别的生产策略的知识和应用代码.模板库可以把应用工程变成一个装配过程,而不是一种程序编制工作,因而可以显著提高不同项目的生产率.IDE是一个多开发者环境,它支持公司利用他们的工程资源,在一个项目上分配多名工程师.IDE通过利用高效率的注册/注销过程支持多开发人员,它为每个应用程序组件提供了一种历史记录审核跟踪机制,包括用户标识符,时期与时间戳,以及关于变化的详细的摘要信息.由于应用配置信息保存在一个核心项目库(SQL Server数据库)中,因此可以对整个应用进行版本控制.注册/注销过程允许工程师在旅行或者离开现场时随身携带组件,为他们提供了最大的灵活性. IAS(Industrial Application Server)将工业自动化应用程序的开发设计生产力与可伸缩性带入了一个新纪元.它提供了全新的一层实时数据获取,报警与事件管理,数据处理服务及协作开发功能,这些功能从最底层开始就是针对用于工业自动化应用程序而设计的.IAS是简化分布式自动化应用程序开发,部署,维护及管理的一种基础架构,它是建立在Invensys的 ArchestrATM架构基础上的新软件组件.全面的 ArchestrA工厂自动化与信息架构从一开始就设计为利用最新软件技术延长传统系统的使用寿命.不管自动化应用程序是用在离散制造业,生产工厂,远程 SCADA操作,公共事业,还是用在这些运营类型的任何组合中,ArchestrA架构均能将其涵盖在内.IAS建立在ArchestrA架构上,明显的优势在于:分布式点到点架构;一个全球联网的域名空间;集成化历史,脚本,报警及安全机制;直观的多用户开发环境;基于组件的工厂与应用模型;符合21 CFR Part11规范要求;对用户而言可显著降低工程成本 ;降低拥有成本;响应迅速,能适应成长需要;坚定不移的开放性.它为简化分布式自动化应用的开发,部署,维护与管理提供了基础.IAS提供了新一级的实时数据获取,报警与事件管理,数据操作服务,以及协作工程能力,这些能力从一开始就是专门为工业自动化应用设计的,使制造厂家,OEM和系统集成商(SI)能够显著降低自动化系统的工程,购买和维护费用,同时,用户可以灵活建造自动化系统,增强了对新的需求的响应能力.IAS是建立在Invensys 的ArchestrA 体系结构之上的一个强大的新应用平台.综合性的ArchestrA 工厂自动化与信息体系结构从一开始就被设计为利用最新的软件技术延长传统系统的寿命.不论是装配制造厂,制炼厂,远程SCADA运转,公用事业或者这些业务营运类型的任何组合中的自动化应用,以ArchestrA为基础的体系结构都能够胜任. 从系统层次考虑,最近的工业自动化软件系统正利用先进的软件技术朝着集成化,网络化,平台化,综合管理等方向发展. 
    (1) 工业自动化软件的集成化 
            以前的工业自动化软件已经考虑到对设备和多系统的集成观点,但是集成的范围往往集中在对局部系统或分厂系统,而没有考虑更大范围的集成,而新的自动化软件系统已经考虑到大范围,区域性以及全厂级的系统集成,提供总体的集成解决方案。
    (2) 工业自动化软件的网络化 
            随着数据的分散性以及网络的多样性,工业自动化软件系统的信息正朝着信息总线的方向发展,信息总线的方式改变了过去需要将数据集中采集和处理的观念,相当于在数据监控层铺设了一条信息总线,各个子系统只要挂接在该信息总线上,就可以实现各个系统间的相互通讯,实现了全分布的监控系统。比如基于Wonderware FactorySuiteA2构建的监控系统,就是通过在整个系统中部署在每台电脑中的Platform进行信息交互.由于工业自动化软件间的信息交互越来越多,需要在单台机器上实现对多台机器上的软件系统进行集中远程管理的功能,因此网络化的管理也是自动化软件的发展方向.目前多家国内外的工业自动化软件企业就实现了网络管理,Wonderware公司基于微软管理控制台(MMC)技术的系统管理控制台SMC(System Management Console)就可以实现对数据采集软件,日志文件,部署的对象等实现集中的远程管理。
    (3) 工业自动化软件中面向对象技术的应用 
            面向对象方法包括封装性,继承性,多态性等特点,这些特点使面向对象方法在软件领域得到迅速的发展,在工业自动化领域,很多控制对象同样具有面向对象技术中的"对象"属性,也引起了人们的注意,控制工程师和控制软件开发人员也试图将面向对象的技术应用到工业自动化领域,但目前基本上仍停留在针对某个控制系统的软件设计和控制软件的软件设计中,这些都说明面向对象的技术可以应用在工业自动化领域,但没有真正将面向对象技术应用到控制系统的整体系统设计中.这就是要将面向对象的技术优势引入到整个自动化系统的设计之中,而不是简单的停留在某个具体的软件设计之中的.总之,传统的面向功能的设计方法集中在控制系统的局部,围绕某个功能的实现为主线,而在嵌入面向对象技术的自动化软件平台Wonderware Industrial ApplicationServer上,采用面向对象思想设计监控系统,要充分发挥面向对象技术的封装性,继承性的优势,同时采用抽象对象的方法来看待整个监控系统的组成.Wonder- ware公司推出了一款嵌入面向对象技术的新产品—Wonderware Industrial Application Server.该产品充分发挥了面向对象的技术优势,提供了供自动化工程师选择使用的多个基础模板,将程序中的面向对象技术屏蔽掉,只需要经过客户化的配置以及扩展即可以满足工业自动化系统的设计和规划工作,从而使工程师从简单复杂耗时的程序模块设计中解放出来,将主要的精力集中在系统控制模型以及控制算法上,大大缩短了工业自动化系统的设计和上线时间,并提高了系统的重用性. 
    (4) 工业自动化软件系统的平台化 
             在工业自动化软件系统的发展过程中,由于涉及到多种功能的实现,因此在20世纪80年代末期和20世纪90年代,根据模块功能的区别,实现了软件系统的模块化.而由于工业自动化系统设计的范围及广度的增加,需要一个统一的平台软件,实现各个功能的统一运行,国内外大的工业自动化软件企业都将自己的模块化软件统一运行在自己的平台之上,而且该平台具有高度的开放性和扩展性,相关厂商的产品就可以在该平台上进行开发。
    (5) 工业自动化软件系统的综合管理化 
            目前各个工业自动化软件厂商不仅是为企业提供监控功能软件的厂商,而且能根据工业现场的要求,提供丰富的管理软件,向着工业自动化解决方案厂商的转变.他们为企业提供了资产管理,质量,批次管理等丰富的软件.而且随着企业信息化的推进,目前都在积极提供为企业ERP进行数据支撑的MES解决方案.最明显的就是不少厂商推出了基于S95标准的MES解决方案,比如Wonderware公司的生产事件模块PEM(Production Events Module)就是遵循S95标准的生产效能跟踪管理的解决方案。 在工业自动化软件支持的数据点数,处理能力以及可伸缩性或扩展性等方面,都有明显的发展和提高.厂商考虑越来越多的是系统随时间推移而增值和延长项目的生命周期,从整体上提高系统建设的投资回报率。



    展开全文
  • 软件测试_自动化测试

    千次阅读 2019-11-19 13:39:29
    自动化测试 什么是自动化测试 通过测试工具来执行测试用例,完成测试工作。...自动化测试的特点 运行速度快 测试结果准确 高复用性 永不疲惫 可靠 能力 自动化测试的好处 测试周期短 更高质...

    自动化测试

    什么是自动化测试

    • 通过测试工具来执行测试用例,完成测试工作。

    自动化测试与测试自动化

    自动化测试测试自动化
    焦点集中在测试执行,主要由测试工具自动地完成测试一切由计算机系统自动完成的测试任务都已经由计算机系统或软件工具、程序来承担并自动执行

    自动化测试的特点

    1. 运行速度快
    2. 测试结果准确
    3. 高复用性
    4. 永不疲惫
    5. 可靠
    6. 能力

    自动化测试的好处

    1. 测试周期短
    2. 更高质量的产品
    3. 软件过程更规范
    4. 高昂的团队士气
    5. 节省人力资源、降低成本
    6. 充分利用硬件资源,降低成本

    手动测试VS自动测试

    手动测试自动测试
    发现缺陷率高高效率
    容易实施高复用性
    创造性、灵活性覆盖率容易度量
    覆盖率量化困难准确、可靠
    重复测试效率低激励团队士气
    不一致性、可靠性低不知疲劳
    依赖人力资源机械、难以发现缺陷
    一次性投入大

    自动化测试原理

    four
    three
    two
    调用脚本
    保存脚本
    启动应用执行脚本
    验证测试结果
    记录执行log
    调试脚本
    创建脚本
    录制对象及操作
    插入验证点
    启动应用
    测试报告

    测试工具的实现原理

    • 代码扫描及分析

    • 对象识别

    • 捕获和回放(record&playback)

    • 脚本技术

    • 自动结果比较

    测试工具的分类

    • 根据测试方法分为
      • 黑盒测试工具
      • 白盒测试工具
      • 静态测试工具
      • 动态测试工具
    • 根据来源分为
      • 开源
      • 商业
      • 自主开发
      • 第三方
    • 根据对象和目的分为
      • 单元测试工具
      • 功能测试工具
      • 性能测试工具
      • 测试管理工具
    展开全文
  • VectorCAST自动化测试软件方案

    千次阅读 2013-11-19 10:21:47
    其主要功能包含自动化的单元测试、集成测试、覆盖率分析、回归测试、代码静态分析和测试需求跟踪,其最大特点或相比于其它相关同类工具最大的优势,就在于最大程度的自动化和更适用于嵌入式环境。以下予以分别阐述:...

    一、功能和性能指标

           VectorCAST 是主要用于C/C++/Ada程序的自动化测试软件,能够运行在Windows和Linux等多种开发环境。其主要功能包含自动化的单元测试、集成测试、覆盖率分析、回归测试、代码静态分析和测试需求跟踪,其最大特点或相比于其它相关同类工具最大的优势,就在于最大程度的自动化和更适用于嵌入式环境。以下予以分别阐述:

    ·        单元测试

           VectorCAST 会根据被测代码和开发环境自动构建测试架构(Test Harness),在此基础上用户可以根据需要自动地生成或添加测试用例,并灵活地配置以实现不同的测试需求。自动生成的架构中包括:被测对象、测试驱动、桩函数和依赖条件。如下图1所示。


     

    图1. VectorCAST自动构建的测试架构

    Ø  自动生成测试用例

             VectorCAST 支持用户以多种形式的输入输出参数自动地生成测试用例,不需要用户编写测试代码,完全通过鼠标和输入窗口自动完成:

    • 最大值、最小值和中间值
    • 二进制、十进制、八进制和十六进制数值
    • 输入参数范围
    • 多个参数自动排列组合及配对
    • 等价类划分
    • 输入值列表
    • 期望输出值列表
    • 期望值容错误差范围
    • 从外部数据源,如xlc, csv 等,中导入测试用例参数

     

    图2:测试用例输入输出值编辑窗口

     

           VectorCAST 可以根据不同的覆盖率的算法分析测程序逻辑,自动地生成满足不同要求覆盖率要求的测试用例,以尽可能地达到覆盖率要求。对于未能覆盖的部分,用户可以根据工具提供的逻辑分析报告,如基本路基逻辑和MC/DC 等价类矩阵,用户按照分析结果提示的参数条件额外添加少量测试用例即可达到100%的覆盖率(参见下图3)。

    • 基本路径覆盖— 自动生成用例通常可以自动达到90%~100%的覆盖率
    • MC/DC覆盖— 自动生成用例覆盖率视测代码实际情况而定

     

    图3:MC/DC等价类分析矩阵

    Ø  桩函数

            被测函数所调用的其它函数可以通过形式被执行,被调函数本身或桩函数。从全部调用实际函数到全部由桩函数替代,用户可以根据自己需要灵活设定需要打桩的对象。VectorCAST 可以支持添加不同输入输出的桩函数,简单的如int, float, double, char 等基本类型变量,也可以支持非常复杂的结构或对象变量。重要的是,这些桩函数基本都只需GUI 操作即可完成,一般不需要人工编写测试代码。

     

    Ø  测试用例的执行

            VectorCAST 对测试用例的执行方式采用真正的数据驱动方式(Data-Driven),所谓数据驱动,就是指测试用例数据只有在测试用例执行的时候才会被读取,而不会随测试代码、桩函数和测试驱动等等一起构建到最终的执行程序中。这样的好处是1)构建和执行速度快;2)当被测对象未变动的情况下,对测试用例的输入输出参数进行修改,测试用例不需要重新编译构建。

     

    Ø  测试结果验证

            测试用例执行完之后,VectorCAST 除了能对被测单元的实际return值进行断言以外,包括简单类型和覆盖结构体,还可以对它依赖关系中的变量结果值或其成员变量进行验证,报告True或False 断言结果。

     

    Ø  复杂度分析

            测试用例执行结束之后,VectorCAST 会统计相关程序的圈复杂度,并自动生成报告。如下图4所示。


    图4:VectorCAST 圈复杂度分析报告

     

    Ø  测试报告

            测试结束后,VectorCAST 自动生成详细的测试报告,包括所有测试用例、测试用例输入输出数据、断言结果、程序度量分析结果、不同覆盖率报告和MC/DC 等价类分析矩阵。

     

    ·        集成测试

            VectorCAST 除了测试单个函数或单元以外,还可以用于模块集成测试,不同模块直接的接口调用是否正确。主要体现在:

    • 通过集成不同单元的测试用例,任意组合其执行顺序和执行次数,以达到集成测试多个单元的目的
    • 通过测试用例让多个单元实际调用其它单元,以验证相互调用接口的执行结果
    • 直接根据头文件生成测试用例,测试源码未可见的库函数的接口及功能

     

    ·        对嵌入式环境的支持

            测试用例可以在主机(Host),模拟器(Simulator)或目标板(Target)上执行,并收集测试结果在主机平台统一查看。对于嵌入式环境,可以通过目标板特有的通讯条件,如串口、以太网口、JTAG 或调试器等实现测试结果到主机的传输。

     

            VectorCAST支持近100中C/C++嵌入式交叉编译器和60多种Ada嵌入式编译器。广泛适用于航空航天,国防军事相关的研发环境。

     

    ·        覆盖率分析

         统计多种覆盖率。VectorCAST的覆盖率分析功能可以统计多种测试覆盖率,包括语句覆盖(Statement)、分支覆盖(Branch)和MC/DC 覆盖。并通过在原代码中以颜色和数字标注、百分比率和综合详细的报告等不同方式显示。如下图5所示。


    图5:VectorCAST覆盖率统计报告

     

            综合多种覆盖率数据。VectorCAST 可以集中显示多次测试、不同测试的测试覆盖率结果,包括单元测试、集成测试、系统测试、C/C++程序覆盖率和Ada覆盖率的覆盖率都可以综合地显示在一个报告中。这样即使分别执行测试用例,也可以获的统计叠加的覆盖率结果。在覆盖率要求严格的项目中尤为有用。

     

            自动录制动画回放程序覆盖的路径。VectorCAST 可以记录测试用例执行过程中被测代码的执行路径,并支持用户播放、暂停和设定断点等方式进行查看。这样用户可以直观地了解被覆盖的代码是如何覆盖的,没有覆盖的代码为什么没有覆盖到,从而准确地添加测试用例,提高覆盖率。

     

    ·        回归测试

            强大的回归测试功能,VectorCAST 能集中管理全部的C/C++和Ada 程序的测试环境和测试驱动,通过GUI 或命令行的方式定期地运行,从而根据测试用例的执行情况及时地发现代码中“意外引入的错误”,保证测试过的代码和新增代码质量的持续稳定。


    图6:VectorCAST回归测试结果

     

         具体地,VectorCAST 的回归测试功能有如下特点:

    o   集中管理测试用例

    o   提供整个工程每日的质量报告

    o   支持敏捷开发

    o   可以方便运行在不同版本的源码库上

    o   支持命令行和GUI

    o   支持多台机器分部运行

    o   统计测试用例执行时间

    o   提供可视化图表和趋势图

    o   便于掌控整个项目的质量和进度

     

    ·        支持敏捷开发(TDD)

            VectorCAST 可以完美地支持敏捷开发流程(TDD)。TDD 要求先根据需求开发测试用例,然后再开发,让测试用例逐步通过,最终完成整个开发。VectorCAST 只需要项目头文件就可以生成测试环境,用户能根据需要增加测试用例,不需要额外编写测试代码。生成好当有代码被开发出来后,可以直接将被测程序更新进测试环境,构建并运行测试用例,支持编码完成所有测试用例全部通过。在整个开发过程中,还可以使用回归测试功能对所有测试用例持续地执行,确保每日的进度和质量。

     

    ·        静态代码分析

           VectorCAST 集成了静态代码分析功能,可以在不执行代码的情况下,通过内建的编码规范对程序进行分析,如MISRA C, MISRA C 2004和MISRA C++ 2008. 对每一个报告出来的错误,VectorCAST 都会显示详细的说明、严重度等级和详细的文档。以帮助用户方便地分析和修改测试结果。

     

    ·        测试需求跟踪

           VectorCAST 的需求跟踪功能可以跟常用的需求管理系统集成,如DOORS, RequisitePro和CSV数据库等。从需求管理系统中导入需求,然后将VectorCAST测试用例和测试结果与之关联,连同备注再导出到需求管理系统。从而确保每个需求都能被测试用例所覆盖,并管理每个需求所对应的测试用例的正确执行。这对产品的系统测试和最终验证是至关重要并且实用的,用户不用再手工地做这些验证和文档工作了。参见图7.


    图7: 在VectorCAST中集成需求管理系统

     

    ·        工具认证包(Certification Kits)

            Vector Software 公司提供用于航空航天DO-178B/DO-278,铁路系统EN50128,汽车电子ISO26262,工业控制IEC 61508和医疗器械IEC 62304等不同行业认证标准的验证包。其中对VectorCAST 的各个功能进行了详细的验证和说明,证明VectorCAST 满足标准对开发过程中使用的工具的要求,是能够用在有相关认证要求的项目的研发和测试工作中的。帮助产品或项目顺利地通过相关认证,获得行业认证证书。

     

    二、技术方案

            VectorCAST 作为自动化的测试软件和解决方案,可以有机地集成到已有的开发流程中,也可以作为一个独立的质量解决方案。如下图8所示,将VectorCAST 作为嵌入式测试的质量中心,其不同产品模块可以用于各个方面的测试,包括:

    • 单元测试
    • 集成测试
    • 覆盖分析
    • 静态分析
    • 回归测试

     

           同时又可以集成和整合其它系统和测试,包括:

    • 源码控制系统
    • 需求管理系统
    • 系统测试(部分)

     

            从而形成一个整合而又灵活的测试和质量控制体系。从需求分析、到编码、单元测试、集成测试、回归测试及覆盖率,到需求跟踪和验证,VectorCAST 提供了贯穿软件研发的全生命周期管理的解决方案,真正从根本上保证研发的质量和效率,特别是对高安全和高可靠性要求及其严格的航空航天系统,VectorCAST 提供的这样的自动化测试更显得尤为重要且必不可少。


     图8:VectorCAST 整合的测试方案

     

            VectorCAST 的实施和部署可以采取分步进行的方式,先对各个模块根据其需求紧迫程度和难易程度逐步予以熟悉和应用,如可以采取从静态分析-> 单元测试 -> 代码覆盖率分析 -> 回归测试 -> 需求管理和跟踪,到最后将其全部整合起来的方式。其中每个环节都需要严格的部署计划和实施质量考核标准,以确保整个部署过程有条不紊地完成。

     

            系统应用起来后,VectorCAST 原厂技术人员还会配合用户对软件的使用情况予以定期的回访,协助解决出现的技术问题,并优化使用流程,保证软件在用户的研发中发挥长期有效的作用。

     

    三、系统组成

            VectorCAST解决方案主要由以下几个模块组成:

     

           VectorCAST/C++ & Ada, 对C/C++/Ada 程序的单元测试和集成测试环境的生成、编辑、构建、执行、覆盖率分析、复杂度分析和测试结果统计等等。

     

           VectorCAST/Cover, 统计无论是单元测试、集成测试还是系统测试的覆盖率,并可以将不同次测试的结果综合到统一的报告中。

     

           VectorCAST/MCDC, 统计MC/DC 覆盖率。

     

          VectorCAST/Manage, 自动化的回归测试功能及项目的整体质量集中管理中心。

     

          VectorCAST/Lint, 自动化代码静态分析模块。

     

          VectorCAST/RSP, 用户宿主机和目标机的通讯,收集测试用例在目标机执行之后的测试结果和数据。嵌入式的测试必备模块。

     

          VectorCAST/RGW, 用于集成需求管理系统,使用测试用例跟踪测试需求并导出数据。

     

          VectorCAST Qualification Kits, 提供用于支持DO-178B, IEC61508, ISO26262和EN50128等行业所需的验证材料套件。


    展开全文
  • 1、软件产品的监视和测量 对软件产品的特性进行监视和测量,主要依据软件需求规格说明书,验证产品是否满足要求。所开发的软件产品是否可以交付,要预先设定质量指标,并进行测试,只有符合预先设定的指标,才可以...

    一、首先我们要了解我门做软件测试的原因,为什么要做软件测试
    1、软件产品的监视和测量

    对软件产品的特性进行监视和测量,主要依据软件需求规格说明书,验证产品是否满足要求。所开发的软件产品是否可以交付,要预先设定质量指标,并进行测试,只有符合预先设定的指标,才可以交付。

    2、对不符合要求的产品的识别和控制

    对于软件测试中发现的软件缺陷,要认真记录它们的属性和处理措施,并进行跟踪,直至最终解决。在排除软件缺陷之后,要再次进行验证。

    3、产品设计和开发的验证

    通过设计测试用例对需求分析、软件设计、程序代码进行验证,确保程序代码与软件设计说明书的一致,以及软件设计说明书与需求规格说明书的一致。对于验证中发现的不合格现象,同样要认真记录和处理,并跟踪解决。解决之后,也要再次进行验证。

    4、软件过程的监视和测量

    从软件测试中可以获取大量关于软件过程及其结果的数据和信息,它们可用于判断这些过程的有效性,为软件过程的正常运行和持续改进提供决策依据。

    二、为什么要做自动测试?好处是什么?
    1、缩短测试周期

    2、避免人为出错

    说到自动化测试,与之对应的就是手工测试,所谓“人非圣贤,孰能无过”,传统的手工测试很大部分依赖于人,简单概括起来出错的可能性会有:

    * 用例执行方法出错

    * 输入数据出错

    * 用例执行步骤出错

    * 测试报告数据出错

    * 忘了执行某些用例

    * 忘了设置预置条件

    * 错误的理解被测系统的行为

    通过实现自动化,可以避免出现这些错误。

    3、测试信息存储

    自动化测试主要通过自动化脚本实现,和传统的手工用例相比,脚本中可以记录测试点,测试拓扑图,测试设计思路等信息,是非常理想的测试信息存储处,即“脚本体现思路”。另外带来的好处就是新人接收测试时,可以快速掌握已测试点,因为可以通过运行了解测试。

    4、轻易获取覆盖率

    在较好的自动化框架下,测试执行完自动化脚本,可以轻易的获取到代码覆盖率,进而根据覆盖情况分析,进行测试用例补充。

    5、其他

    比如:自动生成清晰的测试报告,定时执行测试套,数据驱动测试的测试套重用等。这些是本人暂未体会到的,但和一个网友交流时获取的。

    三、自动化软件测试的学习路线
    (1)自动化测试的学习步骤;

    (2)自动化测试需要掌握的技术能力;

    (3)自动化测试的认识误区

    首先要说的就是自动化测试的学习步骤

    1. 做好手工测试(了解各种测试的知识)->  2. 学习编程语言-> 3. 学习Web基础-> 4. 学习自动化测试工具 ->5. 学习自动化测试框架 -> 6. 实现自动化测试用例 -> 7. 开发自动化测试工具 ->8. 开发自动化测试框架
    

    按照这个步骤来说,基本上到第7步,难度就比较大了,这个时候也可以称呼自己为“测试开发”。

    下面说说第二个问题,做自动化测试需要掌握哪些技能。当初自己做的时候一直是基于Python去做的自动化,同时Python自动化也比java自动化更为容易上手一些,在这里我就按照Python自动化的思路去说一下如何学习自动化,解答完这个问题,文章的后半部分也会分享一下做自动化测试中容易出现的一些问题。老规矩,思维导图放在文末。

    一.首先要学会一门语言,java或者Python,这里针对Python去说。如果要能够满足自动化测试的需求,不要求Python的能力上来就达到精通的水平,但是最起码的使用是要有的,然后在后期在逐步根据测试工具进行进阶。
    在这里插入图片描述
    二、需要掌握前端的一些知识,无论学习语言还是前端知识,都是为了接下来的脚本和框架做铺垫。
    在这里插入图片描述
    三、数据库的重要性不言而喻,MySQL必须掌握
    在这里插入图片描述
    四.web端自动化测试工具selenium
    在这里插入图片描述
    五、接口测试自动化工具jmeter、postman等
    在这里插入图片描述
    六、移动端自动化测试appium
    在这里插入图片描述
    自动化测试的12个认识误区

    1、自动化的软件测试与手工的软件测试过程一样

    自动化测试所需要的技巧与手工测试所需要的技巧是不一样的。

    通常,你的项目经理会被那些测试工具销售们迷惑,认为自动化的软件测试就是简单地按一个录制的按钮,产生测试脚本。而事实上并没有那么简单。

    区分自动化测试所需要的技巧与手工测试所需要的技巧是非常重要的。最重要的是,自动化测试工程师需要掌握软件开发技巧,没有接受任何培训的手工测试人员,或者没有编程背景的手工测试人员,在实施自动化测试时会碰到很多困难。

    2、自动化测试一定会马上大量减少测试人员数量

    自动化测试不会马上大量减少测试人员数量。因为开展自动化测试初期需要投入一定的人力进行自动化测试脚本开发,并逐渐将自动化测试脚本用于日常的测试中,逐步减少手工测试人员从事重复劳动的时间和人数。为了缩短自动化测试脚本的开发时间,可以考虑将自动化测试脚本的开发工作借助外包的力量来早日实现大规模的自动化测试。

    3、测试自动化就是录制和回放

    仅仅录制得到的不是有效的自动化脚本。

    很多项目经理仍然把测试自动化等同于使用录制回放工具。而事实上,录制得到的脚本通常是不可重用的脚本,脚本中充满了硬编码的值,这些值应该被参数化,否则脚本仅仅适用于一个测试情况,脚本还应该加入条件判断、循环等结构,以便增强测试脚本的灵活性。

    4、自动化测试找不到bug

    自动化测试不直接找bug,而是通过解放有经验的测试工程师的生产力,让其从重复的回归测试中解放出来,从事新的测试方法和测试手段的研究。通过自动化测试解放出测试人员的时间和精力来间接地找到更多、更深层次的新bug,将产品质量再提高一个档次。

    5、自动化测试工具是“万能”的

    很多人一听到自动化测试,就认为自动化测试工具可以完成一切测试工作,从测试计划到测试执行再到测试结果分析,都不需要任何人工干预。显然,这是一种理想状态,现实中还没有哪个测试工具有这个能力,并且将来也不会有。在现实中有关的测试设计、测试案例,以及一些关键的测试任务还是需要人工参与的,即自动化测试是对手工测试的辅助和补充,它永远也不可能完全取代手工测试。

    6、自动化测试工具容易使用

    对于这一点,很多测试工程师有同样的错误观点,认为测试工具可以简单地通过捕获(录制)客户端操作生成脚本,且脚本不加编辑就可用于回放使用。事实上,自动化测试不是那么简单的,捕获的操作是否正确,以及脚本编辑是否合理都会影响测试结果。因此,自动化测试需要更多的技能,也需要更多的培训。

    7、自动化能提供百分百的测试覆盖率

    并非所有内容都可以被自动化地测试到。不可能覆盖所有可能的输入,所有可能的组合和路径。

    自动化测试可以增加测试的广度和深度,但是仍然无法达到100%的测试覆盖率,因为没有足够的时间或资源。

    8、忘记了测试的最终目标:找到BUG

    在自动化测试中,同样要注意把边界值分析、等价类分析、基于风险的测试方法、挑选最合适的测试用例等技术应用起来。

    通常在自动化测试过程中,我们都忙着搭建自动化框架和编写测试脚本,但是我们往往忘记了测试的本来目的:找bug。

    项目经理可能雇佣了最好的自动化开发人员来搭建框架,使用了最新最好的自动化开发技术,创建了成千上万的自动化测试脚本。但是如果BUG仍然被遗漏了,那些本该被自动化测试脚本捕捉到的BUG,结果没有被捕捉到,那么你的自动化测试仍然会被认为是失败的。

    9、所有测试用例都可以自动化

    不是所有的测试用例和测试步骤都可以转化为自动化测试。在自动化测试投入较多的行业,领先企业的自动化测试率有的能达到80%左右,但仍有20%左右的测试用例需要手工来进行。在国外,通常从开发第一版测试用例时,就同步进行自动化测试脚本的开发,所以自动化测试率普遍比中国企业高。

    10、只有性能测试才需要自动化

    自动化测试不光进行性能测试,更被大量应用于功能测试验证,在国外超过半数的自动化测试脚本都是用于功能验证测试的。

    11、测试工具可适用于所有的测试

    每种自动化测试工具都有它的应用范围和可用对象,所以不能认为一种自动化测试工具能够满足所有测试的需求。针对不同的测试目的和测试对象,应该选择合适的测试工具来对它进行测试。在很多情况下,需要利用多种测试工具或者开发自动化测试框架才能达到自动化测试的目的。商业和开源的测试工具能够用来进行自动化测试,但是我们需要根据自身产品的特点,开发自动化测试框架,在框架中提供常用的测试用例,加快测试速度,达到测试用例复用,这是今后测试自动化发展的道路。

    12、自动化测试能发现大量新缺陷

    发现更多的新缺陷应该是手工测试的主要目的,不能期望自动化测试去发现更多新缺陷。事实上,自动化测试主要用于发现原来的缺陷。自动化测试用于回归测试,而大量的新业务测试更多地还是依赖手工测试。

    除了以上列举的常见误区外,还有其他不同的认识误区。自动化测试认识误区的产生,归根到底最本质的原因是由于对自动化测试不现实的期望,也就是期望过高造成的。

    如果没有建立一个正确的软件测试自动化的观念,认为测试自动化可以完全代替手工测试,或者认为测试自动化可以发现大量新缺陷,或者不愿在初期投入比较大的开支等,则自动化测试一定会让我们大失所望。

    相信通过这样的解答,明白了什么时候用手工测试,什么时候用自动化测试,并且知道了自动化测试的局限性,这样就不会对做自动化测试的意义产生质疑了。

    学习路线会根据现实需求做出调整,需要最新的学习路线图[可点这]Q -q - u -n领取

    展开全文
  • 自动化测试】开展自动化测试的过程

    千次阅读 热门讨论 2021-05-13 21:37:33
    文章目录1)自动化测试需求分析1.1 如何确定系统是否适合做自动化测试?周期较长:稳定系统:脚本可复用:*被测系统适合怎样的自动化测试?2)调研测试工具、测试框架2.1 框架的选择2.1.1 TestNG主要特点:TestNG的...
  • 软件自动化测试基础

    千次阅读 2007-01-24 16:54:00
    Slide *第6章 软件自动化测试基础6.1 自动化测试基础6.2 软件自动化测试生存周期方法学6.3 软件自动化测试生存周期方法学的应用6.4 软件自动化测试工具简述本章教学目标理论环节认识与理解应用软件自动化测试的基本...
  • 手机软件自动化测试探索

    千次阅读 2009-06-11 15:14:00
    手机软件自动化测试探索作者:张元礼http://blog.csdn.net/vincetest 手机软件测试面临的困境与挑战 手机行业也就是在最近短短的几年间以迅雷不及掩耳之势发展,起初手机软件功能设计简单,性能要求也比较低下,在...
  • 自动化测试

    千次阅读 多人点赞 2017-06-30 10:02:38
    自动化测试概念:  自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在...
  • 关于软件测试行业前景的问题,是很多在行业外观望的同学甚至是刚刚入行的朋友都密切关注的一个问题,毕竟这个问题关系到自己未来的收入,甚至是决定自己的职业发展方向。 那么当真正思考这个大问题的时候,内心是会...
  • 一、理解软件测试自动化 1.自动化测试的含义 自动测试就是用程序代替人的手工操作,完成一系列测试的过程。 √     自动化工具能自动打开程序、自动执行测试用例、自动查找控件、自动产生...
  • 深入理解软件测试中自动化测试

    千次阅读 2018-11-13 19:24:18
    什么是自动化测试 编写代码(脚本),也就是把手工测试用例的操作步骤和校验转化成脚本实现,然后批量执行代码(脚本)实现测试的目的, 就是自动化测试 从自动化测试的概念推导出,自动化测试用例编写的根据是...
  • 以上全是 测试设计员的职责:确定并描述相应的测试技术、确定相应的测试支持工具、定义并维护测试自动化架构、 详述和验证需要的测试环境配置、验证与评估测试途径 21、对于业务流清晰的系统可以利用D贯穿整个测试...
  • 如果你对此文有任何疑问,如果你也需要接口项目实战,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入Python自动化测试技术群:953306497群里的免费资料都是笔者十多年测试生涯的精华。...
  • Web自动化测试实战(一)

    万次阅读 多人点赞 2019-08-23 15:41:39
    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 目录 一丶认识web自动化测试 1. 什么是自动化测试? 2.为什么进行自动化测试?...3.自动化测试的分类 ...一丶认识web自动化测试...软件自动化测...
  • 软件手工测试和自动化测试的比较

    千次阅读 2009-10-23 09:59:00
    本文就从实际的软件测试项目工作流程的角度探讨了手工测试和自动化测试的特点。并对它们各自的优缺点做了简单的阐述。 关键词:软件测试,手工测试,自动化测试 The Comparison of Manual Test and Automation ...
  • 兼容测试主要是检查软件在不同的硬件平台、软件平台上是否可以正常的运行,即是通常说的软件的可移植性。 兼容的类型,如果细分的话,有平台的兼容,网络兼容,数据库兼容,以及数据格 式的兼容。 兼容测试的重点是...
  • 自动化测试工具QTP的使用实例

    万次阅读 2015-06-17 00:23:04
    QTP功能与特点QTP是QuickTest Professional的简称,是一种自动化软件测试工具。在软件的测试过程中,QTP主要来用来通过已有的测试脚本执行重复的手动测试,用于功能测试和回归测试。使用QTP要求测试人员在测试前考虑...
  • 自动化测试的优缺点

    千次阅读 2017-07-22 20:34:29
    1、对回归测试更方便:进行回归测试,要测试系统的所有功能模块,周期较长的回归测试工作量大,测试比较频繁,适合自动化测试。由于测试的脚本和用例都是设计好的,测试期望的结果也可以预料,将回归测试自动化可以...
  • Web自动化测试

    千次阅读 2019-02-26 17:04:50
    1. 什么是自动化? 概念:由机器设备代替人为自动完成指定目标的过程 1.1 优点: 1. 减少人工劳动力 2. 工作效率提高 3. 产品规格统一标准 4. 规模化(批量生产) 2. 什么是自动化测试 概念:让程序代替...
  • 关键字驱动自动化测试

    千次阅读 2018-08-17 11:37:33
    实践证明,软件自 动化测试技术帮助软件开发和测试人员在更短的时间内开发出更高质量的产品,通过代替频繁重复的手工测试从而节省了大量的时间开支。同时,自动化测试技术也避免了手工测试出现的人为错误,完成了...
  • 兼容测试主要是检查软件在不同的硬件平台、软件平台上是否可以正常的运行,即是通常说的软件的可移植性。 兼容的类型,如果细分的话,有平台的兼容,网络兼容,数据库兼容,以及数据格式的兼容。 兼容测试的重点是,...
  • 开源软件自动化测试平台

    千次阅读 2006-06-09 17:58:00
    开源软件总是处于不断演化和变动之中,这是它的一个重要特点。人们往往需要随时得知一个特定开源软件(开源组件)的实际可用状况。当今,国际上专门从事这方面工作的组织就是SpikeSource公司。根据SourceForge.net的...
  • 自动化软件测试及调试工具 DT10

    千次阅读 2015-06-16 13:46:32
    创提信息科技(Trinity Technologies) 专业软件测试服务商, 将新一代嵌入式软件...在主机平台上,我们常常听到诸如QTP, TestComplete等等自动化测试解决方案,但在嵌入式软件测试上,这些产品显然无能为力,而这恰
  • 自动化测试介绍 自动化测试(Automated Testing),是指把以人为驱动的测试行为转化为机器执行的过程。实际上自动化测试往往通过一些测试工具或框架,编写自动化测试用例,来模拟手工测试过程。比如说,在项目迭代...
  • 什么是自动化测?    做测试好几年了,真正学习和实践自动化测试一年,自我感觉这一个年中收获许多。一直想动笔写一篇文章分享自动化测试实践中的一些经验。终于决定花点时间来做这件事儿。  首先理清...
  • 人工智能自动化测试探索

    千次阅读 2019-05-17 17:41:08
    自动化测试技术从最初的模拟硬件方式,到基于数据驱动,基于关键字驱动,再到现在基于功能和指令驱动的自动化测试技术,在各类软件项目中的应用也越来越多,越来越成熟。自动化测试技术有良好的可重复性,高并发和高...
  • 自动化测试是什么?

    千次阅读 2018-10-13 16:09:56
    什么是自动化测试? 当我第一次知道自动化测试的时候,除了知道“自动化”这三个有些高大上的称呼之外,我对自动化测试一无所知,正如谈恋爱一样,找女朋友之前要知道她是谁。 那么是什么自动化呢? 自动化难以...
  • 自动化设计】自动化测试面试题

    千次阅读 2018-11-14 19:17:02
    1)什么是自动化测试? 自动化测试是一种使用自动化工具编写和执行测试人员测试脚本和案例的技术。 自动化测试的主要目标是减少手动运行的测试用例数量,而不是完全取消手动测试。 2)什么时候自动化测试? 在...
  • 适合做自动化测试的系统,通常是一些生命周期比较长、且系统功能实现自动化测试也较为容易的项目或产品。  2. 确定自动化测试的风险 根据所属系统的开发平台、界面特性、测试环境搭建维护的难易程度,以及测试...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 111,752
精华内容 44,700
关键字:

自动化软件产品特点