基于Redmine的敏捷开发、自动化测试、持续交付。

为什么选择Redmine,而不是其它,
我想这完全出于自己的喜好和说使用的开发语言,

我这边也做过一些选型:
  • Python - based on Launchpad
  • Java - based on EmForge and Jenkins CI
  • Ruby - based on RedMine
  • PHP - based on 禅道

我们的关注点在于迭代和增量交付,以及跨功能职责角色之间的协作。

敏捷过程依赖于透明性、协作性、纪律性和持续改进

咨询、持续设计、敏捷ALM、持续交付软件价值。注意,设计也一定是持续设计

ThoughtWorks的敏捷过程,它们的商业产品:Mingle项目管理工具、Twist自动化测试工具、Go持续集成工具
我们的替代产品:Redmine、watir/Cucumber/RSpec、travis-ci

说到敏捷开发,要说说DevOps,建设DevOps能力,实现业务敏捷 http://www.infoq.com/cn/articles/thoughtworks-anthology-xj-devops-business-agile

SRE(Site Reliability Engineer)又称为DevOps,是云计算时代紧缺的开发+运维类复合型人才。SRE负责云计算平台的搭建、部署、维护和日常运营,需要候选人有扎实的编程能力、系统运维经验和大型平台管理能力。
人才方面的需求

Redmine项目管理、redmine_backlogs敏捷、watir/Cucumber/RSpec/Concordion/jbehave自动化测试、travis-ci持续集成

咨询、持续设计、敏捷ALM、持续交付软件价值。

软件正改变着世界,做正确的软件,高效交付价值。

学习雷锋好榜样,测试驱动不能忘。

  • Behaviour-Driven Development (BDD)
  • Test-Driven Development (TDD)
  • Acceptance-Test Driven Developement (ATDD)
BDD框架工具:Cucumber/RSpec/Concordion/jbehave

Cucumber 是一个能够理解用普通语言 描述的测试用例的支持行为驱动开发(BDD)的自动化测试工具,用Ruby编写,支持Java和.Net等多种开发语言。

在项目的Gemfile中加入

group :test do
gem 'cucumber-rails', :require => false # database_cleaner is not required, but highly recommended
gem 'database_cleaner'
end

bundle install
rails generate cucumber:install --help
rails generate cucumber:install
rake cucumber

redmine_backlogs
修改 config/database.yml.travis,添加
production:
adapter: mysql
database: redmine
host: localhost
username: redmine
password: redmine
encoding: utf8

rake db:migrate

Could not find gem 'gherkin (= 2.6.8) ruby' in the gems available on this machine.

sudo gem install gherkin 并修改 Gemfile文件中gherkin版本 从2.6.8改为2.11.0
rake db:migrate RAILS_ENV=production
sudo gem install mysql2 // ruby 1.9 with mysql2

mac下undefined method `init' for Mysql:Class解决
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/

./redmine20_install.sh

虚拟化在敏捷开发中的重要性,它能迅速的创建一个新的虚拟环境,让开发、测试人员能在不同的平台间切换,如Linux, Windows, Mac OS X ...

参考:
Taobao QA Team http://qa.taobao.com/