测试驱动开发——使自己的程序处于不安全状态的时间尽量短
2017-11-01 10:25
253 查看
一:何为程序的不安全状态
我们在开发项目时,随着项目的规模越来越大,当对项目进行开发、修改时,往往要等到手头上的代码全部写完、修改后才能正常地运行项目,这个时间就是程序的不安全状态,即:程序不能编译、不能单元测试、不能运行。
二:为何要这样做
相信我们都学过或者听到过“单元测试”,但是真正在项目开发中实践的不多。
所以,很多人在开发一个新功能、项目时,都是从一而终,功能代码不敲完、调试完,整个项目就不能正常编译、运行起来。更为重要的是,由于对潜在的各种用例没有考虑周全,导致在调试过程中不断出现各种bug,这样就在“debug——fix”中不断重复。
三:方法论
缩短不安全状态时间、减少代码bug率、提升开发速度的一个行之有效的方法就是——测试驱动开发。
我是这样做的:
1:搭建框架:要实现某个功能时,我会先创建一个类、声明相关的功能方法以及注解【方法尽量“各司其职”,一个方法一个功能,不要大杂烩】
2:编写测试:一个功能类编写一个测试类、一个功能方法编写一个测试方法;
测试方法如何写:
1)断言先行:用断言判断先验条件:例如参数不能为空
2)调用被测试者:尽量从多角度、多方面提取测试用例,然后作为参数,调用被测试的函数,获取返回结果
3)观察结果:通过打印、异常等信息,查看不同用例的执行结果
3:实现方法:通过前面两步,大概清楚了要定义的方法需要什么参数、需要什么什么输出,逐个实现功能方法。【方法的定义要严格遵循“单一职责”,只做一件事】
4:测试、审查、重构:在编码完成后,要进行单元测试、联合测试、整体调试,并在此过程中进行代码审查与修改、代码重构。
我们在开发项目时,随着项目的规模越来越大,当对项目进行开发、修改时,往往要等到手头上的代码全部写完、修改后才能正常地运行项目,这个时间就是程序的不安全状态,即:程序不能编译、不能单元测试、不能运行。
二:为何要这样做
相信我们都学过或者听到过“单元测试”,但是真正在项目开发中实践的不多。
所以,很多人在开发一个新功能、项目时,都是从一而终,功能代码不敲完、调试完,整个项目就不能正常编译、运行起来。更为重要的是,由于对潜在的各种用例没有考虑周全,导致在调试过程中不断出现各种bug,这样就在“debug——fix”中不断重复。
三:方法论
缩短不安全状态时间、减少代码bug率、提升开发速度的一个行之有效的方法就是——测试驱动开发。
我是这样做的:
1:搭建框架:要实现某个功能时,我会先创建一个类、声明相关的功能方法以及注解【方法尽量“各司其职”,一个方法一个功能,不要大杂烩】
2:编写测试:一个功能类编写一个测试类、一个功能方法编写一个测试方法;
测试方法如何写:
1)断言先行:用断言判断先验条件:例如参数不能为空
2)调用被测试者:尽量从多角度、多方面提取测试用例,然后作为参数,调用被测试的函数,获取返回结果
3)观察结果:通过打印、异常等信息,查看不同用例的执行结果
3:实现方法:通过前面两步,大概清楚了要定义的方法需要什么参数、需要什么什么输出,逐个实现功能方法。【方法的定义要严格遵循“单一职责”,只做一件事】
4:测试、审查、重构:在编码完成后,要进行单元测试、联合测试、整体调试,并在此过程中进行代码审查与修改、代码重构。
相关文章推荐
- [2014.3.25]自己写的mini2440的RTC驱动及测试程序
- 在开发iOS程序时,有时候需要将时间格式调整成自己希望的格式,这个时候我们可以用NSDateFormatter类来处理。 例如: //实例化一个NSDateFormatter对象 NSDateFor
- 游戏程序开发:状态驱动的游戏智能体设计 (二)
- TDD(测试驱动开发)学习二:创建第一个TDD程序
- linux下的spi驱动及测试程序移植开发
- linux驱动开发FL2440开发板-LED驱动及其测试程序
- 手动测试存储过程运行正常,job执行存储过程会长时间的处于运行状态,不手动停止,会一直运行不过去!
- 游戏程序开发:状态驱动的游戏智能体设计(三)
- Android监听程序处于INACTIVITY(未操作状态)时间并作出相应的操作
- 测试程序(非自身)是否处于忙碌状态,
- Android底层开发(二)之编写驱动测试程序 第五步
- 单元测试-----------测试驱动的C/C++程序开发
- 【Android安全】Android开发环境搭建用于开发测试例程序
- 2-3 BEEP 驱动程序开发(包含驱动和测试程序)
- 【嵌入式linux】(第六步):使用eclipse集成开发环境开发第一个嵌入式Linux程序,并测试LED驱动
- TDD(测试驱动开发)学习二:创建第一个TDD程序
- 游戏程序开发:状态驱动的游戏智能体设计(一)
- 驱动开发中使用安全字符串函数
- 穷人如何使用测试驱动开发进行重构
- UWP开发入门(二十一)——保持Ui线程处于响应状态