系统架构师备考——软件工程基础知识篇(软件测试&净室软件工程&基于构件的软件工程)

系统架构师备考日记(3.25)

第5章 软件工程基础知识篇(四)------软件测试&净室软件工程&基于构件的软件工程


文章目录


考点

涉及单项选择题和下午案例分析题,约占 8~15 分,论文也会有涉及


一、软件测试

软件测试工作主要是发现软件的错误、有效定义和实现软件成分由低层到高层到组装过程、验证软件是否满足任务书和系统定义文档所规定的技术要求、为软件质量模型的建立提供依据。

1.1 测试方法

(1)以测试过程中程序执行状态为依据可分为静态测试和动态测试

(2)以具体实现算法细节和系统内部结构的相关情况为根据可分黑盒测试、白盒测试和灰盒测试。

(3)以程序执行的方式来分类,可分为人工测试和自动化测试。

(4)从阶段上划分:单元测试、集成测试和系统测试,系统测试又包含功能测试、性能测试、验收测试、压力测试等。

1.2 测试阶段

(1)单元测试:对该软件的模块进行测试,通过测试以发现该模块的功能不符合/不满足期望的情况和编码错误。

(2)集成测试:明确该程序结构组装的正确性,发现和接口有关的问题。

(3)系统测试:一般采用黑盒测试,以此来检查该系统是否符合软件需求。又包含:功能测试、性能测试、健壮性测试、压力测试、可靠性及安全性测试等。

(4)性能测试:通过自动化工具模拟多种正常、峰值以及异常负载条件对系统等各项性能指标进行测试。

(5)验收测试:主要目标是为用户展示所开发出来的软件符合预定的要求和有关标准,并验证软件实际工作的有效性和可靠性,确保用户能用该软件顺利完成既定的任务和功能。

二、净室软件工程

净室软件工程(Cleanroom Software Engineering,CSE)是一种软件开发过程中强调在软件中建立正确定的需要的方法。

2.1理论基础

CSE的理论基础主要是函数理论和抽样理论。

(1)函数理论:一个函数定义了从定义域到值域到映射。一个特定的程序好似定义了一个从定义域到值域的映射。这样,一个程序的规范就是一个函数的规范。

(2)抽样理论:不可能对软件的所有可能应用都进行测试。进行抽样测试。

2.2 技术手段

  • 统计过程控制下的增量式开发
  • 基于函数的规范与设计
  • 正确性验证
  • 统计测试和软件认证:使用盒子结构规约进行分析和设计建模,并强调正确性验证(而不是测试)

2.3 应用与缺点

  • CSE太理论化
  • CSE开发小组不进行传统的模块测试不现实
  • CSE不可避免地带有传统软件工程的一些弊端。

三、基于构件的软件工程(CBSE)

CBSE是一种基于分布对象技术、强调通过可复用构件设计与架构软件系统的软件复用途径。

3.1 构件和构件模型

(1)构件

一般认为构件是一个独立的软件单元,可以与其他构件构成一个软件体系。

CBSE的构件应该具备一下特征:

  • 可组装型
  • 可部署性
  • 文档化
  • 独立性
  • 标准化
    (2)构件模型
    构件模型定义了构件实现、文档化以及开发的标准。
    构件模型包含了一些模型要素:包括接口、使用信息和部署
    构件模型提供了一组被构件使用的通用服务,包括以下两种:
  • 平台服务,允许构件在分布式环境下通信和互操作
  • 支持服务,例如身份认证服务

3.2 CBSE过程

CBSE过程主要活动包括:

(1)系统需求概览

(2)识别候选构件

(3)根据发现的构件修改需求

(4)体系结构设计

(5)构件定制与适配

(6)组装构件,创建系统。

与传统软件开发不同点:

(1)CBSE早期需要完整的需求,以便尽可能多地识别出可复用的构件。

(2)在过程早起阶段根据可利用的构件来细化和修改需求。

(3)系统体系结构设计完成后,会有进一步对构件搜索及设计精华的活动

(4)开发就是将已经找到的构件集成在一起的组装过程

3.3 构件组装

3种构件组装方式:顺序组装、层次组装和叠加组装

3种不兼容情况:参数不兼容、操作不兼容和操作不完备


总结

本章节介绍软件测试方法,净室软件工程基本概念以及基于构件的软件工程的方法论,选择题会常考。

相关推荐
坏孩子的诺亚方舟5 天前
FPGA系统架构设计实践15_高云Arora V系列时钟体系
fpga开发·系统架构
桥田智能5 天前
桥田智能 QT-650S:面向白车身焊装的 800kg 重载快换解决方案
开发语言·qt·系统架构
@insist1235 天前
系统架构设计师-5G 技术、冗余设计与分层架构
5g·架构·系统架构·软考·系统架构设计师·软件水平考试
嘿黑嘿呦5 天前
chap 8排序
算法·蓝桥杯·排序算法·软件工程
旧曲重听15 天前
2026前端技术从「夯」到「拉」
前端·程序人生·职场和发展·软件工程
@insist1235 天前
系统架构设计师-网络存储 RAID 与 IPv6 协议全解析
网络·系统架构
承渊政道5 天前
飞算JavaAI 智能引导背后的多 Agent 协作机制解析:从老旧 Java 后台升级到可运行工程
java·开发语言·spring boot·安全·intellij-idea·软件工程·ai编程
apcipot_rain5 天前
计科八股20260616(1)——堆存中位数、链表判环、黑白测试、敏捷开发与瀑布模型、配置管理、持续集成、池化
数据结构·算法·软件工程
山东点狮信息科技有限公司5 天前
企业级 MES 制造执行系统架构设计与实践
spring cloud·性能优化·系统架构·策略模式·点狮
lisw056 天前
【计算机科学技术】路由器(route):概念、历史、内容与战略!
机器学习·智能路由器·软件工程