信息系统项目管理师 第二十三章-信息系统综合测试与管理

发布时间 2023-11-18 13:29:47作者: Bear-Run

1.测试基础 671

1.软件测试模型

1.V模型 开发完成后才进行测试工作。
最广为人知的模型,软件开发瀑布模型的变种,它反映了测试活动与分析和设计的关系。

优点:将复杂的测试工作按阶段划分为各个小阶段来实现,从多角度测试系统找出更多的缺陷
缺点:软件测试容易误导为软件开发的最后一个阶段
需求、设计阶段产生的问题不能很早的发现
质量控制和测试效率无高效发挥

2.W模型
增加了软件各开发阶段中同步进行的验证和确认测试活动。
测试与开发两个V 测试与开发并行关系

优点:测试和开发同步进行,有利尽早发现问题
增加非程序角度测试系统的思想
测试准备及设计工作提前,提高测试质量及效率
缺点:把软件开发视为需求、设计、编码等一系列串行的活动
开发和测试保持一种线性的前后关系
无法支持迭代、自发性以及变更调整
3.H模型
将测试活动完全独立出来,形成一个完全独立的流程。

优点:将测试从开发中独立出来,利于研究更深的测试技术
同时测试多个项目时,可对测试技术重复利用
高效调整测试人员
缺陷修复时不受项目组内部人员限制
缺点:独立的测试组对系统认识不够深入
影响测试质量及测试效率
4.X模型
对V模型的改进,提出针对单独的程序片段进行互相分离得编码和测试,以后通过频繁得交接和集成最终合成可执行得程序。
将程序片段进行相互分离的编码和测试。

优点:强调单元测试及集成测试的重要性
引入探索性测试使测试模型与现实更接近
缺陷修复时不受项目组内部人员限制
缺点:只强调测试过程中的部分内容
没有对需求测试、验收测试等内容进行说明
5.前置测试模型
开发和测试的生命周期整合在一起,标识了项目生命周期从开始到结束之间的关键行为。
用较低的成本来及早发现错误,并且充分强调了测试对确保系统的高质量的重要意义。

2.软件测试类型

1.按照开发阶段划分

  • 单元测试
    软件设计的最小单元即程序模块
  • 集成测试
    组装测试、联合测试、子系统测试或部件测试。最好不要软件开发软件设计人员承担,提高集成测试的效果。
  • 系统测试
    对集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等是否满足其规约所指定的要求。
  • 验收测试
    完成了功能测试和系统测试之后、产品发布之前所进行的系统软件活动,它时技术测试的最后一个阶段。交付测试 发布测试 确认测试。

2.按照测试实施组织划分

  • 开发方测试
    Alpha测试
  • 用户测试
    Beta测试
  • 第三方测试

3.按照测试技术划分

  • 黑盒测试 功能测试,通过测试来检测每个功能是否都能正常使用。着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
    以用户的角度,从输入数据于输出数据的对应关系出发进行测试的。
  • 白盒测试
    结构测试,把程序看成装一个透明的白盒子里,也就是清楚了解程序结构和处理过程.检验软件内部的逻辑结构。
  • 灰盒测试
    介于白盒测试于黑盒测试之间的测试.关注输出对于输入的正确性,同时也关注内部表现,

4.按照测试执行方式划分

  • 静态测试 不允许程序,通过人工对程序进行分析于检查
    代码检查
    静态结构分析
    代码质量度量
  • 动态测试 人工或者使用工具运行程序进行检查、分析
    编写测试用例
    执行程序
    分析程序的输出结果

5.按照测试对象类型划分

  • 功能测试 检查软件功能是否实现了软件功能说明书上的功能要求。
  • 界面测试 用户界面进行测试,检查用户界面的美观度、统一性。
  • 流程测试 业务流程、数据流程、逻辑流程,目的是检查软件在按照流程操作时是否能够正确处理。
  • 接口测试 测试系统组件间接接口的一种测试。
  • 安装测试 确保该软件在正常情况和异常情况的不同条件下。测试安装代码以及安装手册。
  • 文档测试 非交付用户的文档测试 需求文档测试和测试相关文档测试
    交付用户的文档测试 需求文档 用户手册 安装手册
  • 源代码测试 对源代码进行测试,识别、定位代码存在的安全漏洞
  • 数据库测试 数据完整性 数据有效性 数据操作和更新
  • 网络测试 链路测试 错包率测试 连通性测试 质量测试 备份路由测试
  • 性能测试 负载测试 压力测试 稳定性测试

6.按照质量属性划分

  • 容错性测试 系统容错能力,异常情况瞎自身是否具有防护性的措施或者某种灾难性恢复的手段。
  • 兼容性测试 不同的应用程序之间,不同的操纵系统平台上,不同的网络等环境中能否很友好的运行的测试。
  • 安全性测试 应用程序级别的安全 系统级别的安全性
  • 可靠性测试
  • 可用性测试
  • 维护性测试
  • 可移植性测试
  • 易用性测试 软件的易学易用性、各个功能是否易于完成、软件界面是否友好等。

7.按照测试地域划分

  • 本地化测试
    软件界面测试
    基本功能测试
    安装/卸载测试
    文档测试
  • 国际化测试
    设计评审
    代码审查
    对源语言的功能测试
    对伪翻译版本的测试

2.软件测试技术

1.黑盒测试法

两种基本方法 通过测试和失败测试

优点:

  • 比较简单,不需要了解程序内部的代码及实现
  • 与软件的内部实现无关
  • 从用户角度出发,能很容易的知道用户用到那些功能,会遇到那些问题
  • 基于软件开发文档,所以也能知道软件实现了文档中的那些功能。
  • 在做软件自动化测试时较为方便。

1.测试区域确定法

  • 等价类划分法
  • 边界值分析法

2.组合覆盖法

  • 全组合覆盖法
  • 成对组合覆盖法
  • 正交实验设计法
  • 数据覆盖法

3.逻辑推断法

  • 因果图法
  • 判定表法
  • 大纲法

4.业务路径覆盖法

  • 场景分析法
  • 功能图法
2.白盒测试法

按照程序内部的结构测试程序,检验程序中的每条通路是否都能按预定要求正确工作,而不顾它的功能。
对程序所有逻辑路径进行测试,是一种穷举路径的测试方法。仍然可能存在错误。

1.基本概念

  • 控制流图
  • 图矩阵
  • 环形复杂度

2.测试方法

  • 静态白盒测试
    代码检查法 桌面检查 代码走查 代码审查
    静态结构分析法 程序的结构形式是主要依据。
    静态质量度量法
  • 动态白盒测试 结构测试
    覆盖测试 逻辑覆盖 面向对象的覆盖
    控制结构测试 基于路径测试 循环测试
    其他白盒测试方法 程序插桩 程序变异测试

3.信息系统测试管理

1.测试管理概述

软件测试越来越受人重视,随着软件开发规模增大、复杂程度增加,已寻找软件中的错误为目的的测试工作就显得更加困难。为了尽可能得找出错误,产出高质量得软件产品,加强对测试工作得组织和管理就显得尤为重要。

2.测试管理内容

测试部门管理和测试项目管理两种
测试部门管理:日常事务、部门人员、部门下属项目、部门资产等得跟踪及管理工作
测试项目管理:测试人员管理、测试计划、测试策略得编写、测试评审得组织、测试过程得跟进、测试内部和外部得沟通协调、缺陷跟踪。

3.测试监控管理

为了测试活动提供反馈信息和可视性。
测试用例执行得进度=已执行得数目/总数目
缺陷的存活时间=缺陷从open到closed的时间
缺陷分布密度=对应于一项需求的总缺陷数/对应于项目需求的测试用例总数。
缺陷修改质量=每次修改后发现的缺陷数量。

4.配置管理
  • 选取合适的配置管理工具
  • 整理配置项,明确相应管理流程
  • 将配置项作为一个整体进行配置管理
  • 增加发布前验收测试环节
  • 采用并行开发方式区别不同的开发活动
  • 明确角色与职责
5.测试风险管理
  • 需求风险
  • 测试用例风险
  • 缺陷风险
  • 代码质量风险
  • 测试环节风险
  • 回归测试风险
  • 沟通协调风险
  • 其他不可预计风险
6.测试人员绩效考核

1.工作内容考核
2.工作效率与工作质量考核

  • 文档产出率 测试用例文档页数/编写测试用例文档有效时间 小时 1.14页 高于此值为优
  • 用例产出率 测试用例数/编写测试用例文档有效时间 小时 平均 4.21个用例/小时
    3.对自动化测试人员效率的度量
    4.对测试项目负责人效率的度量
    5.测试管理的度量
    6.考核注意事项