测试分为什么,白盒,黑盒,单元,集成测试?

PS:本文转载自黑马测试高赞知乎文章
链接:https://www.zhihu.com/question/24345678/answer/1611528501

看得出来题主是个想进入测试行业的小萌新。我这里推荐一个我自己整理的系列贴《学习软件测试必知的100个常见问题,从此贴开始》,你可以了解到更多有关软件测试的各种问题。
题主的诉求,主要分为三块:
1、想知道分为这么多种测试的原因
2、解决各种概念问题
3、提供各种软件测试工具
安排!

一、为什么测试的概念这么多
一个软件项目就好比一部复杂的汽车,有很多零件,当每个零件生产完成后,就要测试零件是否存在质量问题。 零件组成复杂的汽车后,我们还要测试汽车。比如著名的中保研,测试刹车,测试气囊,测试防撞....,顾客从4s店购买汽车,要带懂车的人帮忙检查成品车,其实也是一种测试。软件也是一样,除了有测试零件的单元测试,还有集成测试、确认测试、系统测试、验收测试等等....,看下图:

二、各种测试概念的普及
单元测试是针对软件设计中的最小单位-程序模块,进行正确性检查的测试工作。 单元在软件代码中指一个函数或一个类,在图形化的软件中,单元一般指一个窗口,一个菜单。
当软件项目中相关单元都开发完成并完成单元测试后只能确保每个独立单元没有问题, 但多个单元整合成完整功能时, 需要再次进行质量验证。这个步骤就是集成测试。
集成测试又叫组装测试,通常在单元测试的基础上,将所有程序模块进行有序的、递增的测试。重点测试不同模块的接口部分。
无论单元测试还是集成测试,都是根据不同的测试阶段划分的。一个项目首先要进行的就是单元测试,单元测试完成后进行集成测试。 集成测试完成后还有系统测试和验收测试等等才能完成软件项目的最终验收和交付。

在具体的测试执行过程中又分为是否查看源代码的测试方式, 不查看源代码的测试方式为黑盒测试,查看源代码的测试方式为白盒测试。
黑盒测试是指测试的时候完全不考虑程序内部结构和内部特性,注重于测试软件的功能需求,只关心软件的输入数据和 输出数据。
白盒测试是指把软件的源代码打开,去研究里面的程序结构和具体编程实现方式。
除了黑盒测试与白盒测试,还有介于两者之间的灰盒测试。
灰盒测试: 是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。
软件测试工程师大多数时候在做黑盒测试。 在一些特殊场景也需要辅以灰盒测试, 但白盒测试由于需要对编程非常了解,所以软件测试工程师涉及的相对较少。


三、提供各种软件测试工具
题主还提到了要分享各种测试工具,可以看这张图,如下所示:

以上软件的下载地址,可看 bbs.itheima.com/thread-405757-1-1.html 12楼。

如果还想更加深入了解测试基础知识,可看下方这些视频教程:




希望对你有用。

若你是对测试不太了解的测试小萌新,有太多太多对测试的疑惑(前途、薪资、技术含量、男生是否可以干.....),强烈推荐你观看《测试小白必看:学习软件测试必问的100个问题,从此贴开始》,相信能扫除掉你心目中90%以上的常见问题。
《100个常见问题链接》:http://bbs.itheima.com/thread-507947-1-1.html

最后,为方便大家自学软件测试,特意给大家准备了一份13G的超实用干货学习资源,涉及的内容非常全面。
包括软件学习路线图,黑马50多天的上课视频、16个突击实战项目,80余个软件测试用软件,37份测试文档,70个软件测试相关问题,40篇测试经验级文章,上千份测试真题分享,还有2020软件测试面试宝典,还有软件测试求职的各类精选简历,希望对大家有所帮助…..
《2022黑马测试学习路线图链接》:http://bbs.itheima.com/thread-405757-1-1.html
