软考--软件工程基础知识-01

  • 软件需求:
    1. 功能需求:如何修改、升级。
    2. 性能需求:容量、速度、响应时间、吞吐量。
    3. 用户或人的因素:用户类型、用户的弱智程度。
    4. 环境需求:软硬件,地理环境,系统环境。
    5. 界面需求:数据输入的格式。
    6. 文档需求:需要哪些文档,针对哪些读者。
    7. 数据需求:输入输出的格式,接收发送的频率,数据的准确性和精度。
    8. 资源使用需求:软件运行的数据、内存等资源,软件开发、维护的人力、设备等。
    9. 安全保密需求:隔离用户数据的方法,系统备份。
    10. 可靠性需求:系统必须检测和隔离错误,出错后,重启系统允许的时间等。
    11. 软件成本消耗与开发进度需求:是否有规定的时间表,软/硬件投资有无限制。
    12. 其他非功能性需求:采用的开发模式,验收标准,维护性等等。

  • 需求分析:确定功能及非功能性要求。

  • 系统设计的主要目的是为系统制定蓝图。
  • 系统设计的主要内容包括:总体结构设计、代码设计、输出设计、输入设计、处理过程设计、数据存储设计、用户界面设计、安全控制设计、数据结构设计。
  • 常用的系统设计方法:
    1. 面向数据流的结构化设计方法(SD)。
    2. 面向对象的分析方法(OOD)。

  • 概要设计:
    1. 设计系统总体结构:将一个复杂的系统,按功能划分成模块,确定每个模块的功能。
    2. 数据结构及数据库设计。
    3. 编写概要设计文档:说明书,用户手册,修订测试计划。
    4. 评审。
  • 模块的作用范围应在控制范围之内。
  • 数据库设计:概念设计、逻辑设计、物理设计。

  • 详细设计
    1. 对每个模块进行详细的算法设计。(细化)
    2. 模块内的数据结构进行设计。
    3. 数据库进行物理设计。
    4. 其他设计。系统类型,代码设计,输入输出格式设计,用户界面设计。
    5. 编写详细设计说明书。
    6. 评审。
  • 详细设计的结果是一系列的系统设计文件。

  • 编码:得到可运行的软件。

  • 成功的测试是发现了至今尚未发现的错误的测试。
  • 测试的目的是:能以最少的人力和时间发现潜在的各种错误和缺陷。
  • 系统测试是保证系统质量和可靠性的关键步骤,是对系统开发过程中的系统分析、系统设计和实施的最后复查。
  • 信息系统测试应包括软件测试、硬件测试、网络测试。

  • 传统的测试策略:

    1. 单元测试
    2. 集成测试
    3. 确认测试
    4. 系统测试
  • 单元测试的测试内容的5个特征:

    1. 模块接口
      a. 测试模块的输入参数和形式参数在个数、属性、单位上是否一致。
      b. 调用其他模块时,输入参数和形式参数在个数、属性、单位上是否一致。
      c. 调用标准函数时,所用参数在个数、属性、单位上是否一致。
      d. 全局变量在各模块中的定义和用法是否一致。
      e. 输入是否改变了形式参数。
      f. 开/关的语句是否正确。
      g. 规定的I/O格式是否与输入/输出语句一致。
      h. 在使用文件之前,是否已经打开文件。或使用文件之后,是否关闭文件。
    2. 局部数据结构
      a. 变量的说明是否合适。
      b. 是否使用了尚未赋值或尚未初始化的变量。
      c. 变量的初始值或默认值是否正确。
      d. 变量名是否有错(例如拼写错)。
    3. 重要的执行路径:单元测试中,路径测试时最基本的任务。
      a. 计算方面的错误:算数运算的优先级,精度,运算对象类型,算法,表达式。
      b. 比较和控制流的错误:精度,类型,逻辑运算,循环终止,循环变量,分支逻辑。
    4. 出错处理。
    5. 边界条件。
      a. 单元测试的最后工作,非常重要的工作。
  • 单元测试过程:

    1. 驱动模块:相当于主程序,接收数据,送到测试模块,输出测试结果。
    2. 桩模块(存根模块):代替测试模块中调用的子模块,目的是为了检验入口,输出调用和返回信息。
  • 集成测试:

    1. 自顶向下集成测试
    2. 自底向上集成测试
    3. 回归测试
    4. 冒烟测试
  • 回归测试:每当加入一个新模块,出现的变更可能会使原来可以正常工作的功能产生问题,回归测试有助于保证变更不引入无疑是行为或额外的错误。

  • 冒烟测试:常用的集成测试方法,时时间关键项目的决定性机制,让软件团队平凡的对项目进行评估。

  • 系统测试:

    1. 回复测试
    2. 安全性测试
    3. 压力测试
    4. 性能测试
    5. 部署测试

  • 测试面向对象软件
    1. 单元测试
    2. 集成测试:
      a. 基于线程测试
      b. 基于使用测试

  • 测试方法:
    1. 静态测试
    2. 动态测试
  • 静态测试
    1. 人工检测
    2. 计算机辅助静态检测
  • 动态测试
    1. 黑盒测试:测试软件的外部特征。
    2. 白盒测试:根据程序的内部结构和逻辑来设计测试用例,对程序的路径和过程进行测试。
  • 白盒测试:
    1. 逻辑覆盖
      a. 语句覆盖:最弱的逻辑覆盖。
      b. 判定覆盖:每个判断表达式至少出现一次True和False。
      c. 条件覆盖:每个逻辑条件都至少通过一次。
      d. 判定/条件覆盖:上面两个结合一下。
      e. 条件组合覆盖:各种可能的组合都至少出现一次。
      f. 路径覆盖:覆盖被测试程序中所有可能的路径。
    2. 循环覆盖:循环中的每个条件都得到验证。
    3. 基本路径测试
  • 白盒测试的原则:
    1. 程序模块中的所有独立路径至少执行一次。
    2. 在所有的逻辑判断中,True和False至少都执行一次。
    3. 每个循环在边界条件和一半条件下各执行一次。
    4. 测试程序内部数据结构的有效性。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容