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

系统架构师备考日记(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种不兼容情况:参数不兼容、操作不兼容和操作不完备


总结

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

相关推荐
大千AI助手1 小时前
SWE-bench:真实世界软件工程任务的“试金石”
人工智能·深度学习·大模型·llm·软件工程·代码生成·swe-bench
Q_Q5110082852 小时前
python的软件工程与项目管理课程组学习系统
spring boot·python·django·flask·node.js·php·软件工程
文火冰糖的硅基工坊5 小时前
[创业之路-551]:党、政府、经济、军队、文化、学术、社会七大领域的社会角色与职务层次结构(宏观-中观-微观)
系统架构·跨学科融合
万能小锦鲤10 小时前
《软件工程导论》实验报告五 设计建模工具的使用(一)类图
软件工程·类图·实验报告·boardmix·文档资源
文火冰糖的硅基工坊1 天前
[激光原理与应用-286]:理论 - 波动光学 - 不同频段电磁波的特点与差异性
系统架构··跨学科融合·电磁波·
Tadas-Gao1 天前
Java设计模式全景解析:从演进历程到创新实践
java·开发语言·微服务·设计模式·云原生·架构·系统架构
gptplusplus1 天前
超越“调参”:从系统架构师视角,重构 AI 智能体的设计范式
人工智能·重构·系统架构
数据爬坡ing2 天前
过程设计工具深度解析-软件工程之详细设计(补充篇)
大数据·数据结构·算法·apache·软件工程·软件构建·设计语言
紫金桥软件2 天前
紫金桥RealSCADA:国产工业大脑,智造安全基石
安全·系统安全·软件工程
文火冰糖的硅基工坊3 天前
[激光原理与应用-267]:理论 - 几何光学 - 胶卷相机的组成和工作原理
数码相机·系统架构