谈软件工程各环节中的辅助工具

来源:互联网 发布:软件测试阶段划分 编辑:程序博客网 时间:2024/05/21 18:03

今天想聊聊软件工程中的工具,俗话说得好,工欲善其事,必先利其器,开发工具不说了,各种IDE是大多数人最亲密的伙伴,感情最深,不用累述。其他需求,构建,测试环节可用的好工具不少,当然了,软件工程水平公司差异很大,版主曾经工作的公司,有的项目经理写个邮件就开工了,干完用户说行就行,需求新增或者修改都是一个电话,这种作坊式的开发方式在国内大小公司都有,小软件还可以,规模大了之后很难控制,一个老员工离职与之相关的所有功能,需求,代码都在他脑子里被带走了,多走俩人基本项目或产品就失败了,没有工程管理方法,软件质量也无从保证,事实证明再优秀的工程师也难免不往软件里带入bug,当然了,国内很多项目,甲方要求没那么高,能用和质量好的差异很大,就好像街边小摊买把菜刀,和德国双立人刀具的差距,当然成本投入也是相应的,做出来的价值也差异很大,就不展开说了。


我想聊聊整个软件工程中的工具使用情况,因为版主曾经工作的单位性质包含20人的游戏公司,国内上市公司,也有中等规模外企和500强外企,根据软件性质也分项目和产品,所以用得比较杂。早期还是瀑布开发模式,需求分析,概要设计,详细设计,开发,测试,交付,往往交付的时候要补一大堆文档给客户。近些年的开发模式都转到了迭代方法上,每日构建,尽早发现错误,测试开发并行。下面列一下我用过的工具和简单评论,也希望大家能给点反馈,说说你那边的环境及感受,可以加上行业,因为我知道虽然都是做软件,但互联网,移动,游戏各个细分行业的差别还是不少的。


1. 需求分析:Word,Excel,邮件,JIRA。我好像这么多年没用过什么特别的需求分析工具,做项目的时候,整理客户需求一般就用word,excel,有时候邮件也做需求收集的方法,有些新功能用JIRA开个ITEM,来跟踪需求完成情况,不知道大家用什么来记录和管理需求。


2. 构建工具:系统小团队小的话,Ant或者Maven, 工程大子工程多的话,必须上持续集成工具,自动化构建,我用过Pulse和Hudson,有名气的还有CruiseControl,每日自动构建是一个很好的实践,能把bug消灭在源头,保证软件不会偏离目标太大,也能不断有可用的build去给客户演示进行更多的需求收集。


3. 缺陷管理: Bug tracking工具比较多,我用过Jira, BugDB, bugzilla,都还不错,bug工具和自动化构建工具可以连接起来,每一次构建加入了对哪个bug或者feature的修改,都可以有一目了然的log,也方便追溯问题,责任定位到个人。


4. 自动化测试:这个对于保证软件质量也很重要,而且由于有了持续集成工具和每日构建的环境,自动化测试和这些都可以集成起来,比如每天晚上12点开始build,build完成后,自动启动测试脚本,生成报告,第二天上班就能掌控软件目前的状况。这里面又分好几小类,有自动化压力测试,功能测试,还有针对本地桌面软件的测试和Web应用的测试,工具很多,Selenium是做web自动化测试的,Jmeter,loadrunner可以做压力测试,还用过LISA做web测试,Junit做单元测试。桌面程序用过Test partner,自动录制动作去回放,当然了很多测试用例用工具难以实现,包括验证,所以很多公司也自己开发测试框架,在一些大公司里,有专门的自动化测试团队,专门做工具及框架来优化测试。


5. 代码复查: code review也是良好实践,感觉对代码质量有很大提高,自己写毕竟有局限性,听听别人的建议,有些很弱的错误也容易避免,我用过Fish Eye 和 Review Board, 每个公司的是用方法不一样,一般是找几个资深的大牛来做reviewer,代码review通过后才能提交到代码库。


6. 版本管理: VSS,CVS,SVN, 好像最近几年svn用的多。


希望大家说说自己公司的软件工程工具的运用情况, 可以用下面格式

[行业:互联网 需求:xxx  自动构建:xxx 测试工具:xxx] 





1 0
原创粉丝点击