小白成长建议之测试方法
在周一的公众号文,芒果搞了个大事情——邀请云层大大一起讨论测试方法相关话题,在上次的讨论中,我们主要围绕测试方法进行。今天芒果把云层大大写的小白成长建议中测试方法的部分放出来给大家看看,跟大家一起详细探讨一下测试方法,也希望看到这篇文章的同学能够对测试方法有所收获,欢迎留言提问,我们会在测试脱口秀中再次探讨这些问题哟~
下面是云层大大在小白成长建议中对于测试方法的看法:
我们可以通过不同的参考依据将软件测试方法进行分类,按照是否查看程序内部结构可以分为黑盒测试、白盒测试、灰盒测试;按照是否允许程序可以分为静态测试、动态测试;按照对测试的自动化程度可以分为手工测试、自动化测试。
黑盒、白盒、灰盒
可以这样的简单总结,黑盒就是不了解被测对象内部情况直接使用的测试方法。白盒是不关心怎么使用,主要针对代码本身的执行、分析的测试方法;而灰盒是介于前两者之间的,从某些角度来说灰盒测试相对来说更好点。
黑盒测试强调对需求级别的验证,效果好,但是执行代价大,发现问题晚,定位表面。
通常我们会在系统测试中使用黑盒测试的方法。从系统需求覆盖率去判断系统测试执行的效果。
白盒强调对代码级别的验证,执行快,发现问题早,定位细节,但是对于大方向的需求验证无法实现。
通常我们会在单元测试中使用白盒测试的方法。从代码逻辑覆盖率去判断单元测试的效果。
灰盒测试介于之间,可以达到接近黑盒的执行效果,而定位上又会有一些工具的配合,所以定位就会准很多。
通常我们会在集成测试中使用灰盒测试,一般集成测试会分为接口联调及业务联调,大多接口测试覆盖率会评判灰盒测试的执行效果。
静态测试和动态测试
动态测试主要指通过运行软件来测试的手段,比如执行代码、编译代码等。而静态测试主要就是不运行代码的方式,比如走读,代码扫描类的。
在这些方面有很多工具可以对代码的格式,文档的格式及内容进行静态测试。也有很多工具可以在动态执行的时候分析代码的情况,帮助发现定位问题。
手工测试和自动化测试
使用人工执行的测试我们称之为手工测试,而使用某些工具帮助我们执行测试的就是自动化测试。自动化测试在重复的问题上面可以极大的提高执行效率,而手工测试是自动化的前提。
手工测试可以更好的发现问题,而自动化测试是在手工测试的基础上提高了执行的效率,进一步通过遍历等方式可以扩展发现一些以前不太好发现的问题。
自动化测试不能完全替代手工测试,在很多情况下手工测试可能更富有创造性。加上自动化测试的成本问题,很多公司起初对自动化都会有个美好的远景,但实施后大多也就不了了之了。
精益技术 赋能过程