一、分层架构概述
(一)分层架构概念
- 软件架构的一种范式,也是标准架构中的一种;
- 将架构分为若干个层次,每层有各自职责,层与层之间通过接口交互和传递信息;
- 本层不用了解其它层的实现细节,只要考虑与本层相关的两层之间的接口和调用的情况。
1、表示层
用户界面层,负责业务和视图的展开。
- 基于Web端的表示层
- 基于PC端的表示层
- 基于移动端的表示层
2、服务层
应用层,为表示层提供各种服务支持。如用户登录等。
3、业务逻辑层
领域层,负责业务的规则、业务的流程方面逻辑的实现。
- EJB组件用于封装业务逻辑,使得开发人员无需再担心数据访问、事务处理支持、安全性、高速缓存和并发等琐碎任务的编程。
4、数据层
负责数据访问、数据管理服务。
(二)分层架构优缺点
1、优点
- 复用性强
- 利于合作开发
- 分层独立
- 维护方便
- 这种风格支持基于可增加抽象层的设计,允许将一个复杂问题分解成一个增量步骤序列的实现。
- 不同的层次处于不同的抽象级别:越靠近底层,抽象级别越高;越靠近顶层,抽象级别越低;
- 由于每一层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,同样为软件复用提供了强大的支持。
2、缺点
- 性能下降
- 成本增加
- 并不是每个系统都可以很容易地划分为分层的模式。
- 很难找到一个合适的、正确的层次抽象方法。
二、质量特性
(一)表示层质量特性
1、常规测试项
包含web端、PC端、移动端表示层的共同测试项。
(1)内容显示和必输项检查
- 名称是否显示正确
- 是否是必输项
- 初始值及状态检查
- 元素关联性检查
- 信息内容正确性检查
- 控件类型是否显示正确
- 输入、输出、可视
(2)按钮/链接正确性检查
- 按钮/链接点击后在没有得到返回前按钮需不可用
- 点击按钮/链接后可正常跳转到相应界面或窗口或执行
(3)通用检查
- 风格一致 (与同类界面视觉风格、字体、图标一致)
- 标题显示 (界面标题和任务栏显示的标题正确)
- 元素位置 (元素水平、垂直对齐)
- 元素尺寸 (元素尺寸合理,行列间距一致)
- 窗口特性 (切换、移动、改变大小、刷新时界面正常)
2、基于Web端的表示层测试
(1)浏览器可移植性测试
- 浏览器矩阵
(2)页面性能测试
- 响应时间的可接受度
(3)Web端涉及的质量特性
- 可移植性
- 易用性
- 性能效率
3、基于PC端的表示层测试
- 安装/卸载测试
- 在线升级测试
- 网络切换测试
- 可移植性测试
- PC端涉及的质量特性
- 可移植性
- 易用性
- 功能性
4、基于移动端的表示层测试
- 安装/卸载测试
- 切换测试 (网络切换、前后台切换)
- 在线升级测试
- 安全测试 (软件权限、应用安全)
- 性能测试 (启动耗时、CPU、内存、耗电量、流量、功耗、流畅度)
- 可移植性测试
- 移动端涉及的质量特性
- 可移植性
- 易用性
- 性能效率
- 功能性
- 安全性
(二)表示层测试策略
1、需特别关注软件易用性
2、表示层测试设计和实施的原则
- 在软件需求分析和用户界面设计阶段,测试人员职责是参入同行评审,了解软件需求和用户界面要求,以及使用场景和用户特点,根据经验,从测试角度提出建议
- 测试人员在用户界面设计阶段结束后,可以提出对易用性问题的主观看法
- 在测试设计阶段,测试人员职责是根据软件需求规格说明书、用户界面设计以及软件人机交互友好性、易用性的测试准则设计测试用例
- 在测试实施阶段,测试人员职责是执行测试用例
- 由于版本的更新,需求的更动,可能涉及用户界面的回归测试
- 在上线之前,用户界面测试与功能测试同步确认一次,保证与最终版本的一致性
- 一般情况下表示层测试不作为专项测试内容,可与其他质量特性的测试混合进行
(三)服务层质量特性
1、功能性测试
- 业务功能性测试 (场景、异常场景)
- 边界测试 (基于输入输出的边界测试)
- 单接口的不同参数组合测试
- 多接口的不同业务组合 (业务流) 测试
2、信息安全性
- 敏感信息是否加密
- 身份认证
- 注入
- 信息泄露等
3、性能测试
- 响应时间
- 吞吐量
- 并发数
- 服务器资源 (CPU、10、内存、网络)
(四)服务层测试策略
1、服务接口层测试设计和实施原则
- 越早越好,越早发现Bug,修复成本越低
- 检查接口的功能、性能
- 对于前后端架构分离的系统,从安全层面来说,只依赖前端进行限制已经完全不能满足系统的安全要求,需要后端从接口层进行验证;前后端传输数据等信息是否加密传输需要验证
- 接口测试比较容易实现自动化测试
2、接口测试质量评估原则
- 业务功能覆盖是否完整
- 业务规则覆盖是否完整
- 参数验证是否达到要求 (边界、业务规则)
- 接口异常场景覆盖是否完整
- 性能指标是否满足要求
- 安全指标是否满足要求
(五)业务逻辑层质量特性
1、功能性
- 针对功能点
对功能模块中所有存在输入条件的功能进行测试
对功能模块中所有存在输出结果的功能进行验证测试
对功能模块中所有存在业务规则的功能进行测试
对功能模块中存在异常情况或错误数据处理的功能进行测试
验证是否满足需求要求的所有功能,强调业务功能的完整性
验证功能实现是否满足用户需求和系统设计的隐藏需求,强调业务功能的适合性 - 针对业务流
对流程中调用的对外接口进行测试
对流程中的入口条件进行测试,验证其处理逻辑、错误控制等
对主要的流程进行逻辑正确性验证,再覆盖多个流程分支的全流程测试
2、信息安全性
- 通过源代码审计的测试方法进行检测
- 常见的代码问题
编码错误
编码规范
重复
复杂度
注释解释
(六)业务逻辑层测试策略
1、业务功能测试策略
- 测试需求分析
- 测试用例设计
- 用例评审
- 测试实施执行
2、代码审计测试策略
3、测试需求分析的三种技术
- 基于需求的测试分析
- 基于流程的测试分析
- 基于经验的测试分析
4、测试用例设计
- 业务逻辑测试用例设计的原则
正反比原则
检测当输入或输出为最大、最小、临界值时交易能否正确处理
用例质量要求
用例粒度要求
测试用例分级 - 业务流程测试用例设计测试执行的原则
检测系统正常的业务处理、流程是否能够正确执行
检测关联系统在正常情况下的协调运作情况
检测系统异常的业务处理、容错处理是否能够正确执行
检测关联系统存在异常时,本系统是否能够正确判断
5、用例评审
- 详细
- 全面
- 一致
6、测试执行原则
- 先测功能后测流程
- 先测主流程后测分支流程
- 先测系统内的流程,后测系统间的流程
- 按优先级执行测试,并保存执行记录
7、源代码审计服务四个阶段
- 代码审计前期准备阶段
- 代码审计实施阶段
- 复测实施阶段
- 成果汇报阶段
(七)数据层质量特性
- 数据库可靠性
- 数据库性能效率
- 数据库安全性
- 数据库正确性与完整性
- 数据库功能性
- 数据可移植性
(八)数据层测试策略
1、数据库安全性策略
- 一般用基于规格说明的测试技术,以人工功能检查为主要形式
- 检查内容
用户及口令管理
授权和审计管理
数据加密
2、性能效率策略
- 采用TPC的性能测试标准和规范
- 目前常用的性能测试规范
针对OLTP系统的性能测试规范TPC-C
针对电子商务应用的性能测试规范TPC-W
针对大数据基准测试(OLAP)的性能测试规范TPC-DS
3、数据库的可靠性策略
- 联机备份
- 故障恢复
4、数据正确性与完整性策略
- 采用基于规格说明测试方法,以手工测试为主
- 测试内容
数据库存储数据的方式
数据类型和长度
数据日期和时间字段
国际化
字符集编码
5、数据库功能性策略
- 测试点
安装与配置
数据库存储管理
模式对象管理
非模式对象管理
交互查询工具
性能检测与调优
数据迁移工具
作业管理
6、数据迁移策略
- 数据迁移测试原则
完整性原则
正确性原则
适用性原则
有效性原则
安全性原则 - 数据迁移涉及用例
老到新的记录条数对比
老到新的字段的映射关系确认
老到新的字段计算方法对比
老到新的字段长度与精度是否一致
老到新的字符串转移容易产生脏数据
老到新的空值与NULL处理
老到新的日期格式变化
老到新的废弃字段
老到新的新增字段默认值问题
老到新的清洗与规范处理,Where条件
老到新的系统中,雷同字段的差异
数据对比
从业务上来判断,在应用程序中做一个流程,验证数据是否正常 - 数据迁移测试方法
技术核验
静态对比
动态对比
业务连续性验证测试