您现在的位置是:首页 >技术杂谈 >架构-软件工程模块-3网站首页技术杂谈

架构-软件工程模块-3

晓暮落枫 2024-06-18 06:01:03
简介架构-软件工程模块-3

系统测试

系统测试
测试方法
静态测试
动态测试
黑盒测试
白盒测试
测试类型
单元测试
自顶向下式
自底向上式
孤立测试
综合测试
集成测试
基于分解的集成策略
非渐增式
自顶向下集成
自底向上集成
混合的增量式(三明治式)
基于功能的集成策略
基于调用图的集成策略
配置项测试
系统测试.
验收测试
回归测试

测试方法

  • 静态测试:被测程序不在机器上运行。人工检测或计算机辅助分析进行测试。
  • 动态测试:通过运行程序发现错误。一般包括黑盒测试白盒测试

静态测试

  • 文档测试
    • 检查单
  • 代码测试
    • 桌前检查(程序员自己检查)
    • 代码审查(审查小组)
    • 代码走查(审查小组)
名称测试内容
控制流分析使用控制流程图可检查被测程序是否存在没有使用的语句或子程序
数据流分析使用数据流程图分析数据各种异常情况,包括数据初始化、赋值或引用过程中的异常。
接口分析模块之间接口一致性的分析、模块与外部数据库及其他软件配置项之间的一致性分析、子程序与函数之间的接口的一致性分析等
表达式分析检查程序代码中的表达式错误,括号不配对、数据引用越界、除数为零等。

动态测试

黑盒测试

也成为功能测试,完全不考虑程序内部结构和处理算法
黑盒测试主要有:边界值分析、因果图、等价类划分法、正交实验法等。

  • 等价类划分法:使用最多
    • 有效等价类。符合《需求规格说明书》要求的,输入合理的数据。检验是否实现了规定的功能
    • 无效等价类。不符合《需求规格说明书》要求的,输入不合理的数据。检验容错性。
  • 正交实验法:从大量实验点中挑选出适量的、有代表性的点,应用正交表,合理的安排实验的一种设计方法。

白盒测试

也称为结构测试,用于单元测试阶段。
按照程序内部逻辑结构设计测试用例,检测程序中的主要执行通路是否都能按预定要求正确工作。主要有:控制流测试、数据流测试、和程序编译测试等

  • 控制流测试:逻辑覆盖,主要有:
    • 语句覆盖:被测程序每个语句至少运行一次
    • 判定覆盖:语句覆盖基础上,每种可能的结果至少执行一次
    • 条件覆盖:语句覆盖基础上,每个条件取得各种可能的结果。
    • 条件/判定覆盖:同时满足条件判定覆盖。
    • 条件组合覆盖:足够多的测试用例,每个判定表达式中条件结果的所有可能组合至少出现一次。
    • 修正的条件/判定覆盖:足够的的用例确定各个条件能够影响到包含的判定结果。
    • 路径覆盖:每条可能执行到的路径都执行一次。每条路走一次,nxm的关系。

测试类型

  • 单元测试:也称为模块测试,检查每个模块能否正确的实现设计说明中的功能、性能、接口和其他设计约束的条件,发现模块内可能出现的各种差错。
    • 驱动模块用来调用被测模块
    • 桩模块用来模拟被测模块所调用的子模块,它接受被测模块的调用
    • 顶层模块调用时不需要驱动模块,底层模块调用时不需要桩模块
      在这里插入图片描述
  • 集成测试。检查模块之间,以及模块和以集成的软件指甲你的接口关系,并验证已集成的软件是否符合设计要求
集成测试策略
基于分解的集成策略
非渐增式
渐增式
自顶向下集成
自底向上集成
混合的增量式(三明治)式
基于功能的集成策略
基于调用图的集成策略
  • 系统测试。对象是完整的、集成计算机的系统。目的是在真实系统工作环境下验证完整的软件配置项能否和系统正确连接
  • 配置项测试。对象的软件配置项。目的是检验软件配置项与SRS(软件需求分析说明书)的一致性
  • 确认测试。验证软件的功能、性能和其他特性是否与用户需求一致。
    • 内部确认测试:软件开发组织按照SRS进行测试
    • Alpha测试:由用户在开发环境下测试
    • Beta测试:由用户在实际使用环境下测试
    • 验收测试:针对SRS,在交付前以用户为主进行的测试
  • 回归测试。目的是软件变更后,变更部分的正确性和对变更需求的符合性,以及软件原有的、正确的功能、性能和其他规定的要求的不损害性。

系统运行与维护

演化策略
系统运行与维护
软件维护分类
改正性维护
适应性维护
完善性维护
预防性维护
遗留系统
淘汰策略
继承策略
改造策略
集成策略

软件维护分类

  • 改正性维护:修改软件错误、改正软件性能上的缺陷、排除实施中的误使用。
  • 适应性维护:在使用过程中外部环境可能发生变化。为使软件适应这种变化而做的修改。如存储介质改变,数据库等。
  • 完善性维护。扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。
  • 预防性维护:预先提高软件的可维护性、可靠性等。

遗留系统

  • 演化策略
    在这里插入图片描述
  • 淘汰:低水平、低价值。
  • 继承:低水平、高价值
  • 改造:高水平、高价值
  • 集成:高水平、低价值
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。