59

软件实现不仅仅是完成编码

 6 years ago
source link: http://mp.weixin.qq.com/s/6Wf-WrWpC-6vruwGEDY8Iw
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

软件实现不仅仅是完成编码

Original 王小双 软件工程之思 2017-11-28 23:00 Posted on

软件实现,在外行的眼里,就是编码,编写完成软件功能的代码,软件就能运行起来了。如果软件实现真有这么简单,那就不会有软件工程出现了。

真正的软件实现,包括编码、代码审查、单元测试、集成测试、缺陷跟踪和改错。

编码就是要编写代码以实现的软件功能。除了这一基础要求之外,程序员还应该完成下面几件事,以保证自己编写的代码的质量。

  1. 采用成熟可靠的技术,不滥用技巧

成熟可靠的技术不仅可以提高软件质量,提高开发效率,而且降低开发成本,何乐而不为呢?

  1. 对代码进行单步跟踪调试

假设我们设计和编写200行C++代码要花费一天时间(8小 时),那么对这200行代码进行单步跟踪调试大约会花费10分钟。这10分钟的单 步跟踪调试不会让我们根劳累,它带来的好处是: (1)减少了后续的测试和改错代价(远远不止10分钟的工作 量); (2)让你对自己的程序更有信心,不再为知的Bug提心吊胆,日子过得更加快乐。

所以程序员朋友们,不要拒绝单步跟踪调试了。

  1. 写日志,做周报

对开发进程都有记录,不仅使项目管理有了决策依据,一旦软件发生问题,查找原因也变得容易。

  1. 做好版本管理

使用配置管理工具对代码进行版本管理,以便清楚地记录每一个新版本,并且可以根据需要随时回溯到任意一个老版本。

代码审查通常在开发人员之间开展,用眼睛检查代码是否符合编程规范。在软件测试之前执行代码审查,可以降低测试的代码。代码审查要依据编码规范制定“代码审查表”。代码审查表中的检查项可以依据不同类型的软件项目专门定制。

单元与集成测试

一般地,单元测试和集成测试也都是由开发人员来完成。因为开发人员对代码比较熟悉,完成单元测试这样的白盒测试更具优势。

测试缺陷应当记录并且跟踪其得到解决,这对于合格性测试来说是再正常不过的,可是对于单元测试和集成测试,特别是由开发人员自己完成的单元、集成测试,执行得就没有那么好了。因为大多数开发人员认为对于自己发现的问题修改了就好了,没有必要记录下来。但是,如果不对发现的问题进行了记录、跟踪,在需要回溯问题、快速定位修改的代码位置,会花费很大的代价;同时,对测试数据的归类分析,也会帮助开发人员建立自己的经验教训库,避免下次再犯同样的错误。

改错的通常办法是“粗分细找”,首先快速定位一个大致的范围,然后使用调试工具仔细地跟踪代码的运行,以精确地定位错误的代码位置,进行修改。

修改代码时要注意下列事项:

  1. 动手修改之前,使用需求跟踪矩阵,查看是否有受待修改的代码模块影响的软件模块

如果有,要评估是否修改受影响的代码模块。需要的话,一并修改。

  1. 确认定位的代码模块是否存在其他缺陷

根据测试原理,当在某处发现测试BUG,在其附近可能存在未发现的其他BUG。所以,测试应当更加关注对已发现错误的代码模块。

  1. 对已发现的测试问题举一反三

有些错误类型可能是普遍性的,比例一些不当的编写习惯造成的规范错误,可能会在软件代码中多处出现。因此,发现这样的代码错误要举一反三,同时消除代码中其他位置潜伏的同类型的错误。

  1. 最重要的是改错完成之后,一定要回归测试

回归测试既要验证改错的正确性,也要预防引入新的错误。

所以,软件实现并没有想像的那么简单,它包括编程、代码审查、单元和集成测试、缺陷跟踪和改错等一系列活动。只有认真完成这一系列活动,软件代码的质量才能得到保证。

参考书目:《软件工程与项目管理解析》

微信赞赏专用通道

Image

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK