1、Alpha 测试(Alpha Testing)
这是最常用的测试类型,其目的是要在将问题和缺陷发布给用户之前找出他们。Alpha 测试处于开发结束时与 Beta 测试之间,这种测试中可能会对设计进行少量修改。 Alpha 测试通常在开发人员的网站上进行,可以为此类测试创建内部虚拟用户环境。
2、Beta 测试 (Beta Testing)
Beta 测试是一种正式的软件测试,由用户执行。它在真实环境中运行,并将产品发布到最终用户的市场。执行Beta 测试用以确保软件中没有重大故障,并且满足最终用户的业务要求。当客户接受软件时,Beta 测试成功。
这是在进行商业发布之前所要完成的最终测试。通常,发布的软件或产品的 Beta 版本仅限于特定地区中特定数量的用户。因此会由最终用户实际使用该软件并将反馈信息分享给公司,以便公司在最终全量发布之前进行某些必要的修改。
3、验收测试(Acceptance Testing)
验收测试由客户执行,以检查整个系统的流程是否符业务要求和最终用户需求。仅当所有特性和功能符合预期时,客户才接受该软件。这是测试的最后阶段,之后软件将投入生产。这也被称为用户验收测试(UAT)。
4、黑盒测试(Black Box Testing)
黑盒测试中不考虑内部系统设计。测试仅基于输入和输出来验证功能与需求。
有关黑盒测试的优点,缺点和类型的详细信息,请参考以下链接。
https://www.softwaretestinghelp.com/black-box-testing/
5、白盒测试(White Box Testing)
也称玻璃盒测试。它是基于应用程序代码内部逻辑,来测试代码语句、分支、路径、条件等的覆盖范围。
6、单元测试(Unit Testing)
单个软件组件或模块的测试称为单元测试。它通常由程序员完成,而不是由测试人员完成,因为它需要详细了解内部程序设计和代码。它还可能需要开发相应的测试驱动器或测试控制工具(harnesses)。
7、组件测试(Component Testing)
它主要由开发人员在完成单元测试后执行。通过将多个功能相互连接在一起进行测试,以便识别其中是否存在任何缺陷。
8、系统测试(System Testing)
系统测试是一种基于总体需求规格的黑盒型测试,其涵盖了系统的所有组成部分。
9、端到端测试(End-to-End Testing)
与系统测试类似,端到端测试涉及在模拟实际使用的情况下测试完整的应用程序环境,例如数据库交互、网络通信或与其他硬件、应用程序或系统进行交互。
10、集成测试(Integration Testing)
这是将所有相关模块集成在一起进行的测试,这里的模块可以是代码模块、独立应用程序、客户端及服务端等。这种类型的测试主要用在 C/S 架构中或者分布式系统中。
11、功能测试(Functional Testing)
此类测试忽略内部部件,仅关注输出以检查是否符合要求。它是一种适用于应用功能要求的黑盒型测试。有关功能测试的详细信息,请参考以下链接。
https://www.softwaretestinghelp.com/guide-to-functional-testing/
12、边界值测试(Boundary Value Testing)
此类测试用于检查应用程序在边界值下的行为,主要是数据类型的取值范围,用于检查边界值是否存在缺陷。比如,如果被测值范围为1到500,则对0,1,2,499,500和501的值执行边界值测试。
13、兼容性测试(Compatibility Testing)
兼容性测试用于验证软件在不同环境、浏览器、Web 服务器、硬件和网络环境中的运行状况。用来确保软件可以在不同的环境中均可符合业务需求。它通常由测试团队执行。
14、向后兼容性测试(Backward Compatibility Testing)
这种测试用于验证新开发的软件,或软件的新版本是否适用于旧版本的环境。向后兼容性测试检查新版本的软件是否能够正常使用旧版本软件创建的文件格式,它也适用于数据表、数据文件、旧版本软件创建的数据结构等。
15、图形用户界面测试(GUI Testing)
此测试的目的是验证 GUI 符合详细设计文档和 GUI 图稿。 测试包括屏幕上显示的按钮和字体的大小、表格中所有内容的对齐、程序菜单等。
16、猴子测试(Monkey Testing)
完全不需要理解应用程序功能,而是向猴子一样对应用程序输入大量的随机值,来检查程序或系统是否会崩溃。
17、探索性测试(Exploratory Testing)
探索性测试是一种非正式测试。其目的是探索应用程序并寻找潜在的缺陷。探索测试时建议对所有操作活动进行记录。该测试在没有文档和用例的情况下执行。
18、安全测试(Security Testing)
安全测试一般由安全团队执行,可以通过任何攻击手段对系统进行渗透。主要用于检查软件程序对于内部和外部威胁的防御能力。
19、冒烟测试(Smoke Testing)
开发提交新构建后,测试团队需要通过冒烟测试确保程序没有影响后续测试的重大阻塞性缺陷。
20、回归测试(Regression Testing)
在对程序的任何模块或功能进行修改后,对应用程序进行整体测试,此类测试中通常会使用自动化测试工具。
21、负载测试(Load Testing)
负载测试有时也被称为性能测试,它是一种非功能性测试,其目的是检查系统可以处理多少负载而不降低性能。负载测试有助于确定特定负载下系统的最大容量,或者定位导致软件性能下降的原因。通常使用 JMeter、LoadRunner 等工具执行负载测试。
22、压力测试(Stress Testing)
该测试用于验证系统受到超出其规格的压力时,系统失效的方式和时间。
23、恢复测试(Recovery Testing)
恢复测试用于验证应用程序从崩溃或灾难中恢复的情况。系统应该在灾难结束后继续运行,且不是因为致命的状态或文件损坏使得系统无法恢复运转。