• 2018-2019-1 20189206 《构建之法》第二章学习笔记


    2018-2019-1 20189206 《构建之法》第二章 学习笔记

    第二章 个人技术和流程

    单元测试

    单元测试应该准确、快速地保证程序及本模块的正确性。

    • 单元测试的标准
      • 单元测试应该在最基本的功能、参数上验证程序的正确性。
        • 单元测试应该测试的是程序中最基本的单元、系统中最基本的功能点。
      • 单元测试必须由最熟悉代码的人来写
        • 最好在测试的时候就写好单元测试,可以体现API的语义。
      • 单元测试过后,机器状态保持不变
      • 单元测试要快(一个测试的运行时间是几秒钟而不是几分钟)
      • 单元测试应该产生可重复、一致的结果
      • 独立性——单元测试的运行、通过、失败不依赖于别的测试,可以人为构造数据,以保持单元测试的独立性。
        • 单元测试中的模块可以直接引用其他的模块,并期待其他模块返回正确的结果。
      • 单元测试应该覆盖所有的代码路径
        • 所有的代码路径是包括错误处理的路径,为了保证代码的覆盖率,单元测试必须测试公开和私有的函数、方法。
          ** 100%的代码覆盖率不等于100%的正确性 **
      • 单元测试应该集成到自动测试的框架中
      • 单元测试必须和产品代码一起保存和维护

    回归测试

    在单元测试基础上,就可以建立关于这一模块的回归测试。顾名思义,在项目中,一个模块或功能以前是正常的,但是在一个新的构建中出了问题,那么这个模块出现了“退步”从正常工作的状态退化到不正常工作的状态。

    回归测试最好要自动化,对每一个构建快速运行所有的回归测试,以保证今早发现问题。

    • 回归测试的目的在于
      • 验证新的代码改正了缺陷
      • 验证新的代码没有破坏模块的现有功能

    效能分析

    • 两种分析方法
      • 抽样 当层序运行结束时,VS查看这个程序运行在哪一个函数内,并记录下来。程序结束后,VS得出关于程序运行时间分布的大致印象。
      • 代码注入 将检测代码加入到每一个函数中,程序的各个效能可以被精确地测量。缺点是程序的运行时间会大大加长,产生很大的数据文件,增加数据分析的时间。
      • 一般的做法是先利用抽样方法找出效能瓶颈,在针对特定的模块用代码注入的方法进行效能分析。

    个人开发流程PSP(personal Software Process)


    • 计划
      • 明确需求和其他相关因素,指明时间成本和依赖关系
    • 开发
      • 需求分析
      • 生成设计文档
      • 设计复审
      • 代码规范
      • 具体设计
      • 具体编码
      • 代码复审
      • 测试(自测、代码修改和提交修改)
    • 报告
      • 测试报告
      • 计算工作量
      • 事后总结,并提出过程改进计划

    PSP有如下特点

    • 不限于某一种软件技术,而是着眼于软件开发的流程,开发出不同应用的软件工程师可以互相比较
    • 不依赖于考试,主要靠工程师自己收集数据,然后分析提高
    • 在小型、初创的团队中很难找到高质量的项目需求,意味着程序员的输入质量不高,得到的软件质量也不高
    • PSP依赖于数据
    • PSP的目的是记录工程师如何实现需求的效率,而不是记录顾客对产品的满意度。

    总结

    在过去的学习和实践中因为专业学的很多,没有接触到项目开发流程和类似于团队管理这方面的知识,通过本章对于PSP个人开发流程的学习,了解到一个软件项目的开发不仅仅局限于代码的编写,着眼于整个项目的开发,从需求分析到最后的事后总结,并详细记录每个环节所需要的时间,可以更加高效地完成项目,同时也会发现,在做项目的项目详细地划分使得工作方向更加明确,在以后的学习中我也会更加注重这方面知识的积累,开发项目时合理规划每一个阶段并计算所需时间。

  • 相关阅读:
    sublime text在Linux下build出现'ascii' codec can't decode byte 0xe4 in position 0的解决办法
    sublime text的verilog插件——verilog automatic
    Ubuntu Lucid Installation Guide
    vim之perlsupport的小修改
    python笔记
    sublime text中ctags使用注意事项
    2021年终总结
    wp7学习站点
    WPF中调用Winform控件
    Xen Cloud Platform 系列:NFS 存储库(四)
  • 原文地址:https://www.cnblogs.com/zz-1226/p/9902029.html
Copyright © 2020-2023  润新知