第21章 分层架构软件测试(下午题)

一、分层架构概述

(一)分层架构概念

  • 软件架构的一种范式,也是标准架构中的一种;
  • 将架构分为若干个层次,每层有各自职责,层与层之间通过接口交互和传递信息;
  • 本层不用了解其它层的实现细节,只要考虑与本层相关的两层之间的接口和调用的情况。

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条件
    老到新的系统中,雷同字段的差异
    数据对比
    从业务上来判断,在应用程序中做一个流程,验证数据是否正常
  • 数据迁移测试方法
    技术核验
    静态对比
    动态对比
    业务连续性验证测试
  • 14
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值