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

目录

一、软件测试

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

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

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

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

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

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

        2、软件测试阶段

        3、软件系统测试

二、遗留系统演化策略

三、新旧系统的转换策略

四、数据转换与迁移

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

六、软件维护类型


一、软件测试

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

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

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

                                系统架构设计师-软件工程(4)_第1张图片

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

                                b:数据流测试

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

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

                                系统架构设计师-软件工程(4)_第2张图片

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

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

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

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

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

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

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

                        a:桌前检查 

                        b:代码审查

                        c:代码走查

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

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

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

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

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

        2、软件测试阶段

                        系统架构设计师-软件工程(4)_第3张图片

                测试阶段:

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

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

系统架构设计师-软件工程(4)_第4张图片

                (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,故障后平均修复时间)之类的参数。

二、遗留系统演化策略

                系统架构设计师-软件工程(4)_第5张图片

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

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

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

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

三、新旧系统的转换策略

                系统架构设计师-软件工程(4)_第6张图片

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

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

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

四、数据转换与迁移

                系统架构设计师-软件工程(4)_第7张图片

 

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

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

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

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

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

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

 

六、软件维护类型

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

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

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

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

你可能感兴趣的:(软考高级,系统架构师,软件工程,系统架构)