zoukankan      html  css  js  c++  java
  • 20170930-构建之法:现代软件工程-阅读笔记

    這部分筆記2作為課上老師課上內容的整理,大部分出自于ppt

    好单元测试的标准:

    1. 应在最基本的功能/参数上验证程序的正确性
    2. 应由程序的作者来写
    3. 测试完毕后机器状态保持不变(tearDown)
    4. 要快(几秒而不是几分钟)
    5. 独立性-不依赖于别的测试(可人为构造数据)
    6. 应产生可重复,一致的结果
    7. 应覆盖所有代码路径
    8. 应集成到自动测试框架
    9. 应和产品代码一起保存维护

    什么是效能分析?

    使用工具对程序的效能进行分析以发现程序的效能瓶颈

    效能分析的目标是什么?

    有的放矢,改进程序

    什么是效能?

    程序所耗费的时间和内存,耗费的时间和内存越少越好

    效能分析的种类

    1.确定性分析(Deterministic Profiling)

    方法:代码注入(将检测代码加入到每一个函数中)

    2.统计分析(Statistical Profiling)

    方法:抽样(没事瞅两眼,程序当前在运行哪个函数)

    各自优缺点

    1.抽样:无需改动程序,运行较快,无法得到精确数据与调用关系树

    2.代码注入:需改动代码,运行时间长,数据精准,且会生成数据文件,同时也影响程序真实的运行情况

    代码复审定义:看代码是否在“代码规范”的框架内正确的解决了问题

    代码复审形式:

    名称

    形式

    目的

    自我复审

    自己VS.自己

    用同伴复审的标准来要求自己。不一定最有效,因为开发者对自己总是过于自信。如果能持之以恒,则对个人有很大好处。

    同伴复审

    复审者VS.开发者

    简便易行

    团队复审

    团队VS.开发者

    有比较严格的规定和流程,适用于关键的代码,以及复审后不再更新的代码覆盖率高——有很多双眼睛盯着程序,但效率可能不高(全体人员都要到会)

    代码复审的目的:

    1. 找出代码的错误:编码错误,不符合团队规范的地方
    2. 发现逻辑错误,程序可以编译通过,但是逻辑是错的
    3. 发现算法错误,如使用的算法不够优化,边界条件没有处理好
    4. 发现潜在的错误和回归性错误——当前代码修改导致以前修复的缺陷又重新出现
    5. 发现可能需要改进的地方
    6. 教育(互相教育)开发人员,传授经验,让更多的成员熟悉项目各部分的代码,同时熟悉和应用领域相关的实际知识

    代码复审的步骤:

    复审前

    严格编译通过,测试过代码,提供新代码与文件差异分析工具

    复审中

    1. 面对面、独立或其他方式
    2. 复审者可以在任何时候打断
    3. 开发者有义务给出详尽回答
    4. 结果需达成一致

    复审后

    开发者整理记录并解决问题

  • 相关阅读:
    公司到底是怎么看我们的……[转]
    C# String.Format 的使用[转]
    Oracle9I 在安装时出现[登台区出现问题,请确保指定有效的“源”和“目标”!]
    街机游戏下载
    C#操作Excel时直接引用Com和InteropExcel的差异
    我所理解的接口和抽象类[转]
    c# winFrom 使窗体显示SplitContainer或Panel中[转]
    SQL Server 2005之PIVOT/UNPIVOT行列转换(转)
    Solaris大半年使用感触
    solaris上的pkg管理
  • 原文地址:https://www.cnblogs.com/xingyunqi/p/7616342.html
Copyright © 2011-2022 走看看