从是否执行被测试软件来进行分类,测试可以分为静态测试和动态测试。软件本身包含了各种代码,如果只是检查代码和文档,而不执行被测试的软件,此时所进行的就是静态测试。反之,如果在测试过程中执行被测试的软件,则所进行的就是动态测试。
静态测试和动态测试之间,并不存在哪种方式更加有效的问题。针对不同的软件和不同的潜在问题,有可能是静态测试容易发现,也有可能是动态测试更加容易发现。一般情况下,软件需要经过一系列的静态测试后才会进行动态测试。比如说,代码复查是一种静态的测试方法,在进行动态测试前,一般都需要先进行代码复查,这样能够快速地发现代码中潜在问题。另外,诸如代码结构方面的问题,在动态测试中就难以发现,而在静态测试中就一目了然。有时候会有这样的情况发生:软件工作一切正常,某一天,开发组想开发这个软件的升级版本时,发现这个软件的结构极其难读,使得修改和升级代码极其艰难。