构建之法第二章

本章为个人技术和流程,主要介绍了单元测试、回归测试、效能分析和个人软件开发流程等内容。

单元测试:如何能让自己负责的模块功能定义尽量明确,模块内部的改变不会影响其他模块,而且模块的质量能得到稳定的、量化的保证,单元测试就是一个很有效的解决方案。

1、用VSTS写单元测试:在写技术模块的规格说明书的时候,要越详细越好,最好各项要求都可以表示为一个单元测试用例。

2、好的单元测试的标准:

1>单元测试应该在最基本的功能/参数上验证程序的正确性

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

3>单元测试后,机器状态保持不变

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

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

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

7>单元测试应该覆盖所有代码路径:100%的代码覆盖率并不等同于100%的正确性

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

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

3、回归测试:可以理解为“回归到以前不正常的状态”,单元测试是回归测试的基础

4、效能分析工具:两种分析方法为抽样和代码注入;一般做法为先用抽样的方法找到效能瓶颈所在,然后对特定的模块用代码注入的方法进行详细分析;如果我们不经过分析就盲目优化,也许会事倍功半

5、个人开发流程:根据数据显示,从学生到职业程序员,并不是更加没完没了地写程序,花在写代码的时间反而少了许多,而在“需求分析”和“测试”这两方面明显要花更多时间,在具体编码上花费时间少。

虽然,在实际软件开发中,需要团队的合作,但是在团队中,每个人都应该到达一定的水平,也就是这章讲述的个人技术和流程,可以说这是基础,只有每个人的技术和开发流程打到一定的标准,有一定的规范,才有利于团队之间多人的合作,才能保证配合开发出来的软件的各个模块都是符合标准的,具有一定健壮性的,利于维护和更新。

时间: 2024-10-03 23:10:24

构建之法第二章的相关文章

读构建之法 第二章:个人技术和流程

绝大部分软件都是由多人合作完成的,大家的工作相互有依赖关系.某人负责的模块的功能被其他人调用,但如何让自己负责的模块功能定义尽量明确,模块内部的改变不会影响其他模块,而且模块的质量能得到稳定的.量化的保证???单元测试就是一个很有效的解决方案. 创建单元测试函数的主要步骤是: 1.设置数据(一个假象的正确的E-mail地址) 2.使用被测试类型的功能(用E-mail地址来创建一个User类的实体) 3.比较实际结果和预期的结果(Assert.IsTrue(target!=null) 创建完就可以

构建之法第二章个人技术和流程

如果说第一章我还有点概念,那么第二章我可以说一窍不通,什么是VSTS,什么是单元测试,什么是回归测试,还是什么是效能分析--好多的新名称,第一次看见,是那么的没有头绪.要不是百度了,仅仅看书,我完全不知VSTS--Visual Studio Team System,是由微软开发的一套具有高生产力.高集成性.可扩展的生命周期开发工具. 2.1.1节图文并茂的告诉我,单元测试重要作用,可能是自己的能力不足,相关知识了解的太少了,一边看还一边想,单元测试怎么写?写在哪里?什么时候写?就算是按照书本上的

构建之法第二章读书心得

通过阅读第二章的内容,了解到了为什么要进行单元测试.因为软件是由多个人共同完成的,如果某个模块出现问题,那么整个软件都会出错.那么怎么样才能做好测试呢?1.要在功能和参数上验证程序的正确性.2.单元测试最好由代码的作者来写.3.保证测试之后,机器状态保持不变.4.速度要快.5.重复测试结果应该一致.我们还要对程序进行效能分析,保证程序运行的又快又好,占用资源少.效能分析可以通过抽样或代码注入来完成.我们还应该对个人开发流程进行如下所示的规划:预估任务所需时间.分析需求.生成设计文档.设计复审.代

构建之法 第二章 个人技术和流程

这一章重点介绍的是以前了解过但未曾注重过的单元测试&回归测试:个人技术素养是团队协作的基础. 1.VSTS单元测试 源代码 public Class User() { public User(string userEmail) { memail = userEmail; } private string memail;//private变量拒绝外部类访问(除非用get/set方法) } 测试代码1 public void ConstructorTest() { string userEmail

<构建之法>第二章读后感

本章的实质是在说明,一个合格的软件工程师是怎样的,他应该具备哪些技能. 总结下来,一个合格的工程师在开发时需要同时考虑质量和效率,与之同时需要具备的技能包括:单元测试.效能分析.个人研发流程(PSP): 单元测试能让自己负责的模块功能定义尽量明确,模块内部的改变不会影响其他模块,而且模块的质量能得到稳定的.量化的保证. 创建单元测试函数的主要步骤是: 1.设置数据 2.使用被测试类型的功能 3.比较实际结果和预期结果 怎样才算一个好的单元测试:单元测试应该准确.快速的保证程序基本模块的正确性.

完成构建之法第二章后面的小实践~

练习数值计算.找出一个整数数组中子数组之和的最大值,例如:数组[1,-2,3,5,-1],返回8,因为符合要求的子数组是[3,5]: 程序代码如下,使用的是C语言: #include<stdio.h>int Serch(int a[],int n){ int i,temp; for(i=1;i<n;i++) { if(a[0]<a[i]) { temp=a[0]; a[0]=a[i]; a[i]=temp; } } for(i=2;i<n;i++) { if(a[1]<

构建之法--第二篇

构建之法--第二章 在这一周中,我计划学习了<构建之法>的第二章,我认为从第二章开始,才算真正进入到了这本书的主题.这一章讲到的是个人技术和流程.首先,个人技术是衡量你是否能成为一名合格的软件工程师.而想要组建一个优秀的软件开发团队,就必须要有一名软件工程师.流程则是团队来管理开发活动的经过. 个人技术:其中就包括了三点,即单元测试.回归测试.效能分析. 单元测试:我们为什么需要做单元测试呢?这是为了让自己负责的模块功能定义尽量明确,模块内部的改变不会影响其他模块,而且模块的质量能得到稳定的.

读构建之法第二天

刚刚读了构建之法第一章的内容,主要讲述了计算机科学领域,软件工程与计算机科学的关系,软件的特性以及软件工程的定义和组成部分这四方面的内容.下面我将分为四部分 来记录自己的收获. 第一部分: 1. 软件 = 程序 + 软件工程        软件工程的核心部分是构建管理.源代码管理.软件设计.软件测试.项目管理.广义上软件工程还包括用户体验,用户设计界面等, 所以一个拓展的推论是:        软件企业 = 软件  + 商业模式. 2.  软件开发有不同的阶段:(1)玩具阶段  (2)业余爱好阶

阅读构建之法第一章有感

今天阅读了构建之法第一章,感觉到自己其实玩具的阶段都不到,离研究阶段更是差的有段距离.了解到程序其实只是一个藏在你电脑里的数据结构加算法,要想成为软件还得经历软件工程这一阶段,软件工程便是把系统的.有序的,可量化的方法应用到软件开发,运营和维护上的过程中.首先我要进行软件需求分析,一个成功的软件是要有市场需求作为背景的,没有需求你做的软件就是无用的东西,有了需求然后我们对软件进行设计使之安全 可行 基本满足市场的需求.然后我们便对我们的软件进行测试.最后软件在用户手中运行,但是十全十美的软件是不