自动化测试测试现状及问题1•测试筹备•测试实施•系统内部测试•系统连接测试(LT)•系统集成测试(SIT)•用户接受测试(UAT)•测试审核现象:接口测试,测试数据种类繁多,具有大量的测试案例现象:大量集成测试案例,代码、界面不稳定,版本更新极为频繁现象:大量业务测试案例,代码、界面不稳定,版本更新比较频繁•运营维护测试问题:关注关键数据,执行少量的、关键的测试案例,测试不足问题:测试人员少,无法承受重复的繁重工作量,执行少量的、关键的测试案例,测试不足问题:测试人员少,无法承受重复的繁重工作量,执行少量的、关键的测试案例,测试不足现象:版本定期发布,大量回归测试案例,代码、界面稳定问题:大量回归测试案例,无足够手工回归测试人员,测试不足自动化测试的标准应用测试阶段的功能测试–背景:在高覆盖率要求的前提下,每个功能的测试案例量很大,并且由于测试阶段中不断的代码修改、集成,重复测试的次数很多–应用:自动化功能测试,包括接口功能测试、界面安全性测试、业务功能测试,提高测试的覆盖率,降低测试的工作强度–限制:由于测试阶段中的代码和界面的频繁变更,自动化的覆盖率应以少量覆盖、关键覆盖为原则测试阶段的业务流测试–背景:在集成测试和用户接受测试阶段中,业务流程的测试是主要工作内容。但是,每个业务流程由于操作步骤多,导致执行时间长,重复的执行增加了测试的工作量和加重了工作负担–应用:自动化业务流测试,提高测试的覆盖率,降低工作强度–限制:同样由于测试阶段中的代码和界面的频繁变更,自动化的覆盖率应以少量覆盖、关键覆盖为原则运营维护阶段的回归测试–背景:在运营维护阶段,每次新版本发布前,应进行充分的回归测试,确保部分代码的变更不会影响大部分未变更的代码正确性。但是,通常情况下,这个阶段中不会固定拥有大量的测试人员来实施手工回归测试工作–应用:自动化功能测试,自动化业务流测试–限制:独立的测试环境引起资源争用或者巨大投入,在资源受限的情况下,应以最小化占用资源的方式进行2解决思路初探自动化接口功能测试:测试数据自动生成,依据报文规范自动生成测试脚本,自动执行接口功能测试,提高接口测试的覆盖率,促进开发质量核心业务集自动化测试:少量自动化测试工程师,自动化少量核心业务,版本更新时快速执行,保障核心模块的质量,提高测试效率核心业务集自动化测试:少量自动化测试工程师,自动化少量核心业务,版本更新时快速执行,保障核心模块的质量,提高测试效率自动化功能测试、自动化业务流测试:自动化测试小组,计算可行自动化率,建设自动化回归测试技术平台,长期运行自动化测试,保障系统运行质量自动化测试的实际应用•测试筹备•测试实施•系统内部测试•系统连接测试(LT)•系统集成测试(SIT)•用户接受测试(UAT)•测试审核•运营维护测试3实施难度与风险自动化测试机构–设计、实现自动化测试技术平台–自动化测试可行性分析;确定自动化率目标和自动化测试需求–设计、实现可执行的自动化测试业务测试过程和组件–设计、实现自动化执行机制;执行自动化测试业务测试机构–提供业务测试需求–提供业务测试案例,包括操作步骤、业务数据和验证方法测试环境–自动化测试环境的基础设施支持项目组–自动化测试环境的应用环境支持–自动化测试组件开发的技术支持标准实施角色测试管理机构–建设自动化测试体系–规划自动化测试技术平台–根据软件项目测试需要确定项目级自动化测试策略–自动化测试工作的计划、组织和协调–自动化测试环境的计划、组织和协调–自动化测试缺陷与手工测试缺陷的关联管理–自动化测试结果的分析、评估与审定测试管理自动化测试管理手工测试的传承自动化测试实施自动化测试支持自动化测试支持自动化测试–自动化测试角色不了解信息应用系统的业务–若无详细的测试需求,无法快速分析、确定自动化测试需求–若无详细的测试案例,无法快速设计自动化测试案例–学习业务的工作量较大业务测试–当前业务测试规范度尚未完善–业务测试案例尚未达到符合标准的程度–为自动化测试编制符合要求的测试案例带来较大的工作量测试环境项目组–自动化测试的组件开发需要项目组提供软件界面处理逻辑的详细文档,或者由项目组的开发人员提供技术支持,导致工作量较大实施难度1自动化测试设计–自动化测试的脚本开发与应用软件的界面、代码变更息息相关–自动化测试的脚本量越大,维护工作量就越大–若实施准备不足或风险预估不完整,甚至导致实现失败实施难度2自动化测试业务测试测试环境项目组自动化测试实现–自动化测试可能遇到多项目并行的情况–给自动化测试的管理带来较大的难度要求实施难度3–自动化测试在运营维护期的执行过程中需要对测试环境独占–若测试环境资源有限,会造成无测试环境资源或者测试环境资源严重争用的情况自动化测试业务测试测试环境项目组自动化测试执行降低业务测试不规范带来的各种工作量最低标准测试需求测试案例手工测试自动化测试工作重点=提高测试需求和测试案例的规范度工作重点=自动化测试设计、实现与执行手工测试规范度不足最高标准测试需求测试案例手工测试规范度满足问题:1)不足以设计自动化测试解决:1)依据最低标准,基本设计2)向业务测试角色学习、补充3)提高业务认识,补充设计依据最高标准,直接设计改进发展积累提高自动化测试技术平台测试执行•测试执行组织调度子系统•测试运行计划设计子系统•测试执行子系统•测试执行监控子系统测试分析•测试分析子系统测试管理•项目管理子系统•用户管理子系统•测试需求管理子系统•业务组件管理子系统•业务测试过程管理子系统•BC、BP开发子系统•测试数据管理子系统自动化测试技术平台自动化测试技术平台的建设目标自动化测试技术平台平台目标设计工作可视化操作测试数据集中管理测试结果综合分析测试执行自动控制1234问题解决1自动化测试技术平台项目管理子系统用户管理子系统项目自动化测试工作项目自动化测试工作项目自动化测试工作项目自动化测试工作《自动化测试管理办法》《自动化测试管理规程》《自动化测试规范》多项目并行内容大纲一、技术发展趋势二、ROI分析三、流程、案例示例四、组织管理五、自动化测试体系六、应用系统架构七、集成架构没有测试手工测试•时间紧•可靠性低•人力缺乏•无法保证一致性•无法重复快速可重复高覆盖率高可靠性重用性强自动测试一、技术发展趋势-11、将乏味且人工容易出错的工作进行自动化,实现功能的回归测试,在应用程序修改之后,运行自动化测试脚本,快速完成回归测试2、将重复的测试工作自动化完成,为其他方法的测试赢得更多时间;3、降低测试成本,提高测试复用度和测试效率,占用少量的业务测试人力资源一、技术发展趋势-2录制回放脚本技术数据驱动关键字驱动业务驱动可维护性低中中中高可靠性低高高高高效率低中中中高可复用性低中中高高健壮性低高高高高可移植性低低中中中易用性高低中中高内容大纲一、技术发展趋势二、ROI分析三、流程、案例示例四、组织管理五、自动化测试体系六、应用系统架构七、集成架构基于风险和复杂度评估达到测试目标的最佳性价比测试自动化基本实践方法ProcedureforXRisk根据特定测试风险等级来选择合适的测试过程.通过以测试过程的最优组合和资源、进度、风险的约束来多次运行自动化测试次数,来达到最小化工作量的目标方法过程HighRiskMediumRiskLowRiskHigh复杂度Medium复杂度Low复杂度Assumingtestcasesforallrisksandcomplexitiesarein-scopeforeachtestcycle.AutomationROIMatrix测试范围由风险驱动测试(例如:高风险的项先被测试)自动化的优先顺序:对于能尽快(最少运行次数)达到投资回报平衡点高风险的测试案例优先低复杂度的测试案例优先优先级策略自动化测试工作任务的优先级#ofTestCyclesforBeginningofReturnonAutomation复杂度RiskHighMediumLowHigh5.05.95.5Medium6.67.38.1Low5.07.38.11342#-Priority#/Order58697自动化测试目标只适用于功能测试阶段,因为一般会:给定预算,进度,资源给定平均或期望的测试运行次数根据业务流程的不同(复杂度和风险)最大化自动化率(只能达到有限值)初级阶段目标可以适用于回归测试:自动化率可以逐步提高增加自动化测试的次数减少测试运行时的缺陷高级阶段目标通过灵活的合理的自动化测试目标最大化时间和资源的利用率和价值二、ROI分析-1Assumingtestcasesforallrisksandcomplexitiesarein-scopeforeachtestcycle.AutomationROIMatrix#ofTestCyclesforBeginningofReturnonAutomation8.17.35.0Low8.17.36.6Medium5.55.95.0HighLowMediumHigh复杂度Risk#ofTestCyclesforBeginningofReturnonAutomation8.17.35.0Low8.17.36.6Medium5.55.95.0HighLowMediumHigh复杂度Risk1342#-Priority#/Order58697二、ROI分析-2自动化测试固定成本的例子:硬件应用软件的许可证应用软件的技术支持自动化测试环境的设计和搭建自动化测试环境的维护脚本开发工具软件脚本开发工具的许可证测试工具的培训测试工具的引入和启动自动化测试可变成本的例子:自动化测试用例的设计自动化测试用力的实现自动化测试的维护自动化测试用例的执行自动化测试结果的分析缺陷的报告测试结果的报告测试执行数据的保存自动执行的测试手工测试共同要素的例子:被测软件分析测试规划基础测试设计缺陷报告测试结果报告内容大纲一、技术发展趋势二、ROI分析三、流程、案例示例四、组织管理五、自动化测试体系六、应用系统架构七、集成架构三、流程、案例示例-1三、流程、案例示例-2手工测试流程自动化测试工程师环境支持测试经理业务测试人员软件工程师测试计划测试方案交易分支模板交易分支案例设计业务测试案例设计测试场景设计交易分支案例自动化构建业务流案例自动化构建测试执行场景构建自动化执行测试执行分析测试执行分析修复缺陷测试分析报告被测系统环境构建测试环境管理手工执行自动化测试工程师环境支持测试经理业务测试人员软件工程师自动化测试工程师自动化测试工程师自动化测试工程师环境支持环境支持环境支持测试经理测试经理测试经理业务测试人员业务测试人员业务测试人员软件工程师软件工程师软件工程师测试计划测试计划测试方案测试方案交易分支模板交易分支模板交易分支案例设计交易分支案例设计业务测试案例设计业务测试案例设计测试场景设计测试场景设计交易分支案例自动化构建交易分支案例自动化构建业务流案例自动化构建业务流案例自动化构建测试执行场景构建测试执行场景构建自动化执行自动化执行测试执行分析测试执行分析测试执行分析测试执行分析修复缺陷修复缺陷测试分析报告测试分析报告被测系统环境构建被测系统环境构建测试环境管理测试环境管理手工执行手工执行三、流程、案例示例-3交易分支•交易分支案例:–给交易分支增加一组数据,成为交易分支案例——为具体的测试案例所使用•交易分支的视图:–交易分支输入文档(设计)–交易分支脚本(自动化测试)•交易分支对应:–交易–交易的执行分支覆盖三、流程、案例示例-6业务测试案例•业务测试案例–具有输入、输出参数–每个步骤都由交易分支案例组成,可以进行数据传递,如:传递帐号。–每个交易分支案例,都具有执行中使用的柜员信息–具有校验功能–由业务案例设计人员设计内容大纲一、技术发展趋势二、ROI分析三、流程、案例示例四、组织管理五、自动化测试体系六、应用系统架构七、集成架构四、组织管理-1其它机构测试管理