测试驱动开发
测试驱动开发基本思想是,开发人员先编写测试用例,再编写能通过用例的代码。就像砌砖师傅先用桩子拉上线再砌墙一样。
思想:
• Test Driven Development测试驱动开发
• Acceptance TestDriven Development验收测试驱动开发
• 测试驱动设计,测试也是一项设计活动,编写用例的同时已在思考设计
• 持续集成,用例必须能自动化,且集成到CI环境中
优点:
• 提高代码行测试覆盖率
• 100%通过率,处理不通过的问题是优先级最高任务
• 快速变更的能力,变更后快速通过持续集成自动化测试
• 有信心重构,重构后的代码能快速测试
• 减少技术债,减少BUG泄露
敏捷转型过程中,测试驱动开发通常是最重要也最艰难的一个,只有实现快速自动化测试,才可能快速交付。前景非常诱人,但是在这个过程中我们的付出可能也是最多的。
按照敏捷思想,大部分的测试工作应该是开发来完成的,测试人员重点是保证开发测试的正确性,比如:测试方案、测试计划等。测试驱动开发的推广过程中,首要的问题是将开发人员长期以来形成的思维观念和意识形态转变过来,大部分开发人员只喜欢编码,不喜欢测试,更无法理解为什么没有产品代码的时候就先写单元测试;其次是相关的技术支持,测试驱动开发对开发人员提出了更高的要求,不仅要掌握测试和重构,还要懂得设计模式等设计方面的知识。
那么测试驱动开发跟持续集成如何关联到一起哪?简单总结一下:
• Add atest
• Addcode to pass the test
• Passall existing tests
• Cleanup the code
• Checkin
• ContinuousIntegration =
( Auto Compile +
Auto Build +
Auto Deploy +
Auto fullregression testing +
Check in codefrequently )