技术开发 频道

软件工程师必知的12个单元测试技巧

9、使用单元测试来确保性能

    除了确保代码的正确性之外,单元测试还可以帮助我们确保代码的性能不会随时间而下降。在很多系统中存在这个问题,随着系统开发工作的继续进行,被加入了越来越多的代码,会变得越来越慢。

    要想编写性能测试,你需要在你的测试基类中增加start和stop功能函数。在单元测试阶段就开始考虑性能测试是非常必要的,这样在代码发生改变或者对代码进行了优化时就能看出这些改变是否会影响到性能,能尽早的发现代码变更对性能的影响。

    一个系统的性能如果拆分来看,可以看成若干单元性能的一个有机结合,单元的性能势必也会对整个系统的性能产生影响,所以尽早考虑性能测试是很必要的,当然这需要很好的分析和设计了。

10、为并发代码创建测试

    并发代码通常不容易控制,通常是许多漏洞的源头。因此对它们进行单元测试是非常重要的。实现方法是使用一个休眠和锁定机制。如果你需要等待一个特定的系统状态,你可以在你的测试中 使用休眠调用功能。

    尽管这并不是一个完全正确的解决办法,但是在很多情况下它已经够用了。

    如果要在一个更加复杂的场景中模拟并发性,你需要围绕你测试的对象进行锁的传递。这样你可以模拟并发系统,不过它是线性的。

11、连续运行测试

    软件测试的要点就是多多运行它们。尤其在大型开发团队中,常常有数十个开发者共同修改同一个程序,这种情况进行连续的单元测试是非常重要的。

    你可以每隔几个小时运行一次测试,也可以每次当有代码加入的时候运行测试,或者每天运行一次测试。根据自己的实际情况决定哪一种方法最适合你的项目,然后让测试自动连续运行。

12、享受测试的乐趣

    这可能是软件测试中最重要的技巧。当我第一次发现单元测试的时候,我怀疑它简直就是一件多此一举的事情。但是我还是尝试着接受了它,因为我信赖的一些优秀程序员告诉我它非常有用。

    技术大师Martin Fowler曾表示,单元测试能够使你更快地完成工作。无数次的实践已经证明这一点。你的时间越是紧张,就越是要写单元测试,它看上去慢,但实际上能够帮助你更快、更舒服地达到目标。

    单元测试可以让你的大脑处于一种完全不同于编程时的状态。为一个指定的构件设计一个简单又正确的测试代码是一件非常有意思的事情。

    一旦你开始编写测试,你会发现你已经离不开它。为了让测试变得更有趣,你可以与别人进行结对编程(pair programming)。无论你是与同伴一起编写测试,还是互相为对方编写测试,都可以体验到其中的乐趣。最终你将会非常高兴的认为你的系统可以真正运行,因为它通过了你的测试。

 

0
相关文章