减少软件开发成本的十个技巧

开发 项目管理
软件质量管理主管顾问Martin Adcock,提供了10种减少软件开发成本的方法,包括良好的需求文档、变更控制、文档管理等等;这其中有6项与测试相关,值得我们注意。

不景气的经济,不断高涨的油价,严重影响了商业活动,每一个人都在寻找新的途径,用来抵消新增加的成本:能源。伦敦的软件质量管理主管顾问Martin Adcock,提供了10种减少软件开发成本的方法。

1、 良好的功能需求文档

没有文档化的需求,系统就存在不能满足客户期望的隐患。“比如,也许它不能按照客户认为应该的方式工作,即便是开发团队认为他们的工作一直符合归档的需求。”Adcock说。这将导致项目返工、延期发布、增加成本以及客户和软件团队之间潜在的矛盾。

2、 非功能的需求应尽早定义,尽早明确

大多数组织都集中在系统的功能方面,即它做什么,而不是它怎么做。“非功能的要素包括一切,从性能到安全再到可用性。”Adcock说,非功能的需求同样重要。

缺少清晰的、尽早定义的非功能的需求,发布后的系统可能和客户想的功能一样——但它太难用、速度奇慢、不安全、不可靠或者扩展性太差。“这将再一次”导致开发组返工——一些非功能的领域对于产品的设计是必须的,再没有重新启动项目的情况下,很难去修正它们。”

3、保证适当的变更控制过程

没有变更控制,系统开发会发现自己处于不确定的状态。“例如,”Adcock解释说,“随着项目的进行,越来越多的需求面临着变更,每个变更都没有正确的影响评估。”每一个变更都应该被严格控制。每一个允许的变更都应该在完整的影响评估之后,要分析它对项目的时间进度和成本的影响。

4、 使用配置管理系统管理代码、数据和文档

没有配置单管理系统,做高质量的测试是不可能的。“这是因为你不确定正在测试的软件或者文档是不是正确的版本,或者发布给用户的版本是不是完全测试的。”Adcock说。配置管理比较差的组织可能测试的是一个版本,而发布的是另外一个版本,其中包含了还没有经过测试的特性。

5、 集中在缺陷预防,而不是测试

项目开始时在需求文档中修正一个错误远比它开发完成后再修正更快速更便宜。“这已经被证明很多次,在项目周期中越晚发现一个缺陷,修正它花费就越多。”

下面的几个技巧大家都不会陌生,但你能真正做到吗?

6、在需求定义阶段开始设计用户验收测试

7、在系统设计阶段开始设计系统测试

8、重点关注单元测试

每一个人都知道,在开发过程中越早的发现缺陷,修复它就越容易、越快速、越便宜。对藏身于代码中的缺陷来说,单元测试是发现它们最早的阶段。

9 、计划基于风险的测试

由于各种原因,比如固定的发布期限,开发组的拖延,测试时间总是非常有限的,这将意味着并不是所有原先计划的测试都能得到执行。“在这个项目中,那些被认为是对产品成功非常重要的元素被充分测试。所以,测试应该总是集中在系统的“***风险级”的区域,根据测试时间的要求,然后是“中等风险”和低风险的元素。”

当面临时间压力时,这种基于风险的方法可以保证系统中还没有测试的元素都处于***风险区域。

10、 在发现错误更便宜更高效的时候,尽早使用工具来发现功能和非功能方面的错误

在开发的早期开始阶段,如果创建并维护好一套自动化的测试工具,它就可以重复使用做“冒烟测试”。“这种方法可以很快的、更早的发现潜在的很多缺陷,为以后的测试阶段节省宝贵的时间。”

另外一些特别的工具有时还能发现系统设计上的缺点,这些缺点应该发现的越早越好。“例如,早期对部分系统的性能测试可以暴露设计很差的模块,它发布后会拖累整个系统的性能到用户的容忍度以外。”这种情况下,该模块很容易被确认并被隔离,很容易修正或者重写。如果在系统交付测试后或者发布前才去做性能测试,这种确定过程将困难很多。

***一句话结束语,尽早测试,频繁测试。

【编辑推荐】

  1. 软件开发者需做代码复查的五大原因
  2. 软件工程师必知的12个单元测试技巧
  3. 印度软件出口商称新软件需求将停滞两年
责任编辑:佚名 来源: 51Testing
相关推荐

2012-12-31 09:43:56

云工具企业软件开发云产品

2022-06-01 08:00:00

开发成本功能

2022-08-22 16:03:15

软件开发系统

2023-03-01 15:45:43

2009-04-20 20:01:40

Linux开源开发成本

2012-12-21 09:48:36

2022-12-09 11:46:20

2022-11-07 16:06:15

TypeScript开发技巧

2024-03-11 09:00:00

人工智能软件开发软件编程

2011-12-01 11:27:59

2012-05-03 09:30:54

软件开发编程

2024-12-03 14:33:42

Python递归编程

2024-08-20 08:00:00

2023-12-31 12:11:07

AI工具人工智能

2023-07-02 14:21:06

PythonMatplotlib数据可视化库

2015-08-24 09:12:00

Redis 技巧

2022-05-12 08:12:51

PythonPip技巧

2023-10-16 07:55:15

JavaScript对象技巧

2023-01-17 16:43:19

JupyterLab技巧工具
点赞
收藏

51CTO技术栈公众号