`

软件开发方法的探索[2]

 
阅读更多

昨天夜里做梦又被”重构,重构”声中醒了,这是我从事IT行业以来体会最深的一个词语了。太富有内涵和伟大思想了。

上篇大概提到了敏捷开发中的一些内容,这回聊聊测试驱动开发和目前工作中如何推广这些技术的一些感想。

测试驱动开发,其道理很简单,即在编写程序乃至设计程序的时候,先想着如何写测试程序…确实很难转过弯来。尤其是在UI方面的测试大多数都是直观看的情况下,或者涉及到并发,网络,多线程编程的情况下,很少能有用到测试的(恕我孤陋寡闻!)。我在看完kent beck的测试驱动开发后,体会到一个东东----》针对我这种菜鸟级别的人来说:

1 测试程序应该是类似单元测试一样的东西。之前觉得测试驱动开发不可行的原因是老想着在代码已经完成的情况下再去编写针对整个系统的测试,当然是不可能的!!但是大系统必然都会分解成小单元,甚至包,类。针对这些类,包去编写单元测试是可行的,而且会带来很好的结果。例如最近编写了一个NetEngine类和一个XMLCodecFactory类,就完全可以针对这两个类单独搞一套testcase。这样的好处是就是如果以后谁维护或者谁重构的话,都需要先通过测试才可以提交代码。----扯远点了,这就是面向接口编码的好处,外部程序大量使用接口,这样可以有效得解除应用程序或模块之间的耦合。

2 测试程序要利用好现有的框架。目前最好的就是XUnit框架了。

在目前的公司,需求变化很大,定制化开发的东西很多,尤其是BSP一变化,经常出现从系统底层一直到应用层的变化,找bug!所以,姑且不谈测试驱动开发中的开发,我现在需要一种手段保证底层的变化不会扩散蔓延到上层来。所以必须针对底层模块编写CTS似的单元测试程序。我发现这个东西的最早是在使用android中的camera部分,里边有个测试程序。完全不用在java层编写,就是针对c++层和驱动层的测试。至少要保证这个是对的,我才能和才敢拿到应用层中去使用。

测试驱动开发对开发人员的技术素养和开发技巧以及思维有很大的挑战,目前看来我们公司是不太适合用测试来驱动开发,但是编写单元测试是有其重要的必要的。

例如,针对camera编写,针对mediaplayer编写,针对mediaScanner编写,针对FM编写等。

实际上,google的CTS就是为了解决这个问题而存在的,我们一定要理解它背后的苦衷!!

分享到:
评论

相关推荐

    【研究生论文】研究生团队软件开发方法的探索与研究.pdf

    【研究生论文】研究生团队软件开发方法的探索与研究.pdf

    软件开发中文档管理的探索与实践

    文档管理是软件开发管理过程中不可或缺的一部分,是软件配置管理的基础。目前许多中小型软件企业都存在文档管理 混乱,而导致软件开发随心所欲、进度延期、维护困难等问题。作者分析了这些问题产生的原因,提出了...

    敏捷软件开发-原则、模式与实践.pdf

    本书讲授了一些原则、模式以及实践,它们可以帮助软件开发人员在追求美的程序、设计以及团队的道路上迈出第一步。本书探索了基本的设计原则,软件设计结构的通用模式以及有利于团队融为一个有机整体的一系列实践。...

    敏捷软件开发.pdf

    4.1 测试驱动的开发方法 4.2 验收测试 4.3 结论 参考文献 第5章 重构 5.1 素数产生程序:一个简单的重构示例 5.2 结论 参考文献 第6章 一次编程实践 6.1 保龄球比赛 6.2 结论 第II部分 敏捷设计 第7...

    Python语言中列表方法的探索.pdf

    Python语言中列表方法的探索.pdf

    软件测试方法类型及应用详解带示例(值得珍藏)

    通过深入理解软件测试的基本原理和方法,并设计合理的测试用例,我们可以有效地发现软件中的问题和缺陷,提高软件开发的效率和质量。在未来的软件开发中,随着技术的不断进步和需求的不断变化,软件测试将面临更多的...

    OSSDevGov2021:开源软件开发和社区治理(开源软件开发与社区治理)

    开源软件开发是人类在互联网发展进程中探索出的一种面向全球的大规模软件协作开发生产模式,当下备受关注的目光。开源软件开发的模式涉及到开发者,开源项目,开源社区,开源基金会本课程围绕着开源协作过程中的核心...

    论文研究 - 敏捷开发:探索从业者想知道的东西

    b)大量接受基于计划的Waterfall开发的培训的软件开发人员,他们试图过渡到Agile; c)一些公司和从业者仍然对敏捷开发相对于基于计划的开发的好处持怀疑态度; d)正在开发中以支持敏捷开发的工具。 基于这些因素...

    敏捷软件开发:原则、模式与实践.pdf 高清

    享誉全球的软件开发专家和软件工程大师Robert C.Martin向您介绍如何解决软件开发人员、项目经理及软件项目领导们所面临的最棘手的问题。这本综合性、实用性的敏捷开发和极限编程方面的指南,讲述了在预算和时间要求...

    敏捷软件开发:原则、模式与实践.pdf

    4.1 测试驱动的开发方法 4.2 验收测试 4.3 结论 参考文献 第五章 重构 5.1 素数产生程序一个简单的重构示例 5.2 结论 参考文献 第六章 一次编程实践 6.1 保龄球比赛 6.2 结论 第Ⅱ部分 敏捷设计 第七章 什么是敏捷...

    基于GIS的集成软件开发

    正则表达、探索性空间数据分析和确定性空间数据分析,提出了在面向对象的软件开发环境中以组件化的方式集成二者的模式,最后以一具体的空间数据库为例依次展示了集成系统提供的各项空间分析功能。

    CMMI_3级软件过程改进方法与规范

    软件过程改进是目前 IT 企业研发管理的重点与难点。为了提高软件过程能力,企业首先要研制软件过程规范,这是有...本书的主要读者对象是IT企业的研发主管、项目经理和软件开发人员,以及即将到企业工作的高校毕业生。

    探索模型驱动开发(MDD)和相关方法(下)

    在本文中,在业界的其他相关活动的上下文中了解模型驱动开发(model-drivendevelopment,MDD)。比较软件工厂、领域特定语言和MDD方法。...结合模式与建模以实现架构驱动开发解释了MDD如何支持体系结构驱动的开发方法。

    基于西电捷通网络安全协议套件的基线生成方法的探索

    在软件开发过程中,软件配置管理是是软件开发重要的质量保证手段。而在软件配置管理中,基线管理又是非常重要和先进的管理方法。基线管理的最大益处在于,可以确保变更的可跟踪性,降低变更带来的风险。无论是微软...

    [详细完整版]软件工程.txt

    第一章 1,软件危机的概念:... 7,软件工程研究的内容:软件开发方法,软件开发模型,软件支持过程和软件管理过程。 8,软件工程的三要素:过程+方法+工具。 : 1,什么是软件的生命周期:软件定义,软件的开发和运行

    软件测试中什么是探索性测试?

    探索性软件测试是一种强大和有趣的测试方法。在某些情况下,它比剧本化的测试更高效。其实,每个测试员都在不知不觉地在用到探索性测试方法,但是很少有人学习和重视这种方法。现在是时候认识一下探索性测试方法了:...

    现代软件工程习题及答案

    (2) 在渐增型开发下的软件是随软件开发的过程而逐渐形成的。 (3) 渐增型开发方法适合于知识型软件的开发,设计系统时对用户需求的认识开始不是很清楚的,需要在开发过程中不断认识、不断获得新的知识去丰富和完善...

    基于OBE理念的项目驱动式计算机组成原理教学方法探索.pdf

    基于OBE理念的项目驱动式计算机组成原理教学方法探索.pdf

    软件测试综合资料库

    在很多情况下,软件开发人员同用户的思路是完全不同的。开发人员由于接近硬件底层,更多的是从机器的“思维”来考虑问题,而用户只是为了使用。很多软件开发人员抱有这样的思维,认为用户很笨,“你这样用就不会出现...

    JAVA聊天软件的设计与开发软件工程课设源码+设计文档说明.zip

    通过本课程设计的实践及其前后的准备与总结,复习、领会、巩固和运用软件工程课堂上所学的软件开发方法和知识,以此来完成聊天软件的分析、设计、编码、测试等工作。 1.2. 任务 通过认真阅读老师所给的课程设计的...

Global site tag (gtag.js) - Google Analytics