首页 > 其他分享 >构建之法读书笔记03

构建之法读书笔记03

时间:2023-04-30 20:33:11浏览次数:29  
标签:03 工程师 代码 读书笔记 单元测试 程序员 构建 模块 PSP

第二章 个人技术和流程

2.1 单元测试

①重要的单元测试:有效解决程序员对模块功能的误解、疏忽或不了解模块的变化之类的问题,使自己负责的模块功能定义尽量明确,模块的质量得到稳定的、量化的保证。

②好的单元测试的标准:

在最基本的功能/参数上验证程序的正确性

单元测试必须由最熟悉代码的人(程序的作者来写)

单元测试过后,机器的状态保持不变

单元测试要快(一个测试的运行时间是几秒钟,而不是几分钟)

单元测试应该产生可重复、一致的结果

独立性——单元测试的运行/通过/失败不依赖于别的测试,可以人为构造数据,以保持单元测试的独立性

单元测试应该覆盖所有代码路径

单元测试应该集成到自动测试的框架中

单元测试必须和产品代码一起保存和维护

③单元测试的基础上能够建立关于这一模块的回归测试,目的是:

(1)验证新的代码的确改正了缺陷

(2)同时验证新的代码有没有破坏模块的现有功能,有没有Regression

2.2 效能分析工具

效能分析方法:抽样和代码注入

2.3 个人开发流程

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

特点:(1)不局限于某一种软件技术,而是着眼于软件开发的流程,这样,开发不同应用的软件工程师可以互相比较。

(2)不依赖于考试,而主要靠工程师自己收集数据,然后分析、提高。

(3)在小型、初创的团队中,很难找到高质量的项目需求,这意味着给程序员的输入质量不高。在这种情况下,程序员的输出(程序/软件)往往质量也不高,然而这并不能全部由程序员负责。

(4)PSP依赖于数据(工程师输入数据的时间代价、数据可能遗失或者不准确的风险、可能会出现一些数据不利于工程师本人的情况)

(5)PSP目的是记录工程师如何实现需求的效率,而不是记录顾客对产品的满意度,工程师有可能很高效地开发出一个顾客不喜欢的软件。

标签:03,工程师,代码,读书笔记,单元测试,程序员,构建,模块,PSP
From: https://www.cnblogs.com/cocotun/p/17365737.html

相关文章

  • 构建之法读书笔记-4月-2
    《构建之法》一书共分四部分,详细介绍了具有创新性、高度可靠性的软件架构设计的方法及工具,这里主要介绍第三部分和第四部分的内容。第三部分介绍了如何针对不完美的现实环境进行系统设计,并以适应环境变化和不确定性为目标,最大限度地减少风险并提升可靠性。本部分重点关注于“鲁......
  • 构建之法阅读笔记03
    软件架构是什么?软件架构是指对软件系统的整体结构和组织方式的定义。它包括系统的各个组成部分、它们之间的关系、以及系统的行为和性能等方面。软件架构的重要性软件架构是软件开发的基础,它决定了系统的可维护性、可扩展性、可靠性和安全性等方面。良好的软件架构能够降低系统维......
  • Gradio: 使用Python构建机器学习网页应用
    Gradio:用Python构建机器学习网页APPGradio是一个开源的Python库,用于构建演示机器学习或数据科学,以及web应用程序。使用Gradio,您可以基于您的机器学习模型或数据科学工作流快速创建一个漂亮的用户界面,让用户可以”尝试“拖放他们自己的图像、粘贴文本、录制他们自己的声音,并通......
  • 1033. 移动石子直到连续
    1033.移动石子直到连续三枚石子放置在数轴上,位置分别为a,b,c。每一回合,你可以从两端之一拿起一枚石子(位置最大或最小),并将其放入两端之间的任一空闲位置。形式上,假设这三枚石子当前分别位于位置x,y,z且x<y<z。那么就可以从位置x或者是位置z拿起一枚石子,并将该石......
  • PAT Advanced 1003. Emergency
    PATAdvanced1003.Emergency1.ProblemDescription:Asanemergencyrescueteamleaderofacity,youaregivenaspecialmapofyourcountry.Themapshowsseveralscatteredcitiesconnectedbysomeroads.Amountofrescueteamsineachcityandthelen......
  • [ERR] collect2: fatal error: cannot find 'ld'
    今天在orinnano上希望g++使用lld代替ld时候,在如下命令时候抛出了如标题的错误>>g++-fuse-ld=llda.cccollect2:fatalerror:cannotfind'ld'compilationterminated.因为最开始配置llvm-15环境时候我有将lld-15软连接为lld,所以使用lld是可以正确执行的,但是看起来g++并......
  • Office2003 每次启动时弹出安装界面
    Office2003每次启动时弹出安装界面安装路径:E:\ProgramFiles(x86)\MicrosoftOffice\OFFICE11\EXCEL.EXE启动后监视相关文件注册表等,找到msiexec.exe相关调用,最后最终到:MSO.DLLC:\ProgramFiles(x86)\CommonFiles\microsoftshared\OFFICE11\MSO.DLL跟踪函数确......
  • ModuleNotFoundError: No module named 'exceptions'问题的解决
    问题描述在我按照要求下载了docx包之后,就又出现了这个错误,就很离谱,然后我就又跑去百度玩儿了问题解决然后就发现,需要将docx包卸载掉;然后再将python-docx包下载上,这样就可以成功运行啦!......
  • day 59 503.下一个更大元素II | 42. 接雨水
    给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字x的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出-1。示例1:输入:[1,2,1]输出:[2,......
  • 03 Spring生命周期
    文章目录1方式1标签属性配置1.1在目标类中添加初始化、销毁方法[init(),destroy()]1.2在spring配置文件中对应的bean中添加属性2通过spring接口方式在目标类中实现接口,InitializingBean和DisposableBean两接口3关闭容器的两种操作3.1使用close()方法3.2使用钩子函数:register......