背景与问题
银行系统以功能复杂,对精度要求很高,包括联机交易和批量处理业务,也包括各种金融产品、流程银行、跨营业日业务,所以测试非常复杂。
此外,银行系统的测试,需要通过连接测试、功能测试、SIT(系统集成测试)、UAT用户验收测试等多个阶段,需要使用各种测试技术,才能够实现完善的交易覆盖、数据覆盖、流程覆盖、产品覆盖。
测试阶段划分
系统的测试,分成在不同阶段的不同测试:
开发阶段,主要进行内部测试,比如单元测试、代码走查等;
功能测试阶段,主要进行连接测试、功能测试;
系统集成测试阶段,主要进行系统测试、集成测试、性能测试、整体测试;
测试策略
针对系统的复杂度,从三个维度来进行测试用例设计:
交易维度:根据系统的各个交易来设计测试用例,达到交易的各个功能覆盖;
产品维度:按照金融产品来测试,主要在配置完成各个金融产品之后,对产品生命周期过程进行测试;
集成维度:按照多个系统之间、各个子系统之间的功能来进行功能测试;
测试过程
整个的测试过程,按照:
测试需求分析:根据需求,分析系统的功能点,得到测试大纲;
测试设计:根据测试大纲,按照不同的用例设计方法,设计测试用例
测试构建:按照各个系统的依赖关系,组成多个批次的测试用例,并且根据测试用例来构件测试数据
测试执行:按照轮次来依次执行,记录测试执行过程和提交发现的缺陷;
缺陷管理:根据预先定义好的缺陷管理流程,来跟踪处理缺陷,直到缺陷全部关闭,或者达到投产标准;
测试分析:分析测试过程,包括缺陷趋势、缺陷统计、测试用例分析、产能分析、质量分析等
测试用例设计
测试的过程包括:
需求建模:表述每个交易的输入输出、数据和约束、业务流程;
需求分析:根据需求书,分析各个功能点,以及功能点场景;
脚本设计():对每个交易的输入输出进行约束,并且以脚本的参数来关联;
场景设计:根据需求模型,创建不同的测试场景;
约束设计:定义各个字段的业务数据;根据需求的业务规则,使用数据来定义业务规则;也可以通过业务规则复用;设置不同的用例设计测试项组合;
生成测试用例:根据以上的阶段,设计完成测试用例,并且导入系统。
根据测试的业务交易对应的输入场,来设计不同的测试数据;
不同的测试数据,可以分类为内点、边界值、无效值,当生成测试用例,就可以自动生成不同类型的测试用例;
测试需求导入与分析
需求以树或者列表的方式导入系统:
通过excel或者word导入,实现需求的条目化;
跟踪每个需求的状态;
为每个需求关联对应的测试用例;
为每个需求关联发现的缺陷;
设置需求的评审状态;
测试计划
按照各个系统的依赖关系,确定测试计划,安排执行的轮次;
把相关功能的测试用例安排到一个测试集合中;
可以通过敏捷,实现多个版本的快速迭代测试;
测试执行
测试用例执行过程:
选中准备执行的测试集合,发起执行;
创建测试环境,分配给具体的测试工程师测试任务;
执行测试用例,并且提交测试过程数据;
对发现的缺陷提交到缺陷管理系统;
填报测试过程数据,包括:测试执行步骤、测试执行的附件(截屏)、测试执行的描述,每个步骤执行的情况、执行的状态(成功、失败、无法执行)等信息。
测试分析
测试分析,主要是对测试的目标范围、测试的策略、测试的过程、测试发现的问题进行分析,以及给出是否通过的结论
缺陷严重等级统计图:
缺陷---模块分布图:
缺陷分布统计图:
通过完整的系统测试到集成测试的解决方案,能够覆盖关键业务的核心功能及相关业务指标,关键业务路径,确保系统和集成测试能完全覆盖业务功能。