版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章自动化测试概述《自动化测试应用教程(Web+App)》学习目标/Target了解自动化测试的概念,能够说出什么是自动化测试
熟悉自动化测试的优缺点,能够列举自动化测试的4个优点和2个缺点熟悉自动化测试的分类,能够列举自动化测试的类型熟悉自动化测试的基本流程,能够列举自动化测试基本流程中的11个阶段了解自动化测试的常用工具,能够说出6款常用的自动化测试工具章节概述/Summary在软件开发过程中,软件测试是必不可少的工作环节,在软件测试的过程中有很多测试工作都是重复性的,为了能够使测试工作更加高效和准确,可以用软件自动化测试来代替人工测试。尤其在一些软件产品研发周期长的项目中,软件自动化测试能利用自动化测试工具和技术框架更快地实现测试工作,从而保证软件产品的质量。本章将对自动化测试的概念、优缺点、分类、基本流程和常用工具进行讲解。目录/Contents0102自动化测试简介自动化测试的基本流程03自动化测试的常用工具自动化测试简介1.11.1.1自动化测试的概念
先定一个小目标!了解自动化测试的概念,能够说出什么是自动化测试1.1.1自动化测试的概念测试的概念人工测试的概念通常,软件测试的测试方式分为人工测试和自动化测试,人工测试是由测试人员编写并执行测试用例,然后观察测试结果与预期结果是否一致的过程;自动化测试是通过测试工具来代替或辅助人工去验证系统功能是否有问题的过程。1.1.1自动化测试的概念采用自动化测试需要满足以下3个条件。(1)项目需求变动不频繁测试脚本的稳定性决定了自动化测试的维护成本。如果项目需求变动过于频繁,测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本,然后不断地对测试脚本代码进行修改和调试,有时候还需要花费很多时间对自动化测试的框架进行修改。1.1.1自动化测试的概念在自动化测试过程中,测试工具需要多次对项目进行测试后才能有效预防项目中的缺陷,并且在这个过程中测试人员还需要设计自动化测试框架、编写并调试自动化测试脚本代码,这些操作都需要足够的时间才可以完成。只有给予充足的时间,测试人员才能编写出高质量的测试脚本代码,从而提高自动化测试的质量。(2)项目进度压力不大且时间不紧迫1.1.1自动化测试的概念在自动化测试过程中,测试人员需要耗费一定的时间去编写测试脚本代码,如果测试脚本代码的复用率比较低,就会使编写脚本代码过程的成本大于创造的经济价值,这样会增加项目开发的经济负担。为了使项目开发的经济价值实现最大化,通常当在多种操作系统、浏览器上可以重复运行相同的测试脚本时,才会使用自动化测试。(3)多种操作系统、浏览器上可以重复运行相同的测试脚本1.1.1自动化测试的概念另外,在需要投入大量时间与人力测试的时候,也可以使用自动化测试,例如压力测试、性能测试、大量数据输入测试等。1.1.2自动化测试的优缺点
先定一个小目标!熟悉自动化测试的优缺点,能够列举自动化测试的4个优点和2个缺点1.1.2自动化测试的优缺点自动化测试与人工测试相比,既有优点也有缺点。自动化测试虽然能够解决人工测试不能解决的测试场景复杂的问题,但是自动化测试也不能完全代替人工测试。例如,人工测试中测试人员通过大脑思考的逻辑判断和细致定位操作是自动化测试不能完成的,此外,测试人员的测试经验和猜测程序是否有错的能力也是自动化测试不具备的。聚焦网络虫通用网络爬虫深层网络爬虫1.1.2自动化测试的优缺点提高测试精确度提高回归测试效率可以完成人工测试很难实现的测试提高测试人员利用率1.自动化测试的优点1.1.2自动化测试的优缺点增量式网络爬虫深层网络爬虫当一个项目中的用户界面(UserInterface,UI)修改比较频繁或项目中开发了新功能,但项目中原来的大部分功能结构都没有改变时,可对此项目进行回归测试。此时,只需要重新按照预先设计好的测试用例和业务操作流程进行测试即可。自动化测试减少了人工测试时需要进行的多次回归测试操作,从而提高了测试工作的效率。(1)提高回归测试效率1.1.2自动化测试的优缺点在部署好测试环境和测试场景后,自动化测试可以在无人看守的状态下进行,并对测试结果进行分析,这使测试人员可以将时间和精力投入到其他更有意义的测试工作中,从而减少测试人员的工作量。(2)提高测试人员利用率1.1.2自动化测试的优缺点在人工测试的过程中,会出现每次测试的操作步骤和顺序不一样的问题,这样会导致测试结果不准确。自动化测试在测试的过程中是由测试工具每次按照相同的步骤不断自动执行测试操作来完成的,不仅可以保证在测试过程中比人工测试出现更少的错误或误差,还可以保证每次测试的操作步骤和顺序的一致性,从而提高了测试精确度。(3)提高测试精确度1.1.2自动化测试的优缺点当需要对项目进行负载测试或压力测试时,需要大量用户同时访问并操作该项目。此种类型的测试需要模拟大量用户的参与,很难通过人工测试实现,此时可以通过自动化测试来完成。(4)可以完成人工测试很难实现的测试1.1.2自动化测试的优缺点发现的缺陷(Bug)数量比人工测试少且不易发现新缺陷不能提高测试的有效性自动化测试的缺点2.自动化测试的缺点1.1.2自动化测试的优缺点自动化测试的脚本是用代码编写而成,在测试过程中,脚本可能会出现异常或逻辑错误等情况,此时将无法提高测试的有效性。自动化测试工具本身也是一个产品,当它在不同的操作系统、浏览器或平台上运行时也可能会出现缺陷。(1)不能提高测试的有效性1.1.2自动化测试的优缺点自动化测试通常在人工测试之后开展,常用于回归测试。由于自动化测试使用的工具是没有思维的,无法进行主观判断,所以自动化测试只能用于发现新版本的软件中是否出现旧版本的软件中出现过的缺陷(Bug),不易发现软件中的新缺陷,并且发现的缺陷数量比人工测试要少。(2)不能发现的缺陷(Bug)数量比人工测试少且不易发现新缺陷1.1.3自动化测试的分类
先定一个小目标!熟悉自动化测试的分类,能够列举自动化测试的类型1.1.3自动化测试的分类自动化测试可以从项目的运行环境角度、软件开发周期角度、软件测试目的角度对自动化测试进行分类。1.1.3自动化测试的分类通用网络爬虫010203123从项目的运行环境角度,自动化测试可分为Web自动化测试和移动App自动化测试。从项目的运行环境角度分类从软件开发周期角度分类从软件测试目的角度分类从软件开发周期角度,自动化测试可分为单元自动化测试、接口自动化测试和UI自动化测试。从软件测试目的角度,自动化测试可分为功能自动化测试和性能自动化测试。1.1.3自动化测试的分类(1)Web自动化测试Web自动化测试是用自动化测试工具或框架代替部分人工测试来执行自动化测试脚本代码,验证网页或网站是否有异常的过程。Web自动化测试本质上属于黑盒测试(基于程序功能的测试),也就是对Web项目的用户界面进行的功能测试,除此之外,Web自动化测试有时也需要进行非功能性的测试,例如程序的兼容性、性能、安全性等方面的测试。(2)移动App自动化测试移动App自动化测试是通过自动化测试工具或框架对移动App进行测试的过程。与Web自动化测试一样,移动App自动化测试也需要进行功能性和非功能性的自动化测试。需要注意的是,在测试移动App项目时,还要对移动App的用电量、网络、下载和安装等测试项进行专项测试。1.从项目的运行环境角度分类1.1.3自动化测试的分类(1)单元自动化测试单元自动化测试是对程序的每个功能模块(函数、类方法)进行的测试,通常由开发人员完成。单元自动化测试主要是关注程序中代码实现的细节和业务逻辑。单元自动化测试通常采用白盒测试(基于程序代码逻辑的测试)的方法,检测程序的代码逻辑结构是否正确以及代码能否正常运行。2.从软件开发周期的角度分类1.1.3自动化测试的分类(2)接口自动化测试接口自动化测试是测试系统组件间接口的请求和返回的过程。接口自动化测试要求对数据传输、数据库性能、接口文档等进行的测试,从而保证数据传输以及处理的完整性。接口测试通常使用黑盒测试和白盒测试相结合的方式进行。(3)UI自动化测试UI自动化测试是对图形化界面进行流程和功能等方面的测试。UI自动化测试以用户体验为主,不能完全采用自动化测试来完成,有时也需要人工测试来确定用户界面的用户体验。借助测试工具可以提高UI自动化测试的准确性。1.1.3自动化测试的分类(1)功能自动化测试功能自动化测试是检查项目实际功能的输出结果与预期结果是否一致,以回归测试为主,针对系统中比较稳定的功能模块进行的测试,例如登录与注册功能模块、搜索功能模块、提交功能模块等。通常,功能自动化测试的对象是程序中的业务功能,无需考虑CPU的负载、内存使用情况和响应时间等因素。3.从软件测试目的角度分类1.1.3自动化测试的分类(2)性能自动化测试性能自动化测试是通过工具自动执行性能测试、收集测试结果,并分析测试结果的过程。通常需要验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,通过不断地测试与修改起到优化软件系统的目的。通常,性能自动化测试会对软件系统的压力、负载和容量等性能指标进行测试,同时还要考虑用户的体验,并确保系统的稳定性,从而达到用户满意。1.1.3自动化测试的分类性能自动化测试几乎能做到无人值守也能正常工作,它具有以下几个特性。自动收集测试结果并进行存储和分析。可以设定自动化任务,如并发用户数、执行测试次数等。提供类库,编写脚本时可直接使用。事务监控,在执行测试的过程中,如果发现异常错误,测试程序会自动发出预警邮件。自动化测试的基本流程1.21.2自动化测试的基本流程
先定一个小目标!熟悉自动化测试的基本流程,能够列举自动化测试基本流程中的11个阶段人工测试的基本流程可以分为9个阶段,分别是分析测试需求、制定测试计划、编写测试用例、执行测试用例、判断测试是否通过、记录测试问题、跟踪Bug、分析测试结果以及编写测试报告。与人工测试基本流程不同的是,自动化测试是通过编写测试脚本来执行测试用例,此外,自动化测试还需要搭建测试环境。1.2自动化测试的基本流程搜索引擎自动化测试的基本流程如右图所示。1.2自动化测试的基本流程搜索引擎聚合平台出行类软件1.2自动化测试的基本流程在自动化测试的基本流程中,第一个阶段是分析测试需求。通过分析测试需求不仅能知道测试目标,即需要测试项目中的哪些功能点,还可以明确每一个测试需求需要设计多少个测试用例。自动化测试无法覆盖项目中所有的功能点,但会尽可能地提高测试覆盖率。一般情况下,自动化测试优先考虑实现正向的测试用例,然后考虑实现反向的测试用例,大多数的反向测试用例都是在认真分析测试需求后筛选出来的。因此,确定测试覆盖率和测试用例的个数、筛选测试用例等工作都是在分析测试需求阶段完成的。1.分析测试需求1.2自动化测试的基本流程在分析测试需求之后需要制定测试计划,从而有利于跟进项目的测试进度。在制定测试计划阶段还要合理分配好测试人员以及测试所需的软硬件资源等。制定好测试计划后可以使用禅道或其他管理工具监管测试进度。2.制定测试计划1.2自动化测试的基本流程制定测试计划是自动化测试中的一个重要阶段,在这个阶段中有以下几点需要重点计划。(1)准入准出原则:确定自动化测试在什么时候可以开展,及达到什么样的标准后才可以结束。(2)测试范围:鉴别和确定测试需求的优先级。(3)进度安排:安排测试人员每周或每月测试进度。(4)人员安排:根据项目团队情况,合理分配测试人员进行测试用例的设计、测试环境的搭建、功能步骤拆解等工作。(5)风险评估:对项目中可能出现的风险进行评估,准备好解决方案。(6)软硬件资源分配:确定自动化测试需要的软件资源和硬件资源,如操作系统、数据库、服务器等配置。1.2自动化测试的基本流程编写测试用例的目的是为了让测试人员理清思路、熟悉测试步骤、提前准备好测试需要的数据。在编写测试用例时,需要编写用例编号、用例标题、用例级别、测试环境、测试数据、测试步骤、预期结果和实际结果等关键要素。3.编写测试用例1.2自动化测试的基本流程当需要测试一个项目时,首先需要搭建测试环境,才可以对项目进行测试。测试环境的搭建包括被测系统的部署、系统硬件的调用、自动化测试工具的安装和设置、网络环境的布置等。如果项目团队中的测试人员足够多,搭建测试环境和编写测试用例这两个阶段是可以同步进行。4.搭建测试环境1.2自动化测试的基本流程编写测试脚本阶段对测试人员的编程能力有一定的要求,测试人员需要具备编程能力,且至少能用一门编程语言编写脚本,例如Java、Python、PHP等语言。测试脚本代码实质上就是一些具有可维护性、可复用性、易用性、准确性的测试程序。测试人员还需要与开发人员沟通,了解软件内部结构,从而高效地编写测试脚本代码。编写完测试脚本代码后,测试人员还需要进行优化,例如添加数据文件处理、日志文件处理、数据库处理、公共检查点处理等,然后测试人员需要对测试脚本进行反复运行,以确保测试脚本的准确性。5.编写测试脚本1.2自动化测试的基本流程在自动化测试过程中,测试人员通过编写好的测试脚本执行测试用例,执行测试用例的过程就是对项目进行测试的过程。如果测试脚本不需要频繁改动,可以使用持续集成开发工具(Jenkins、GitLabCI)对项目进行自动化测试,以实现无人值守的测试,从而高效完成测试任务。6.执行测试用例1.2自动化测试的基本流程当集成开发工具执行测试用例时,会根据测试用例的执行结果判断测试是否通过。如果测试通过,则说明程序没有缺陷(Bug)。如果测试没有通过,则说明程序有缺陷(Bug)。7.判断测试是否通过8.记录测试问题在测试没有通过的情况下,测试人员需要记录测试出现的问题。通常,记录的内容包括测试环境、测试数据、问题截图等,最终由测试人员提交到Bug管理工具中。1.2自动化测试的基本流程测试人员将测试出现的问题提交到Bug管理工具中后,还需要定期对Bug的状态进行跟踪,以确认开发人员是否已经将这个Bug修复成功。在确认Bug是否修复成功的过程中会用到回归测试,也就是反复对有Bug的功能进行测试,直至Bug验证通过并将Bug状态更新为关闭。9.跟踪Bug1.2自动化测试的基本流程通常测试脚本执行失败后,自动化测试平台会自动上报一个Bug,这一阶段测试人员需要对测试的结果进行分析,确认这些Bug是不是项目本身真实存在的,如果发现Bug不是项目本身造成的,则需要测试人员检查测试脚本或测试环境是否存在问题,如果存在问题,则及时修复测试脚本或测试环境出现的问题。10.分析测试结果1.2自动化测试的基本流程在自动化测试的基本流程中,最后一个阶段是编写测试报告。测试报告是把自动化测试的测试项目、测试方法、测试环境、测试过程、测试结果等写成文档,需要重点对自动化测试过程中发现的问题进行分析,为修复软件存在的问题提供依据,同时为软件产品的验收和交付打下基础。11.编写测试报告1.2自动化测试的基本流程需要注意的是,如果客户临时调整了项目的需求,则需要测试人员更新测试用例,并对测试的脚本进行维护。测试脚本的维护是对之前的测试脚本进行适当的修改和调试,然后跟踪需要修改的功能,直至修改后的效果与客户的需求达成一致。注意自动化测试的常用工具1.31.3自动化测试的常用工具
先定一个小目标!了解自动化测试的常用工具,能够说出6款常用的自动化测试工具1.3自动化测试的常用工具随着软件测试技术的迅速发展,人们对软件测试的工作也越来越重视。由于自动化测试具有精确度高、效率高等优点,所以许多公司开始使用自动化测试工具来测试项目。如果测试人员能够正确地选择和使用自动化测试工具,不仅可以提高软件测试的质量,而且可以降低软件测试的成本。1.3自动化测试的常用工具下面介绍6款常用的自动化测试工具。Selenium是测试Web项目常用的自动化测试工具,该工具完全开源的。Selenium不仅支持多语言(Java、Python、PHP等语言)、多平台(Windows、Linux、Mac等平台)、多浏览器(Chrome、Firefox、IE等浏览器)、以及灵活易用等特点,而且提供了一系列支持Web项目进行自动化测试的函数。1.Selenium1.3自动化测试的常用工具Appium是一款测试移动App项目的开源工具,该工具封装了标准的Selenium客户端类库,也支持多平台(Android、iOS等平台)、多语言。2.AppiumJMeter是一款开源工具,可以用于进行Web项目的接口测试和性能测试,例如,测试系统静态、Scripts、Servlet、FTP服务器等。测试人员可以利用JMete
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 旅行的策划与感悟
- 2025年度电子产品全球配送与售后维护服务合同4篇
- 2025年度智能环保型厂房出售买卖协议书4篇
- 2025年度文化产业厂房购置及运营合作协议4篇
- 个人借贷抵押协议标准打印版2024年适用版B版
- 2025年度高科技厂房租赁合同(含知识产权保护)标准样本4篇
- 个人专项资金贷款合同范本:2024年版B版
- 2024科技创新项目引荐服务合作合同一
- 2025年度供应链金融合同履行的信用增级担保服务3篇
- 2024版特定担保书增补协议上诉文件版B版
- 起重机的维护保养要求与月度、年度检查记录表
- 消防设施维护保养记录表
- 城区生活垃圾填埋场封场项目 投标方案(技术方案)
- 垃圾分类巡检督导方案
- 大一护理生涯发展展示
- 五年级上册数学应用题100题及答案
- 中国绿色食品市场调查与分析报告
- 新生儿急救与复苏培训
- 外贸跟单员工作总结PPT
- UG-NX-8.5标准教程课件
- 神经科2023年度工作总结及2024年度计划
评论
0/150
提交评论