系统架构设计师-软件工程(4)

        一、软件测试

                1、软件测试类型(动态测试 / 静态测试)

                        ●  动态测试【计算机运行】

                        (1)白盒测试法【结构测试】:主要用于单元测试阶段。        

                                

                                a:控制流测试【逻辑覆盖测试(语句覆盖最弱,路径测试覆盖最强)】

                                b:数据流测试

                                c:程序变异测试【错误驱动测试】  

                        (2)黑盒测试法【功能测试】:主要用于集成测试、确认测试和系统测试阶段。

                                

                                a:等价类划分:不同等价类,揭示不同问题;有效等价类/无效等价类。

                                b:边界值分析:1 <= x <= 10,可取 x 的值为0、1、10、11作为测试数据。

                                c:错误预测:依靠测试人员的经验和直觉

                                d:判定表:最适合描述在多个逻辑条件取值的组合所构成的复杂情况下,分别要执行那些不同的动作。

                                e:因果图:根据输入条件与输出结果之间的因果关系来设计测试用例。

                        (3)灰盒测试法:白+黑

                        ●  静态测试【人工监测和计算机辅助分析】

                                a:桌前检查 

                                b:代码审查

                                c:代码走查

                                在静态测试中,主要是对代码进行静态分析,静态分析一般包括控制流分析、数据流分析、接口分析、表达式分析

                                (1)控制流分析:是否存在没有使用的语句 / 无法到达的语句 调用并不存在的子程序。

                                (2)数据流分析引用未定义的变量、对以前未使用的变量再次赋值。

                                (3)接口分析:模块之间的接口的一致性、子程序和函数之间的接口一致性、函数形参与实参的数量、顺序、类型的一致性。

                                (4)表达式分析括号不配对、数据引用越界、除数为零。

                2、软件测试阶段

                        

                         测试阶段:

                        (1)单元测试:依据【详细设计】,模块测试,模块功能、性能、接口等。

                        (2)集成测试:依据【概要设计】,模块间的接口。                                

 

                        (3)系统测试:依据【需求文档】,在真实环境下,验证完整的软件配置项能否和系统正确连接。

                        (4)确认测试(验收测试):依据【需求文档】,验证软件与需求的一致性。内部确认测试。

                        (5)回归测试:测试软件变更之后,变更部分的正确性和对变更需求的符合性。

                3、软件系统测试

                        (1)功能测试(2)性能测试(3)健壮性测试(4)用户界面测试

                        (5)安全性测试(6)安装与反安装测试

                        性能测试:

                                (1)负载测试各种工作负载下系统的性能

                                (2)压力测试【测上限】:系统的瓶颈或不能接受的性能点。

                                (3)强度测试【测下限】:系统资源特别低的情况下运行。

                                (4)容量测试【并发测试】:同时在线的最大用户数。

                                (5)可靠性测试:MTTF(Mean Time to Failure,系统发生失效前的平均运作时间)、MTBF(Mean Time Between Failures,平均无故障工作时间)、MTTR(Mean Time to Restoration,故障后平均修复时间)之类的参数。

 

        二、遗留系统演化策略

                

                (1)高水平低价值:采用集成策略,主要针对 “信息孤岛” 。

                (2)高水平高价值:采用改造策略,改造包括功能的增强数据模型的改造两个方面

                (3)低水平高价值:采用继承策略,开发新系统时,需要完全兼容遗留系统的功能模型和数据模型

                (4)低水低价值:采用淘汰策略。 

        三、新旧系统的转换策略

                

                (1)直接转换策略:切换成本低,但风险较大

                (2)并行转换策略:两个系统齐头并进,发现问题改进系统,直到没有问题再使用新系统。缺点是代价过高,业务人员需要在新旧两套系统中同时进行操作。

                (3)分段转换策略:例:全国范围的系统,一个个地方切换试点。例:多个子系统,一个个系统切换。

 

        三、数据转换与迁移

                

         四、影响软件可维护性的原因

                (1)【可理解性】:是指通过阅读源代码和相关文档,了解软件的功能如何运行的容易程度。

                (2)【可修改性】:是指修改软件的难易程度。

                (3)【可测试性】:是指验证软件程序正确的难易程度。可测试性好的软件,通常意味着软件设计简单,复杂性低。因为软件的复杂性越大,测试的难度也就越大。

                (4)【可靠性】:一个软件的可靠性越高,需要维护的概率就会越低。

                (5)【可移植性】:是指将软件从一个环境移植到新的环境下正确运行的难易程度。软件运行环境的变化是软件维护的一种常见情形,可移植性好的软件会降低维护的概率。

         五、软件维护类型

                (1)正确性维护【修BUG】识别和纠正软件错误 / 缺陷,测试不可能发现所有错误。

                (1)适应性维护【应变】:指使应用软件适应环境的变化【外部环境、数据环境】而进行的修改。

                (1)完善性维护【新需求】扩充功能和改善性能而进行的修改。

                (1)预防性维护【针对未来】:为了适应未来的软硬件环境的变化,应主动增加预防性的新的功能,以使用系统适应各类变化而不被淘汰。经典实例:【专用】【通用】

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHY芯片的使用(三)在U-boot下网络PHY的移植

1、概述 以太网 PHY 驱动移植&#xff0c;主要包括 Linux、 u-boot 及设备树等三个方面标准框架下的移植。本文以裕太8511PHY为例展开说明。一般国产芯片厂商会提供在uboot/linux下PHY的驱动。在uboot/linux的PHY框架是有区别的&#xff0c;这点要注意。 YT8511 PHY 驱动的移…

【C语言初阶(14)】扫雷游戏(优化:标记地雷+自动展开)

文章目录 Ⅰ游戏规则Ⅱ 游戏实现思路Ⅲ 游戏实现步骤⒈菜单界面⒉创建棋盘① 创建两个棋盘② 防止数组越界 ⒊棋盘初始化⒋棋盘的打印⒌布置地雷⒍玩家排查雷实现步骤⒎计算 x&#xff0c;y 周围有多少雷⒏展开非雷区⒐标记地雷⒑取消标记 Ⅳ 模块化代码实现⒈test.c⒉game.h⒊…

6.1Java EE——Spring介绍

一、Spring概述 String框架的核心技术 Spring是由Rod Johnson组织和开发的一个分层的Java SE/EE一站式&#xff08;full-stack&#xff09;轻量级开源框架。它最为核心的理念是IoC&#xff08;控制反转&#xff09;和AOP&#xff08;面向切面编程&#xff09;&#xff0c;其中&…

《前端开发 实践之 腾讯地图API 学习》

目录 腾讯地图基础入门方式一方式二 事件监听监听地图瓦片加载完成事件 移除缩放控件 & 旋转控件 & 比例尺控件初始化marker图层创建信息窗点击地图拾取坐标打点标记反解析成详细地址根据输入详细地址 反解析成经纬度 腾讯地图 腾讯地图API学习-官方地址&#xff1a;ht…

RabbitMQ系列(14)--Topics交换机的简介与实现

1、Topics交换机的介绍 Topics交换机能让消息只发送往绑定了指定routingkey的队列中去&#xff0c;不同于Direct交换机的是&#xff0c;Topics能把一个消息往多个不同的队列发送&#xff1b;Topics交换机的routingkey不能随意写&#xff0c;必须是一个单词列表&#xff0c;并以…

23款奔驰GLE450动感型升级柏林之声音响系统,体验不一样的感觉

奔驰GLE450动感型升级柏林之声的音响效果自然非同凡响&#xff0c;在人声、交响乐音乐厅感受方面都有非常逼真的现场感受&#xff0c;结合柏林之声的界面调整&#xff0c;可以在不同方位体验的高保真的音乐之享&#xff01; 小柏林音响总共13个喇叭1台功放由4个高音、4个中音、…

13 个最佳免费 PDF 编辑器清单

您正在寻找一款真正免费的 PDF 编辑器&#xff0c;不仅可以编辑和添加文本&#xff0c;还可以更改图像、添加您自己的图形、签署您的名字、填写表格等等&#xff1f;您来对地方了&#xff1a;我研究了这些类型的应用程序&#xff0c;以得出您正在寻找的内容的列表。 其中一些是…

Linux·图解Linux网络包接收过程

因为要对百万、千万、甚至是过亿的用户提供各种网络服务&#xff0c;所以在一线互联网企业里面试和晋升后端开发同学的其中一个重点要求就是要能支撑高并发&#xff0c;要理解性能开销&#xff0c;会进行性能优化。而很多时候&#xff0c;如果你对Linux底层的理解不深的话&…

hadoop -- Hbase

HBase是一个分布式、可扩展、面向列的数据存储&#xff08;百万级别列&#xff09;、可伸缩、高可靠性、实时读写的NoSQL 数据库。 HBase利用 Hadoop的 HDFS作为其文件存储系统&#xff0c; 利用MapReduce 来处理HBase中的海量数据&#xff0c; 利用Zookeeper作为分布式协同服…

《Redis 核心技术与实战》课程学习笔记(七)

切片集群&#xff1a;数据增多了&#xff0c;是该加内存还是加实例&#xff1f; 切片集群&#xff0c;也叫分片集群&#xff0c;就是指启动多个 Redis 实例组成一个集群&#xff0c;然后按照一定的规则&#xff0c;把收到的数据划分成多份&#xff0c;每一份用一个实例来保存。…

手机屏幕点胶区域定位机器视觉系统软硬件方案

【检测目的】 点胶之前定位产品&#xff0c;找寻效果较明显的边缘位置 【样品一】 两张图片为一个产品点胶部位的左边和右边。通过边缘A和边缘B这两条线可以找出交点位置做为定位点&#xff08;产品不平会造成图像模糊的情况&#xff09; 【样品二】 两张图片为一个产品点胶部位…

【Zabbix 监控 Windows 系统,Java应用,SNMP】

目录 一、Zabbix 监控 Windows 系统1、下载 Windows 客户端 Zabbix agent 22、安装客户端&#xff0c;配置3、在服务端 Web 页面添加主机&#xff0c;关联模板 二、Zabbix 监控 java 应用1、客户端开启 java jmxremote 远程监控功能1、配置 java jmxremote 远程监控功能2、启动…