🤗 ApiHug × {Postman|Swagger|Api...} = 快↑ 准√ 省↓
- GitHub - apihug/apihug.com: All abou the Apihug
- apihug.com: 有爱,有温度,有质量,有信任
- ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace
整体上分两大类, 手动和自动
#手动测试
手动测试是一个软件测试过程,
在该过程中,测试用例无需使用任何自动化工具即可手动执行。
测试人员根据最终用户的视角手动执行所有测试用例。它确保应用程序是否正常工作,如需求文档中所述。 测试用例报告也是手动生成的。
手动测试是最基本的测试过程之一,因为它可以找到软件的可见和隐藏缺陷。
软件和预期输出的差异被定义为缺陷(不达到预期)----非bug。开发人员修复了缺陷,并交给测试人员进行重新测试。
在自动测试之前,每个新开发的软件必须进行手动测试。这种测试需要巨大的努力和时间,但它提供了无错误软件的肯定。
手动测试需要掌握手动测试技术的知识,但不需要任何自动化测试工具的知识。
#白盒
也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能(programming skills--需要编程能力)。
白盒测试常用方法: 基本覆盖标准:逻辑驱动、循环、基路测试等,主要用于软件验证。
“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。
“白盒”法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即使每条路径都测试了仍然可能有错误,原因:
- 第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。
- 第二,穷举路径测试不可能查出程序中因遗漏路径而出错。
- 第三,穷举路径测试可能发现不了一些与数据相关的错误。
#黑盒
也称功能测试、数据驱动测试,它将被测软件看作一个打不开的黑盒,主要根据功能需求设计测试用例,进行测试。
概念:黑盒测试是从一种从软件外部对软件实施的测试,也称功能测试或基于规格说明的测试。
其基本观点是:任何程序都可以看作是从输入定义域到输出值域的映射,这种观点将被测程序看作一个打不开的黑盒,黑盒里面的内容(实现)是完全不知道的,只知道软件要做什么。
因无法看到盒子中的内容,所以不知道软件是如何实现的,也不关心黑盒里面的结构,只关心软件的输入数据和输出结果。
#功能性
- 单元
- 回归
- 集成
- 冒烟
- 黑白盒
- 数据库
- 静态测试
静态测试 所谓静态测试(Static testing)就是不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误的过程。
这个类似我们的代码审查(code review), 或者文档功能审查,成本比较低。 带来的好处:
- It produces a defect-free product. 减少产品缺陷
- It ensures that the customer is satisfied. 保证客户需求
- It ensures that all requirements met. 需求实现充分
- It ensures security and safety. 安全保证
- It improves the quality of the product. 质量
#非功能性
非功能测试是一种用于检查软件应用程序的非功能方面(性能,可用性,可靠性等)的测试。它旨在根据功能测试从未解决的非功能参数来测试系统的准备情况。
非功能测试与功能测试同样重要,并影响客户满意度。
- 安全:该参数定义了如何保护系统免受来自内部和外部源的故意和突然攻击。这是通过安全测试测试的。
- 可靠性:任何软件系统在不失败的情况下连续执行指定功能的程度。这通过可靠性测试进行测试
- 生存能力:该参数检查软件系统是否继续运行并在系统出现故障时自行恢复。这由RecoveryTesting检查
- 可用性:该参数确定用户在操作期间可依赖系统的程度。这由StabilityTesting检查。
- 可用性:用户可以通过与系统的交互轻松学习,操作,准备输入和输出。这可以通过可用性测试来检查
- 可扩展性:该术语指的是任何软件应用程序可以扩展其处理能力以满足需求增长的程度。这是由可伸缩性测试测试的
- 互操作性:该非功能性参数检查软件系统与其他软件系统的接口。这由互操作性测试检查
- 效率:任何软件系统在多大程度上可以处理容量,数量和响应时间。
- 灵活性:该术语指的是应用程序在不同硬件和软件配置中的易用性。像最低RAM,CPU要求。
- 可移植性:软件从其当前硬件或软件环境转移的灵活性。
- 可重用性:它指的是可以转换为在另一个应用程序中使用的软件系统的一部分。
#灰盒
看完黑盒,白盒的差别,是否有中间状态? 灰色?
白盒 | 黑盒 |
---|---|
The developers can perform white box testing.开发人员可以干 | The test engineers perform the black box testing. 测试人员 |
To perform WBT, we should have an understanding of the programming languages. 需要懂代码 | To perform BBT, there is no need to have an understanding of the programming languages.不需要知道语言 |
In this, we will look into the source code and test the logic of the code. 主要代码逻辑,安全,压力 | In this, we will verify the functionality of the application based on the requirement specification.基于应用本身和需求分析 |
In this, the developer should know about the internal design of the code. 需要知道整体框架 | In this, there is no need to know about the internal design of the code.不需要知道内部代码 |
灰盒就是需要既对流程逻辑, 还要对内部的工作机制,也就是程序代码有所了解,也就是对灰盒测试的人员有更高的要求!
灵魂拷问, 如何更好的手动测试!
- First, tester observes all documents related to software, to select testing areas. 需要熟悉所有的文档
- Tester analyses requirement documents to cover all requirements stated by the customer. 需求分析的透彻了解, 了解用户的需求
- Tester develops the test cases according to the requirement document. 根据需求文档写测试用例
- All test cases are executed manually by using Black box testing and white box testing 所有测试用例测试通过
- If bugs occurred then the testing team informs the development team. bug 及时反馈开发
- The Development team fixes bugs and handed software to the testing team for a retest. 回归测试
当然还有最最重要的 自动测试, 后面会详细解释,注意这个和我们一般开发理解的 unit/integration 测试还不太一样。
#自动测试
依赖一些自动化测试工具, 将测试的步骤和内容转换成脚本, 比如行业内工具:
- Selenium 浏览器自动测试工具
- Watir
- QTP
- Telerik Studio
- Testim
- Applitools
- JMeter
按照这个定义我们使用的 junit 等框架是否属于自动化测试工具?