版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
陈翔博士xchencs@南通大学计算机科学与技术学院软件测试技术
工欲善其事,必先利其器9.1软件测试自动化的内涵9.2测试自动化实现原理9.3测试自动化的实施9.4功能测试工具9.5性能测试工具9.6缺陷跟踪系统软件测试自动化92/7/2023南通大学计算机科学与技术学院9.1软件测试自动化的内涵2/7/2023南通大学计算机科学与技术学院4据统计:软件测试占整个软件开发时间的40%。一些可靠性要求高的软件,软件测试甚至占整个软件开发时间的60%软件测试工作具有一定重复性,例如回归测试等上述因素驱动了软件测试自动化技术的产生和发展手工测试的不足2/7/2023南通大学计算机科学与技术学院5无法做到覆盖所有可行代码路径,难以测定测试用例的覆盖率难以捕捉与时序、死锁、资源冲突和多线程等有关的错误在系统负载、性能测试时,需要模拟大量数据或大量并发用户等大负载的应用场合在系统做可靠性测试时,需要模拟系统运行很长时间,以验证系统能否稳定运行回归测试中,希望能短时间内执行所有的测试用例测试仅能检测出被测软件存在缺陷,在一些关键性软件中,需要考虑采用形式化验证方法测试自动化定义2/7/2023南通大学计算机科学与技术学院6把人为驱动的测试转化为机器执行的一种过程,既模拟手工测试步骤,通过执行由程序语言编制的测试脚本,自动的完成软件的单元测试、功能测试、负载测试或性能测试等工作由手工执行测试用例转为由测试工具自动执行测试用例仅借助测试工具还不够,还需要借助网络通信环境、脚本语言、改进的开发流程等测试自动化2/7/2023南通大学计算机科学与技术学院7软件测试过程完全实现自动化,不需要任何的人工参与或干涉,这是不现实的但“全过程的自动化测试”思想是非常重要的自动化测试的含义可以理解为“一切可以由计算机系统自动完成的测试任务都已经由计算机系统或软件工具、程序来承担并自动执行”,它包括三层含义:“一切”不仅指测试执行工作,还包括其他工作,如缺陷管理、测试用例管理、环境安装、设置和维护等“可以”指某些创新性工作可能仍需手工处理,如脚本开发、测试用例设计等即使由系统进行自动化测试,还少不了人工干预,包括实现安排自动化测试任务、测试结果分析、调试测试脚本等测试自动化的优点2/7/2023南通大学计算机科学与技术学院8自动运行的速度快、执行效率高永不疲劳,每周可以工作7天,每天可以工作24小时测试结果精确可靠性高,不会数据造假可复用性高,例如测试用例复用有些手工测试无法完成的任务,自动化测试可以完成,例如负载测试上述优点给软件测试带来的益处2/7/2023南通大学计算机科学与技术学院9缩短软件开发测试周期提供更高质量的产品软件过程更为规范测试效率更高、充分利用硬件资源节省人力资源、降低测试成本增强测试的稳定性和可靠性提高软件测试的准确度和精确度手工不能完成的事情,软件测试工具可以完成高昂的团队士气手工测试
发现缺陷率高容易实施创造性、灵活性
覆盖率量化困难
重复测试效率低不一致性、可靠性低依赖人力资源
高效率(速度)高复用性覆盖率容易度量准确、可靠不知疲劳激励团队士气
机械、难以发现缺陷一次性投入大自动测试手工测试vs.自动测试正确认识测试自动化不现实的期望注定测试自动化的失败测试自动化能:显著降低重复手工测试的时间建立可靠、重复的测试,减少认为错误增强测试质量和覆盖率测试自动化不能:完全替代手工测试和手工测试工程师保证100%的测试覆盖率弥补测试实践的不足9.2测试自动化实现原理2/7/2023南通大学计算机科学与技术学院12测试自动化实现基础是可以通过特定程序(包括脚本、指令)模拟测试人员对计算机的操作过程及其行为,将操作过程转化为测试工具可执行的脚本;然后对脚本进行修改和优化,加入测试的验证点;最后通过测试工具运行脚本,将实际输出与预期输出进行比对,确定测试是否通过。包括:代码分析对象识别脚本技术自动比较技术测试自动化系统的构成自动化测试的流程举例保存脚本记录执行Log验证测试结果启动应用、执行脚本调用脚本创建脚本录制对象及其操作插入验证点调试脚本启动应用测试报告代码分析(1)2/7/2023南通大学计算机科学与技术学院14最早进行代码分析的工具是编译器,但仅检查被测代码中是否语法错误。随后一些工具可用于检测出一些可疑代码结构,例如贝尔实验室的SteveJohnson开发出的代码分析工具Lint例如将“==”写成“=”,函数接口参数不一致问题等代码分析(2)2/7/2023南通大学计算机科学与技术学院15目前代码分析工具通过插件的形式内嵌到集成开发环境(IDE),例如针对Eclipse工具代码规则或代码风格的检查工具,例如Checkstyle、FindBugs、Jlint和PMD等检查和移除冗余代码的分析器,例如DuplicationManagementFramework对象识别2/7/2023南通大学计算机科学与技术学院16目前存在两种方式按照屏幕的实际像素坐标来定位。方法简单,但生成的脚本可读性差、维护性差、在不同分辨率下脚本可能不能运行通过寻找UI的对象(如窗口、按钮、滚动条等)来确定操作的目标目前的主流方法。例如微软的VisualStudio中就包含了spy++,可以用来识别各种windows的GUI对象可以通过WindowsAPI函数或者采用反射机制(Reflection)2/7/2023南通大学计算机科学与技术学院17脚本技术2/7/2023南通大学计算机科学与技术学院18脚本是一组测试工具执行的指令集合脚本可以分为线性脚本结构化脚本数据驱动脚本关键字驱动脚本线性脚本2/7/2023南通大学计算机科学与技术学院19最简单的脚本,以流水账方式描述测试过程通过录制手工执行的测试用例得到的脚本包含所有的击键、移动和输入数据等也可加入一些简单指令,如时间等待、比较指令等适合Web页面测试、图形用户界面测试简单示例2/7/2023南通大学计算机科学与技术学院20结构化脚本2/7/2023南通大学计算机科学与技术学院21对线性脚本的加工,类似于结构化设计的程序,是脚本优化的必然途径之一包含选择结构、分支结构、循环结构等简单示例2/7/2023南通大学计算机科学与技术学院22数据驱动脚本2/7/2023南通大学计算机科学与技术学院23将测试脚本和数据分隔开来提高脚本的使用效率和可维护性简单示例2/7/2023南通大学计算机科学与技术学院24另外一个例子2/7/2023南通大学计算机科学与技术学院25关键字驱动脚本2/7/2023南通大学计算机科学与技术学院26脚本用一个简单的表格来表示是数据驱动脚本的逻辑拓展可以提高脚本编写的效率,提高脚本的维护效率每个测试人员都可以写这类脚本命令对象值注释自动比较技术2/7/2023南通大学计算机科学与技术学院27自动执行测试脚本时,将捕获的结果和预先准备的输出进行比较,判断测试用例是否通过精确比较设定阈值,允许存在微小的差异测试自动化系统的构成(1)2/7/2023南通大学计算机科学与技术学院28简单的情况在单台测试机器上运行测试工具,由这台机器执行测试用例、显示测试过程和记录测试结果但在大规模的自动化测试过程中需要多台机器协助工作,还需要调度、控制这些测试机器、需要特定的服务器用于存储和管理测试任务、测试脚本和测试结果测试自动化系统的构成(2)2/7/2023南通大学计算机科学与技术学院29测试自动化的组成部分构建、存放程序软件包和测试软件包的文件服务器存储测试用例和测试结果的数据库服务器执行测试的运行环境——测试实验室或一组测试服务器控制服务器Web服务器客户端程序测试自动化的基本结构机房客户端文件服务器数据库服务器Web服务器控制程序拷贝测试文件拷贝测试结果分派工作分派工作查询结果Build系统编译获取测试任务、数据更新显示软件包发布指令9.3测试自动化的实施2/7/2023南通大学计算机科学与技术学院311、测试工具的分类2、测试工具的选择3、测试自动化普遍存在的问题测试工具的分类2/7/2023南通大学计算机科学与技术学院32白盒测试工具静态测试工具:直接对代码进行分析包括Compuware公司的CodeReview、Telelogic公司的Logiscope软件、PR公司的PRQA软件动态测试工具:需要运行被测软件如Compuware公司的DevPartner软件、IBM公司的RationalPurify系列黑盒测试工具通过记录/回放方式HP公司的QuickTestProfessional、IBM的RationalFunctionaltester、Parasoft公司的WebKing、Segue公司的SilkTest等测试工具的选择2/7/2023南通大学计算机科学与技术学院33根据项目测试需要,确定需要哪一类软件白盒测试工具Vs黑盒测试工具功能性测试工具Vs负载测试工具一旦确定软件类型如果是开源工具,下载并试用一段时间如果是商业工具,邀请商家过来做演示,然后根据演示效果、价格、功能和售后服务进行综合评估测试自动化普遍存在的问题2/7/2023南通大学计算机科学与技术学院34不正确的观念或不现实的期望缺乏具有良好素质、经验的测试人才测试工具本身的问题影响测试质量没有进行有效的、充分的培训没有考虑到公司的实际情况,盲目引入测试工具没有形成一个良好的使用测试工具的环境其他技术问题和组织问题9.4功能测试工具2/7/2023南通大学计算机科学与技术学院35Selenium及其应用Selenium及其应用适合Web应用的测试,可直接运行在浏览器之上,所见即所得跨平台,支持多操作系统和多种浏览器支持分布式应用的测试,构造一个完整的解决方案支持两种开发脚本的模式testrunner(HTML文件)和driven(脚本语言编写支持多种脚本语言,包括Java、C#、PHP、Perl、Python和Ruby等IDE界面操作演示
录制测试脚本执行测试脚本测试结果Testrunnervs.驱动模式脚本HTML表格方式关键字驱动脚本Java/C#/…强大、灵活与xUnit集成Selenium测试用例开发
主文件:TestRunner.html/TestRunner.htaTestsuite/case文件引擎库js文件
user-extensions.jsSelenium执行模式9.5性能测试工具JMeter及其应用2023/2/742JMeter-2JMeter-3性能测试工具的主要特性能模拟实际用户的操作行为,记录和回放多用户测试中的事务处理过程,自动生成相应的测试脚本能针对脚本进行修改,增加逻辑控制、完成参数化和数据关联可以设置不同的应用环境和场景,通过虚拟用户执行相应的测试脚本通过系统监控工具获得系统性能的相关指标的值开源工具Siege(/JoeDog/Siege)是一个开源的Web压力测试和评测工具。OpenSTA,可以模拟大量的虚拟用户来完成性能测试,并通过scrīpt来完成丰富的自定义设置。详见/index.php。DBMonster是一个生成随机数据、用来测试SQL数据库的压力测试工具,详见http://dbmonster.kernelpanic.pl/。LoadSim——网络应用程序的负载模拟器。更多的性能测试工具,可访问/performance.php
商业工具
HPLoadRunnerIBMRationalPerformanceTesterRadviewWebLoad
CompuwareQA
Load
QuestBenchmarkFactory
微软WAS(WebAccessStresstest)
PaesslerWebserverStressTool
MINQPureLoad
9.6缺陷跟踪系统2/7/2023南通大学计算机科学与技术学院48缺陷报告、跟踪和处理一般通过基于Web和数据库的缺陷管理系统来支持,而不能简单通过Word或Excel进行处理缺陷跟踪系统的优点2/7/2023南通大学计算机科学与技术学院49基于缺陷数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北省重点高中协作体2025届高三下学期第五次调研考试语文试题含解析
- 黑龙江省哈尔滨市示范名校2025届高考数学一模试卷含解析
- 安顺市重点中学2025届高三下学期第五次调研考试语文试题含解析
- 湖北省武汉市外国语学校2025届高三第二次调研英语试卷含解析
- 广东省兴宁市沐彬中学2025届高三第一次调研测试英语试卷含解析
- 2025届山东省德州市乐陵一中高三冲刺模拟英语试卷含解析
- 2025届内蒙古赤峰市、呼和浩特市校际联考高考英语一模试卷含解析
- 2024年度计算机软硬件采购与租赁合同3篇
- 年度软件许可使用合同(2024版)
- 2024年度高档住宅区消防设施维护合同3篇
- 铁路工程施工方案审查内容
- 23年-具有良好的商业信誉和健全的 财务会计制度承诺函
- 小学音乐期末考试方案
- 市场营销-喜茶的品牌营销策略分析论文
- 高中出国成绩单模版(中英文)
- 卷扬机专项施工方案
- 波峰焊实验设计分析报告
- 石阡县年产30万吨饮用天然矿泉水产品建设项目(取水工程变更)环评报告
- 山东济宁旅游PPT介绍济宁幻灯片模板
- 初中英语- It's important to get enough sleep.2a教学课件设计
- 2022年初中语文新课标(附权威解读)
评论
0/150
提交评论