首页 小组 文章 相册 留言本 用户 搜索 我的社区 在线学堂 商城 购物车 支付钱包

[打卡][打卡] 《系统分析师教程》D15-4.25.Chapter 14 系统实现与测试

2022-04-25 22:38:30
0
318

本章有六个小节,仔细学完后,觉得测试是本章的重点内容,是考试的重点,例如:白盒黑盒测试,测试的类型等。具体笔记如下:


1. 软件测试概念与方法1.1. 软件测试概述

软件测试是在将软件交付给客户之前所必须完成的重要步骤。目前,软件的正确性证明尚未得到根本的解决,软件测试仍是发现软件错误(缺陷)的主要手段。软件测试的目的是验证软件是否满足软件开发合同或项目开发计划、系统/子系统设计文档、SRS、软件设计说明和软件产品说明等规定的软件质量要求。通过测试,发现软件缺陷,为软件产品的质量测量和评价提供依据。

1.1.1. 测试自动化

自动化测试通常需要构建存放程序软件包和测试软件包的文件服务器、存储测试用例和测试结果的数据库服务器、执行测试的运行环境、控制服务器、Web服务器和客户端程序。自动化测试的主要实现方法包括代码的静态与动态分析、测试过程的捕获与回放、测试脚本技术、虚拟用户技术和测试管理技术等。

自动化测试具有如下优点:

(1)提高测试执行的速度

(2)提高工作效率

(3)保证测试结果的准确性

(4)连续运行测试脚本

(5)模拟现实环境下受约束的情况

自动化测试工具:

(1)单元测试工具

(2)负载和性能测试工具

(3)GUI功能测试工具

(4)基于Web应用的测试工具

1.1.2. 软件调试

软件调试(排错)与成功的测试形影相随。测试成功的标志是发现了错误,根据错误迹象确定错误的原因和准确位置,并加以改正,主要依靠软件调试技术。

软件调试方法:

  • 蛮力法:主要思想是“通过计算机找错”,低效,耗时。
  • 回溯法:从出错处人工沿控制流程往回追踪,直至发现出错的根源。复杂程序由于回溯路径多,难以实施。
  • 原因排除法:主要思想是演绎和归纳,用二分法实现。


软件调试与软件测试的区别:

(1)测试的目的是找出存在的错误,而调试的目的是定位错误并修改程序以修正错误。

(2)调试是测试之后的活动测试和调试在目标、方法和思路上都有所不同。

(3)测试从一个已知的条件开始,使用预先定义的过程,有预知的结果;调试从一个未知的条件开始,结束的过程不可预计。

(4)测试过程可以事先设计,进度可以事先确定;调试不能描述过程或持续时间。

1.2. 软件测试方法1.2.1. 静态测试(纯人工)

(1)桌前检查

(2)代码审查

(3)代码走查

(4)静态分析

1.2.2. 动态测试(机器运行)

(1)白盒测试

白盒测试也称为结构测试,主要用于软件单元测试阶段。它的主要思想是,将程序看作是一个透明的白盒,测试人员完全清楚程序的结构和处理算法,按照程序内部逻辑结构设计测试用例,检测程序中的主要执行通路是否都能按预定要求正确工作。

白盒测试方法主要有:

  • 控制流测试
  • 数据流测试
  • 程序变异测试

(2)黑盒测试

黑盒测试也称为功能测试,主要用于集成测试、确认测试和系统测试阶段。黑盒测试将软件看作是一个不透明的黑盒,完全不考虑(或不了解)程序的内部结构和处理算法,而只检查软件功能是否能按照SRS的要求正常使用,软件是否能适当地接收输入数据并产生正确的输出信息,软件运行过程中能否保持外部信息(例如,文件和数据库等)的完整性等。

黑盒测试根据SRS所规定的功能来设计测试用例,一般包括:

  • 功能分解
  • 等价类划分
  • 边界值分析
  • 判定表
  • 因果图
  • 状态图
  • 随机测试
  • 猜错法
  • 正交试验法

黑白盒测试的常用的方法如下图所示:

1.2.3. 测试的阶段

(1)测试的阶段如下图所示:


(2)系统测试活动和步骤如下:

  • 制定系统测试计划:进行人员以及任务的确定,明确测试范围,测试方法,测试环境与辅助工具。
  • 设计系统测试用例:如等价类划分、边界值分析等测试方法的应用。
  • 执行系统测试:执行设计好的测试用例,并记录结果。
  • 缺陷管理与改错:消除已发现的错误。


(3)狭义性能测试分类如下:

负载测试:确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。

压力测试:通过确定一个系统的瓶颈或不能接受的性能点,来获得系统能提供的最大服务级别的测试。

强度测试:在系统资源特别低的情况下考查软件系统运行情况。

并发测试:并发测试也称为容量测试,主要用来确定系统可处理的同时在线的最大用户数。

(4)V模型测试过程

V模型的测试过程如下图所示:


  • 单元测试:模块测试模块功能、性能、接口等。
  • 集成测试:模块间的接口。
  • 确认测试:验证软件与需求的一致性。内部确认测试、Alpha测试、Beta测试,验收测试。
  • 系统测试:真实环境下验证完整的软件配置项能否和系统正确连接。
  • 回归测试:测试软件变更之后,变更部分的正确性对变更需求的符合性。

1.2.4. 面向对象系统的测试

面向对象系统的测试包括以下方面内容:

  • 算法层(单元测试):包括等价类划分测试、组合功能测试(基于判定表的测试)、递归函数测试和多态消息测试。
  • 类层(模块测试):包括不变式边界测试、模态类测试和非模态类测试。
  • 模板层/类树层(集成测试):包括多态服务测试和展平测试
  • 系统层(系统测试)

1.3. 软件的评审

软件评审需注意的内容如下:

  • 不应以测试代替评审
  • 评审人员应关注产品而不应评论开发人员
  • 评审人员应关注于实质性问题
  • 评审会议不应变为问题解决方案讨论会
  • 评审应被安排进入项目计划
  • 评审参与者应了解整个评审过程
  • 评审人员事先应对评审材料充分了解
  • 应重视评审的组织工作

1.4. 软件的过程改进(CMMI)

软件阶段式的组织能力成熟度和连续式软件过程能力如下图所示:

2. 系统运行与评价2.1. 遗留系统演化策略2.1.1. 评价结果分析

遗留系统按照技术水平和业务价值的高低可分为如下情况:

2.1.2. 演化策略

(1)淘汰策略

遗留系统的技术含量较低且具有较低的业务价值。对遗留系统的完全淘汰是企业资源的根本浪费系统分析师应该善于“变废为宝”通过对遗留系统功能的理解和借鉴,可以帮助新系统的设计降低新系统开发的风险。

(2)继承策略

遗留系统的技术合量较低,已经满足企业运作的功能或性能要求,但具有较高的商业价值目前企业的业务尚紧密依赖该系统。对这种遗留系统的演化策略为继承。在开发新系统时,需要完全兼容遗留系统的功能模型和数据模型。为了保证业务的连续性,新老系统必须并行运行一段时间,再逐渐切换到新系统上运行。

(3)改造策略

遗留系统具有较高的业务价值基本上能够满足企业业务运作和决策支持的需要。这种系统可能建成的时间还很短,对这种遗留系统的演化策略为改造。改造包括系统功能的增强和数据模型的改造两个方面。系统功能的增强是指在原有系统的基础上增加新的应用要求,对遗留系统本身不做改变;数据模型的改造是指将遗留系统的旧的数据模型向新的数据模型的转化。

(4)集成策略

遗留系统的技术含量较高但其业务价值较低可能只完成某个部门(或子公司)的业务管理。这种系统在各自的局部领域里工作良好,但对于整个企业来说,存在多个这样的系统,不同的系统基于不同的平台、不同的数据模型,形成了一个个信息孤岛,对这种遗留系统的演化策略为集成。

2.2. 新旧系统的转换策略

新旧系统的转换策略通常有三种:直接策略、并行策略和分段转换策略,如下图所示。


  • 直接转换策略:直接转换就是在原有系统停止运行的某一时刻,新系统立即投入运行,中间没有过渡阶段。
  • 并行转换策略:并行转换就是新系统和现有系统并行工作一段时间,经过这段时间的试运行后,再用新系统正式替换下现有系统。
  • 分段转换策略:分段转换策略也称为逐步转换策略,这种转换方式是直接转换方式和并行转换方式的结合,采取分期分批逐步转换。

2.3. 数据的转换与迁移

数据转换和迁移是新旧系统转换交接的主要工作之一。为使数据能平滑迁移到新系统中,在新系统设计阶段就要尽量保留现有系统中合理的数据结构,这样才能尽可能降低数据迁移的工作量和难度。数据转换和迁移过程如下图所示:

2.4. 系统运行与维护

系统维护就是在系统运行过程中,为了改正错误或满足新的需求而修改系统的活动,包括软件维护(程序维护)、数据维护、代码维护、设备维护,以及机构和人员的变动等。

软件维护是生命周期的一个完整部分。可以将软件维护定义为需要提供软件支持的全部活动,这些活动包括在交付前完成的活动,以及交付后完成的活动。交付前完成的活动包括交付后运行的计划和维护计划等二交付后的活动包括软件修改、培训、帮助资料等。其可维护性和维护类型如下图所示:


软件维护的分类(4种):

  • 正确性维护:指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。
  • 适应性维护:指使应用软件适应信息技术变化和管理需求变化而进行的修改。企业的外部市场环境和管理需求的不断变化也使得各级管理人员不断提出新的信息需求。
  • 完善性维护:扩充功能和改善性能而进行的修改。对已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征。
  • 预防性维护:为了改进应用软件的可靠性和可维护性,为了适应未来的软硬件环境的变化,应主动增加预防性的新的功能,以使用系统适应各类变化而不被淘汰。如将专用报表功能改成通用报表生成功能,以适应将来报表格式的变化。
评论
此内容暂不接受评论!
意见反馈