关闭

随想录——软件开发不能是加工作坊

发表于:2012-4-16 11:19

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:feixiaoxing(CSDNblog    来源:51Testing软件测试网采编

  (4)抽象流程

  作为一个软件的主流程,这好像应该是软件主程序员应该负责的事情。其实,作为某一个模块的程序员,我们也可以从中学习到一些东西。就拿我经常说的一个例子来说,假设现在我们需要设计一个音频播放器,它需要支持mp3、wav、ogg等多种音频格式文件。看到这里,大家可以先考虑一下,这个软件应该设计?在这个地方,我们应该思考一下,所有的文件操作有什么共性的地方,能不能在各种音频文件之上构造出一个通用的文件访问流程。有了这个抽象的访问流程之后,那我们对各种音频的处理就是一个简单的注册和解析工作了。即使我们写的程序不正确,也不会影响原来主流程的运行过程。有了这一层抽象之后,可以极大提高我们工作的开发效率。

  (5)单元测试

  单元测试是一种非常好的方法。本质上说,代码设计者应该是代码的最终负责人。可是在实际工作中,我们把软件的质量问题过多地放在了测试人员身上。好多人认为软件测试是一个非常无趣且单调的工作。其实,情况并非如此。对于功能性测试,我们应该尽可能采取自动化测试的方法,实现版本的每日构造和每日冒烟测试。而对于模块的测试,那就要进行代码的单元测试。就我个人的经验而言,如何设计stub函数,如何设计单元测试是非常考验人的一件事情。随着单元测试用例的增加,我们的代码会越来越健壮,整个模块也会越来越稳定。可是在很多公司,单元测试做的很不足,或者说很多公司干脆彻底就不做了。

  (6)自己编写测试工具

  平时测试软件的时候,我们的方法其实不多。有的人习惯使用windows的性能分析工具,或者如果公司比较富裕一点,会自己购买pure coverage等工具。但是,其实很多时候我们是可以自己编写测试工具的。这些工具的编写不复杂,比如说

  a)可以利用malloc重定向的方法,统计malloc的内存个数,看看内存有没有泄漏

  b)利用开源工具gcov测试代码覆盖率

  c)自己编写脚本解析模块,灵活地对代码功能进行测试

  d)利用assert属性,捕捉一切异常的属性等等

  (7)仿真工具

  在嵌入式开发中,实际环境常常是非常有限的。所以,创建一个有效的仿真平台是什么重要的。就拿android来说,我们就是在windows上面开发一个android的仿真环境,那么app的开发者就不需要每次开发一个版本之后,到实际phone上下载之后才能看到实际的运行结果。有了pc的仿真之后,他在pc上看到的结果基本上就是在phone上看到的效果。这中间没有别人的打扰、没有实际环境的搭建,工作的效率自然而然就可以提高上去了。当然不仅GUI可以仿真,原则上只要不和具体硬件相关的操作都可以而且应该放在pc上来解决。

  上面很多的内容都是我个人的一些总结和意见,欢迎朋友们多多交流看法。

22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号