有哪些软件相关的公司,开发流程比较规范? 沈阳2年经验的软件测试人员,工资能开到多

之前我在微软上海的sqlserver工作的时候就感受到了他们十分严谨的气氛,一般来说,我们做一个软件之前都会planning和investigation,大概占用1/3的时间,研究得差不多了,然后才...

有哪些软件相关的公司,开发流程比较规范?

我们精选了一下网友答案:

···································^^····································


之前我在微软上海的sqlserver工作的时候就感受到了他们十分严谨的气氛,一般来说,我们做一个软件之前都会planning和investigation,大概占用1/3的时间,研究得差不多了,然后才开始干正事。然后就会开始用agile里面scrum的那套方法,而且在【每次】代码checkin之前,都要有两个人review通过了才行,review没过就按照comment改,如果强行checkin的话系统会群发邮件。


至于daily build要到开发了差不多一半的时候,功能基本都写完了才会开始,这个是给test用的,不是给dev用的。


至于test,会跟dev一样,从项目的planning阶段就开始参与我们的设计,并且他们会思考如何对我们即将要完成的东西做自动化测试。测试时全程参与的,而不像某些著名公司一样,快写完的时候才开始。


到了项目的后期,feature基本做完了,几乎都在修bug的时候,会进入一个feature freezing的阶段。这个时候PM如果要提新的需求,就会queue进一个叫做design changing request的表里,每个星期全组都要开会讨论,到底是现在做呢,还是下个release才做。


我们的项目组有上千个人,所以把所有代码merge在一起也是一件很艰难的事情。因此每个feature team都要定期从main branch上面下载代码来做本地merge,提前发现问题。当轮到我们最终把自己的feature提交到main branch的时候,大概会有两个星期的时间,这个时间我们可以自由操作main branch,别人不能动(只能下载)。但要求是要把整个sqlserver的所有自动化测试用例都通过才行。否则的话,过了这个时间窗,没做完就干掉,排队等下次。如果最终checkin了进去,但是别人发现你break test了,就会把你的代码reverse掉,你仍然要排队等下次。


我们的delivery是按照【你写的代码进了main branch】来算的,如果千辛万苦怎么写都过不了test进不了branch,那根白做了没有任何区别。


你要是想体验一下的话可以过来试试(逃

+++你是想了解管理流程,还是技术流程呢?

如果是技术流程的话,Qt Project还不错。qt-project.org/

缺陷跟踪器(bug tracker)在 bugreports.qt-project.org/
代码评审网站(gerrit)在 codereview.qt-project.org/
CI结果在 testresults.qt-project.org/ci/
项目所有代码在 github.com/qtproject/
相关信息:qt-project.org/contribute

Qt Project的CI现在覆盖Windows, Linux, OS X, Android, iOS等,全部自动集成,规模应该是够大了,我不知道还有其它项目能做成这个样子。CI代码也是开放的,基于Jenkins。+++我们这10来个人,我们这开发流程用了好几年了。
这段时间在重新用Python搭建公司里面的这套,我们的开发是用Git,周边写一些脚本来自动化。

1 nightly build和测试,包括regression(debug/release), coverage testing, valgrind testing。如果发现问题脚本发邮件给相关人员。

2 merge server,这是我以前没见过的,我们做了一个小的服务端,开发人员每次merge代码都是通过脚本提交一个branch,这个merge server做的工作就是做代码merge,编译,跑regression, 如果没问题就代码改动就进入master。否则就报告出来,这个merge被block。避免很多手工活。

3 CI, ci跑的是一个更大的测试集,可以监测到每次merge 引起的cpu/memory 的变化,如果有问题需要review。

4 Rails写的内部网站展示所有上面的测试和merge的情况。+++看见@vczh 讲了微软的开发流程,我也讲讲我们这边吧。我在上海ibm的编译器组,我们团队包括了加拿大的主体部分,美国的C++ Runtime部分,北京的一小部分z/OS,上海的AIX/Linux C/C++编译器前端,C/C++/Fortran编译器后端部分。由于我们团队跨国跨地区,所以我们需要一个非常严谨的开发流程来保证。我们本身采取的是Agile开发模式,具体来说就是Scrum那一套。由于我们是编译器项目,类似@vczh的sqlserver,我们也会有Plan与Investigation,当然这些是VP级别的大佬来操作的,而这些事情都是比较宏伟的,以C++为例,我们会有C++11的支持计划,我们会首先实现C++11的哪些特性呢,接下来会实现哪些呢,这些特性与编译器实现难度有关系,更重要的是与我们的Clients需求有关系(由于我们编译器的Clients基本上都是大企业用户,那么我们不可能不理)。那么VP制定好计划后,从具体事情来说,我们会有Task,一个Task又会有若干个Story。从时间来说我们就会有若干个sprint,那么在后面提交代码这是非常必要的,你需要指定你的代码针对的是哪一个Plan与Sprint。而由于编译器是一个高度复杂的项目,在提交代码前,一定会首先跑核心用例测试,而这个核心用例测试是一个Failure都不能出现。如果出现了Failure,对不起,请修改代码。随后,如果你的代码难度很大的,改动了编译器核心的代码(比如我上次修改了我们C++的Parser产生式),那么这时候在提交代码的时候,你需要勾选上你的Team Leader,再勾选上两个加拿大本部的资深Developer,等他们都Review通过后,你的代码才会被系统Check In进去,否则你的代码无法Check In进代码仓库。如果这些都完毕后,随后我们会有Regression测试,如果你的Regression测试都过了后,你才算系统通过,否则你需要解决Regression。随后过了一周,我们会开Code Review大会,你需要讲解你这样改代码的理由。然后会检测你的代码风格是否符合IBM Compiler的代码开发标准,以及你的代码是否还有潜在的风险(如我以前解的一个Defect什么都过了,但是在Code Review发现会有z/OS以后潜在的风险,即使现在没有出现,也需要修改代码来避免)。而我们会有BPI人员定期进行Merge Code,建立Branch,拉代码入PTF Line,Freeze Code等,以及发布前会有Release Manager等来进行全程控制等,而Tester来说也会全程参与整个开发周期,跑测试用例,报给相应的developer,自动化测试等。而我所说的只是我们团队开发流程的冰山一角,总的来说,如@vczh所说,如果你想体验正规开发流程,可以去他们那里的团队,而我们IBM这边也是相当正规规范的。 :-)+++

这个得介绍下我带的团队:

我并不太喜欢规范这个词, 开发流程应该符合那个组织、那个公司的规范呢? 我选择更好更高效更合适的开发流程。

用图来简介下我指导的马拉马拉技术团队:

基于WIKI的信息积累、分享:


  • 发表于 2020-11-22 21:02
  • 阅读 ( 509 )
  • 分类:软件测评

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
admin
admin

0 篇文章

作家榜 »

  1. xiaonan123 189 文章
  2. 汤依妹儿 97 文章
  3. luogf229 46 文章
  4. jy02406749 45 文章
  5. 小凡 34 文章
  6. Daisy萌 32 文章
  7. 我的QQ3117863681 24 文章
  8. 华志健 23 文章

推荐文章

联系我们:uytrv@hotmail.com 问答工具