作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。
软件测试是为了验证软件的功能性、可靠性、性能等各方面是否符合其预定的需求,通常分为动态测试和静态测试两大类。
这两类测试各有不同的子类别,具体可以用以下表格进行解释:
类型 | 描述 | 示例 |
---|---|---|
白盒测试 | 又称为结构测试,主要针对软件内部逻辑结构进行测试,需要测试者了解程序的内部结构和工作原理。 | 对一个排序函数,测试其内部逻辑是否能正确处理不同类型的输入数组。 |
黑盒测试 | 又称为功能测试,不考虑程序内部逻辑结构,只根据需求规格说明来测试软件的功能。 | 测试一个网上购物平台是否能正确处理用户的购买请求。 |
灰盒测试 | 结合了白盒测试和黑盒测试的方法,部分了解内部结构,同时也关注于软件外部功能的测试。 | 测试一个数据库系统,既关注其查询性能,也验证其安全性能。 |
类型 | 描述 | 示例 |
---|---|---|
桌前检查 | 通过手工检查文档(需求、设计、代码等)来发现错误,不通过执行程序来发现。 | 在软件开发早期,通过手工检查需求文档,发现需求描述不清的问题。 |
代码审查 | 通过系统地检查源代码来识别错误的过程,通常由代码编写者以外的人员进行。 | 团队成员互相审查对方的代码,以发现潜在的逻辑错误或不规范的编码习惯。 |
代码走查 | 一种更为正式的代码审查过程,通常包括使用检查列表、固定流程和会议等形式。 | 组织一个会议,邀请开发者和测试者一起,根据检查列表逐项审查代码质量。 |