当前位置:  开发笔记 > 人工智能 > 正文

TDD和JPEG压缩

如何解决《TDD和JPEG压缩》经验,为你挑选了1个好方法。

在臭名昭着的Stack Overflow#38播客中, Joel Spolsky谈到了为JPEG压缩之类的东西做TDD会有多困难.Bob Martin 想要介绍如何在播客#41期间为一个实例做TDD,但我认为他们没有达到它.从而:

如何使用TDD开发和测试JPEG压缩?



1> 小智..:

乔尔的问题是这样的.假设您想在某处设置导致低分辨率图像而不是高分辨率图像的位置.你会如何使用TDD来实现这一目标?你会写一个测试来刮擦屏幕,以显示图像处于低分辨率?

当然不是.您已经知道JPEG库可以正常工作.您已经知道,如果使用正确的参数调用它,它将以低分辨率显示.您需要测试的是您设置的位被转换为对JPEG库的适当调用.因此,您可以使用由测试控制的非常简单的模块来模拟JPEG库.然后设置该位,并请求显示.Mocked JPEG库将记住它是如何被调用的,然后测试可以检查以确保它被正确调用.

好的,那你怎么测试JPEG库的内部呢?我对JPEG渲染知之甚少,但我认为它与压缩,解压缩和位图有关.压缩和解压缩只是算法.算法具有来自给定输入的可预测输出.因此,您设置了一系列非常简单的输入,并确保获得可预测的输出.您可以设置输入,以便覆盖JPEG算法的内部.相同的逻辑适用于位图.您不必在屏幕上呈现它们.可以将简单的小位图呈现到测试可以检查的内存缓冲区中.简单来说,我的意思是简单.3X3,5X5,8X8.简单.同样,您构建输入数据以覆盖大部分代码.

这些都不是火箭科学.没有,如果它是完美的.但是,当您想要进行更改时,一组50个测试表明90%的逻辑是正确的可以产生巨大的差异.

你能完全消除手动测试吗?当然不是.但是你可以大大缓解它.您可以将手动测试减少到一些非常具有战略意义的测试,而不是数以千计的繁琐乏味的测试计划.


太棒了,我让Bob叔叔加入stackoverflow.应该有一个徽章.
推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有