敏捷之一:以终为始
首先定义一个目标。对于创业小公司来说,我们追求的肯定不是那些花架子,要的全是干货:
1、 CI-持续集成
要求客户端代码和服务器代码能够自动构造,并且自动运行测试案例。为此我们搭建了一个Build Server(基于Jenkins),专门每天晚上自动下载源代码,构建,安装和测试,如果构建有问题会给公司所有人发邮件通知。
2、 BDD/TDD-测试驱动
测试驱动开发和持续集成的关系,我的理解是测试驱动开发需要开发人员从开发方法和开发习惯的高度真正转变,而持续集成是一个使能工具。二者虽可独立实践,但更多的是紧密结合。在我们的实践中,之前也曾走了一段弯路,光有CI,公司几个人又都是技术大佬,编程水平都很牛,加上对BDD/TDD认识不够深刻,造成效果不佳。我们的实践表明,没有TDD/BDD,CI是没有意义的。
我们BDD/TDD实践是,服务器侧用Cucumber/Spec(Ruby/Rails程序)、gtest/gmock(C/C++程序),Android客户端用JUnit/Calabash-Android,iOS 客户端使用GH/Calabash-IOS。