一个成功的软件开发团队里,首先要确保团队里的成员是合格的软件工程师。那么该如何成为一名合格的软件工程师呢?这是我们要考虑和学习的。为此,我们需要先了解一些基本概念和技术。
既然是一个开发团队,那么绝大部分的软件都是由多人合作完成的,大家的工作相互有依赖关系。所以需要单元测试来保证整个开发过程各个模块的正确性,单元测试可以保证自己负责的模块功能定义尽量正确,模块内部的改变不会影响其他模块,而且模块的质量能够得到稳定的、量化的保证。书上介绍了一种用VSTS写单元测试的代码:
[TestMethod()]
public void ConstructorTest()
{
String userEmail=”[email protected]”;
User target=new User(userEmail);
Assert.IsTrue(target!=null);
}
从这个代码中,可以看出创建单元测试函数的主要步骤:1.设置数据(一个假象的正确的email地址)2.使用被测试类型的功能(用email地址来创建一个user类的实体)3.比较实际结果和预期的结果(Assert.IsTrue(target!=null);)。知道了如何创建单元测试函数,那么该如何判定段元测试的好坏呢?单元测试应该在最基本的功能/参数上验证程序的完整性;单元测试必须由最熟悉代码的人来写,即程序的作者;单元测试过后,机器状态保持不变;单元测试要快,运行时间一般为几秒钟;单元测试应该产生可重复、一致的结果;单元测试的运行/通过/失败不依赖于别的测试,可以人为构造数据,以保持单元测试的独立性;单元测试就应该覆盖所有代码路径;单元测试应该集成到自动测试的框架中;单元测试必须和产品代码一起保存和维护。
在单元测试的基础上,就可以建立关于这一模块的回归测试,回归即倒退、退化、退步的意思。在实践中,在一个项目的最后稳定阶段,所有人都要参加全面的测试工作,把所有以前发现并修复的bug找出来,一个一个验证,以此证明所有已经修复过的bug的确得到了修复,并且没有在最后一个版本中“复发”,这就是一个大规模的、全面的“回归测试”。
每个程序员都梦想着自己的程序跑得又快又好,那么就需要效能分析工具,有两种分析方法,第一种是抽样,就是当程序运行时,visual studio 时不时看一看这个程序运行在哪一个函数内,并记录下来。第二种方法是代码注入,将检测的代码加入到每一个函数中,这样程序的一举一动都被记录在案,程序的各个效能数据都可以被精确地测量。一般的来说就是先用抽样的方法找到效能瓶颈所在,然后对特定的模块用代码注入的方法进行详细分析。
软件工程包括了开发、运营、维护软件的过程中的很多技术、做法、习惯和思想。软件工程把这些相关的技术和过程统一到一个体系中,叫“软件开发流程”,软件开发流程的目的是为了提高软件开发、运营、维护的效率,以及提升用户满意度、软件的可靠性和可维护性。软件开发流行不光指团队的流程,因为软件软对是由个人组成的。在团队的大流程中,是每一个具体的个人在做开发、测试、用户界面设计、管理、交流等工作。因此,个人在团队中也有独立的流程,个人能力在整个团队中的作用是很大的。要想成为一名职业的软件工程师,首先是要考级,获得相应公司和行业的认证。在不同的阶段学习不同的技术,在学校里,学一些入门的技能,等到开始实践时,可以写别人交给你的任何东西,不明白时区问别人,渐渐地开始成为小组领导,开始学习领导能力,派发任务工作。
所以,要想成为一名合格的软件工程师,要学习、要走的路还很长很长,我们如今还仅仅停留在入门阶段,而入门阶段是基础,能为以后打好坚实的基础,只有入门时候的各种语言学扎实了,以后才能写好程序。