架构-软件工程模块-3

news2025/1/17 3:48:28

系统测试

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

测试方法

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

静态测试

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

动态测试

黑盒测试

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

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

白盒测试

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

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

测试类型

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

系统运行与维护

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

软件维护分类

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

遗留系统

  • 演化策略
    在这里插入图片描述
  • 淘汰:低水平、低价值。
  • 继承:低水平、高价值
  • 改造:高水平、高价值
  • 集成:高水平、低价值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/557091.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Python】判断语句 ③ ( if elif else 语句 | 语法简介 | 代码示例 )

文章目录 一、 if elif else 语句语法二、 代码示例 一、 if elif else 语句语法 在开发场景中 , 经常用到 多条件判定 , 初次判定 , 先进行 条件 1 判定 , 如果 条件 1 满足 则执行 条件 1 对应动作 , 如果 条件 1 不满足 , 则 判定 条件 2 是否满足 , 如果 条件 2 满足 则 …

linux操作系统【进阶完整版】

文章目录 基础命令tailvimsystemctl 用户和组/权限su/sudo创建删除ls -lchmodchown 实用操作快捷键软件安装软链接时区与时间date修改时区 ip、主机名网络传输请求端口 进程管理主机状态监控系统资源占用磁盘信息监控网络状态监控 环境变量上传和下载压缩和解压tarzip/unzip 安…

一、尚医通上传医院接口

文章目录 一、上传医院接口1、集成mongodb1.1添加依赖1.2添加配置 2、添加医院基础类2.1 添加model2.2 添加Repository2.3 添加service接口及实现类2.4 添加controller 3、上传医院3.1 接口数据分析3.2 添加service接口3.3 添加repository接口3.4 添加controller接口3.5 添加帮…

chatgpt赋能Python-python_errno2

Python errno2: 深入了解错误代码并解决问题 当你在使用 Python 进行编程时,不可避免地会遇到一些错误。这些错误通常会被分配一个错误代码,也称为errno。errno2是Python中的一个特定错误代码类型。在本文中,我们将深入了解errno2及其在Pyth…

chatgpt赋能Python-python_errno

Python errno: 什么是errno和它在Python中的应用 在Python编程中,errno是一个非常重要的概念,用于表示系统调用或库函数调用返回的错误代码。在本文中,我们将深入探讨errno是什么,如何在Python中使用它,以及一些常见的…

第3章 TensorFlow进阶

文章目录 第3章 TensorFlow进阶3.1 TensorFlow 的计算模型3.1.1 计算图的工作原理3.1.2 在不同计算图上定义和使用张量进行计算3.2.1 在 GPU 上执行简单的算术运算 3.2 TensorFlow 的嵌入层3.3 TensorFlow 的多层3.4 TensorFlow 实现损失函数3.4.1 softmax 损失函数3.4.1 稀疏矩…

Linux【工具 02】OpenStreetMap数据处理工具OSMCTools下载安装使用举例(osmconvert命令说明)如何获取区域边界说明

OSMCTools安装使用实例 1.Tools2.官网安装步骤3.实际安装步骤3.1 环境3.2 步骤 4.工具使用实例 OpenStreetMap的下载地址:Geofabrik Download Server。 OSMCTools的GitHub地址:https://github.com/ramunasd/osmctools Windows操作系统,可以…

chatgpt赋能Python-python_erf

Python Erf函数 什么是Erf函数? Erf函数也被称为误差函数,是统计学中的一种概率函数,它表示一个随机变量在平均值附近的偏差程度。Erf函数在解决科学问题中非常有用,尤其是在概率论、统计学、物理学等领域。 在Python中如何使用…

【自然语言处理】 - 作业1: Word2Vec及TransE实现

课程链接: 清华大学驭风计划 代码仓库:Victor94-king/MachineLearning: MachineLearning basic introduction (github.com) 驭风计划是由清华大学老师教授的,其分为四门课,包括: 机器学习(张敏教授) , 深度学习(胡晓林教授), 计算…

Java中的equals和hashCode

目录 equals hashCode equals和hashCode之间的关系 总结 equals equals方法是Object类中用于检测两个对象是否相同的方法,Object类中实现的是两个对象引用是否相同的方法,看以下Object类中代码: public boolean equals(Object obj) {ret…

LInux线程

Linux线程介绍 1、进程与线程: 典型的UNIX/Linux进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情。有了多个控制线程后,在程序设计时可以把进程设计成在同一时刻做不止一件事,每个线程各自处理独立的任务。 进程是…

【自然语言处理】 - 作业2: seq2seq模型机器翻译

课程链接: 清华大学驭风计划 代码仓库:Victor94-king/MachineLearning: MachineLearning basic introduction (github.com) 驭风计划是由清华大学老师教授的,其分为四门课,包括: 机器学习(张敏教授) , 深度学习(胡晓林教授), 计算…

Python地理空间分析快速入门

地理空间数据描述了地球表面上的任何物体或特征。 常见的例子包括: 品牌应该在哪里开设下一家门店?天气如何影响区域销售?乘车的最佳路线是什么?哪个地区受飓风影响最严重?冰盖融化与碳排放有何关系?哪些地…

chatgpt赋能Python-python_dog

Python Dog: 一个好玩的机器人狗 Python Dog是一个由Python编程语言编写的机器人狗。它是一个有趣且有用的工具,可以帮助您学习Python编程,并了解如何通过Python编写和控制机器人。在本文中,我们将介绍Python Dog的功能,并讨论为…

Leetcode每日一题——“用栈实现队列”

各位CSDN的uu们你们好呀,今天,小雅兰的内容是用栈实现队列,这和小雅兰的上一篇博客“用队列实现栈”好像有点点关系噢,事实上,也确实是这样的,下面,让我们进入Leetcode的世界吧!&…

RK3399平台开发系列讲解(网络篇)Linux 发送网络包流程

🚀返回专栏总目录 文章目录 一、发送网络包流程图二、发送网络包步骤沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将详细介绍Linux网络包发包流程。 一、发送网络包流程图 二、发送网络包步骤 VFS 层:write 系统调用找到 struct file,根据里面的 file_oper…

chatgpt赋能Python-python_end___t_

Python中的end\t’介绍 Python是一种非常流行的编程语言,它在各种领域中得到广泛应用。与许多其他编程语言不同的是,Python中提供了一种方便的 way来创建格式化字符串。一个常见的方法是使用end‘\t’。 在本文中,我将介绍Python中的end‘\…

常见 Web 安全攻防总结

Web 安全地对于 Web 从业人员来说是一个非常重要的课题,所以在这里总结一下 Web 相关的安全攻防知识,希望以后不要再踩雷,也希望对看到这篇文章的同学有所帮助。今天这边文章主要的内容就是分析几种常见的攻击的类型以及防御的方法。 也许你对…

QTP10.0安装及问题

1、如果没有特殊要求,安装都是直接选下一步 2、然后出现问题就是 提示脚本调试器没有下载成功: 看提示就是缺了一个东西,另外下载安装就可以 百度网盘 请输入提取码 链接:https://pan.baidu.com/s/195hEKOPbpp37okysutcqEQ 提取…

sql查询指定数据的函数(等于、and、or、in、find_in_set、like)

sql查询指定数据的函数(等于、and、or、in、find_in_set、like): 1.查询指定单字段的指定数据: 举例:查询user表中address字段数据等于aa的数据; select * from user where address aa 2.查询指定多字段…