📜  什么是后端测试?

📅  最后修改于: 2022-05-13 01:58:09.237000             🧑  作者: Mango

什么是后端测试?

软件测试是验证和评估整个软件或应用程序的过程,以确保开发的软件或产品按照要求正常工作。有许多测试技术、不同级别的测试和测试过程。这些都是在测试阶段进行的,以检查整个开发的产品。

什么是后端?

术语后端通常是指服务器端部署。在这里,该过程完全发生在后端,不会向用户显示,只会向用户显示预期的结果。在每个 Web 应用程序中,都会有一种后端语言来完成任务。

例如,在将学生的详细信息上传到数据库时,数据库将存储所有详细信息。当需要显示学生的详细信息时,它会简单地获取所有详细信息并显示它们。在这里,它将只显示结果,而不是过程以及它如何获取详细信息。

什么是后端测试?

后端测试是一种检查 Web 应用程序的数据库或服务器端的测试方法。后端测试的主要目的是检查应用层和数据库层。它将在数据库或服务器端发现错误或错误。

为了实现后端测试,后端测试工程师还应该对特定的服务器端或数据库语言有一些了解。它也被称为数据库测试。

后端测试的重要性:后端测试是必须的,因为任何错误或错误发生在服务器端,它不会进一步执行该任务,或者输出会有所不同,或者有时还会导致数据丢失、死锁、 ETC。,

后端测试的类型

以下是不同类型的后端测试:

  1. 结构测试
  2. 功能测试
  3. 非功能测试

让我们讨论这些类型的后端测试。

1. 结构测试

结构测试是验证数据存储库中存在的所有元素的过程,这些元素主要用于数据存储。它涉及使用数据库映射对象检查前端开发的对象。

结构测试的类型:以下是不同类型的结构测试:

a) 模式测试:在此模式测试中,测试人员将检查正确映射的对象。这也称为映射测试。它确保前端的对象和后端的对象是否正确匹配或映射。它将主要关注表、视图、索引、集群等模式对象,在此测试中,测试人员将发现表、视图等映射对象的问题,

b) 表和列测试:在这种情况下,它确保正确映射表和列属性。

  • 它确保表名和列名在前端和服务器端是否正确映射。
  • 它验证列的数据类型是否正确提及。
  • 它确保正确命名数据库的列值。
  • 它检测未使用的表和列。
  • 它验证用户是否能够根据要求提供正确的输入。

例如,如果我们在服务器端提到与前端不同的列的错误数据类型,那么它将引发错误。

c) 键和索引测试:在此,它验证列的键和索引。

  • 它确保是否正确提供了提到的关键约束。例如,根据给定的要求正确提及列的主键。
  • 它确保外键与父表的正确引用。
  • 它检查索引的长度和大小。
  • 它确保根据要求为表创建聚集和非聚集索引。
  • 它验证键的命名约定。

d) 触发器测试:确保执行的触发器满足 DML 事务的要求条件。

  • 它验证触发器在我们执行它们时是否正确更新数据。
  • 它检查在触发器的编码阶段是否正确遵循了编码约定。
  • 它确保更新、删除和插入的触发功能。

e) 存储过程测试:在此,测试人员检查存储过程结果的正确性。

  • 它根据要求检查存储过程是否包含循环和条件语句的有效条件。
  • 它验证存储过程中的异常和错误处理。
  • 它检测未使用的存储过程。
  • 它验证游标操作。
  • 它验证是否正确应用了 TRIM 操作。
  • 它确保通过执行存储过程隐式调用所需的触发器。

f) 数据库服务器验证测试:它根据要求验证数据库配置细节。

  • 它验证数据的事务是否按照要求进行。
  • 它验证用户的身份验证和授权。

例如,如果给出错误的用户身份验证,则会引发错误。

2. 功能测试

功能测试是验证最终用户进行的事务和操作是否满足要求的过程。

功能测试的类型:以下是不同类型的功能测试:

a) 黑盒测试:

  • 黑盒测试是检查数据库集成功能的过程。
  • 该测试是在开发的早期阶段进行的,因此对减少错误非常有帮助。
  • 它由各种技术组成,例如边界分析、等效划分和因果图。
  • 这些技术有助于检查数据库的功能。
  • 最好的例子是用户登录页面。如果输入的用户名和密码正确,它将允许用户并重定向到下一页。

b) 白盒测试:

  • 白盒测试是验证数据库内部结构的过程。
  • 在这里,指定的详细信息对用户隐藏。
  • 在此测试中将检查数据库触发器、函数、视图、查询和游标。
  • 它验证数据库模式、数据库表等,
  • 在这里可以很容易地找到触发器中的编码错误。
  • 查询中的错误也可以在此白盒测试中处理,因此内部错误很容易消除。

3. 非功能测试

非功能测试是执行负载测试、压力测试和检查最低系统要求以满足要求的过程。它还将检测风险和错误并优化数据库的性能。

a) 负载测试:

  • 负载测试涉及测试数据库的性能和可伸缩性。
  • 它决定了软件在被许多用户同时使用时的行为方式。
  • 它侧重于良好的负载管理。
  • 例如,如果 Web 应用程序被多个用户同时访问,并且没有产生任何流量问题,则负载测试成功完成。

b) 压力测试:

  • 压力测试也称为耐力测试。压力测试是为了识别系统的断点而执行的测试过程。
  • 在这个测试中,应用程序被加载到系统出现故障的阶段。
  • 这个点被称为数据库系统的断点。
  • 对系统故障破坏后的软件进行评估和分析。如果检测到错误,它将显示错误消息。
  • 例如,如果用户输入错误的登录信息,则会抛出错误消息。

后端测试流程

后端测试流程

1.设置测试环境:当应用程序的编码过程完成后,通过选择合适的测试工具进行后端测试来设置测试环境。它包括选择合适的团队以适当的时间表测试整个后端环境。在文档中记录所有测试过程或在软件中更新它们以跟踪所有过程。

2. 生成测试用例:一旦工具和团队准备好测试过程,根据业务需求生成测试用例。自动化工具本身将分析代码并为开发的代码生成所有可能的测试用例。如果该过程是手动的,那么测试人员将不得不在测试工具中编写可能的测试用例以确保代码的正确性。

3. 测试用例的执行:一旦生成了测试用例,测试人员或质量分析师需要在开发的代码中执行这些测试用例。如果该工具是自动化的,它将自行生成和执行测试用例。否则,测试人员需要编写和执行这些测试用例。它将突出显示测试用例的执行是否成功执行。

4、分析测试用例:测试用例执行后,无论执行成功与否,都会突出显示所有测试用例的结果。如果测试用例中出现错误,它将突出显示特定错误的形成或引发位置,并且在某些情况下,自动化工具会给出有关问题的提示以解决错误。测试人员或质量分析师应再次分析代码并在发生错误时修复问题。

5. 提交测试报告:这是测试过程的最后阶段。在这里,所有细节,例如谁负责测试,测试过程中使用的工具,生成的测试用例的数量,成功与否执行的测试用例的数量,执行每个测试用例所花费的时间,测试用例的次数失败,错误发生的次数。这些详细信息在软件中记录或更新。报告将提交给相应的团队。

后端测试验证

以下是后端测试验证的一些因素:

  • 性能检查:它验证每个单独测试的性能和系统行为。
  • 序列测试:后端测试验证测试是否根据优先级分布。
  • 数据库服务器验证:在此,确保为测试提供的数据是否正确。
  • 功能测试:在此,测试验证数据库事务的一致性。
  • Key and Indexes:在这方面,测试确保了准确的约束以及正确遵循约束和索引的规则。
  • 数据完整性测试:它是一种在数据库中验证数据是否准确并按要求运行的技术。
  • 数据库表:它确保创建的表和输出查询提供预期的结果。
  • 数据库触发器:后端测试验证触发器功能的正确性。
  • 存储过程:后端测试验证功能,返回语句,调用其他事件等,根据要求正确提及,
  • 架构:后端测试验证数据是否根据业务需求以正确的方式组织并确认结果。

后端测试工具

以下是一些用于后端测试的工具:

1. 负载运行器:

  • 它是一种压力测试工具。
  • 它是一种自动化性能和测试自动化工具,用于在生成实际负载的同时分析系统行为和系统性能。

2. Empirix-TEST 套件:

  • 它被甲骨文从 Empirix 收购。它是一个负载测试工具。
  • 它验证了可扩展性以及在繁重测试下的应用程序的功能。
  • 使用 Empirix -Test 套件进行采集可能被证明可以有效地交付质量更高的应用程序。

3. 存储过程测试工具——LINQ:

  • 它是一个强大的工具,允许用户展示项目。
  • 它跟踪来自 ORM 的所有 ORM 调用和数据库查询。
  • 它可以查看数据访问代码的性能并轻松确定性能。

4. 单元测试工具——SQL Unit、DBFit、NDbUnit:

  • SQL UNIT: SQLUnit 是一个用于对数据库存储过程进行回归和单元测试的单元测试框架。
  • DBFit:它是 FitNesse 的一部分,管理存储过程和自定义过程。通过Java或 .NET 完成数据库测试并从命令行运行。
  • NDbUnit:它在执行或编译系统的其他部分之前或之后执行系统的数据库单元测试。

5. 数据工厂工具:

  • 这些工具用作后端数据库测试的数据管理器和数据生成器。
  • 它用于验证具有大量数据的查询。
  • 它允许执行压力和负载测试。

6.SQLMap:

  • 它是一个开源工具。
  • 它用于执行渗透测试以自动化检测过程。
  • 强大的错误检测将导致有效的测试并导致需求的预期行为。

7.php我的管理员:

  • 这是软件工具,它是用PHP编写的。
  • 它是为处理数据库而开发的,我们可以执行测试查询以确保结果的正确性,甚至是单独的表。

8.自动高效测试生成器(AETG):

  • 它根据用户定义的需求机械地生成可能的测试。
  • 它基于使用统计实验设计理论思想的算法,以减少输入测试空间的特定测试覆盖级别所需的测试数量。

9. 锤子数据库:

  • 它是一个用于负载测试的开源工具。
  • 它验证 oracle 数据库的活动重播功能。
  • 它基于 TPC-C 和 TPC-H 基准等行业标准。

10、SQL测试:

  • SQL Test 使用开源 tSQLt 框架、视图、存储过程和函数。
  • 该工具将数据库对象存储在单独的模式中,如果发生更改,则无需清除该过程。
  • 它允许为 SQL 服务器数据库运行单元测试用例。

后端测试的优势

以下是后端测试的一些好处:

  • 在早期阶段很容易发现错误。
  • 它避免了在服务器端创建死锁。
  • Web 负载管理很容易实现。
  • 数据库的功能得到适当维护。
  • 它减少了数据丢失。
  • 增强系统的功能。
  • 它确保了系统的安全和保护。
  • 在做后端测试的同时,也可以检测和替换UI部分的错误。
  • 覆盖所有可能的测试用例。

后端测试的缺点

以下是后端测试的一些缺点:

  • 需要良好的领域知识。
  • 为测试提供测试用例需要特别注意。
  • 对组织成本的投资较高。
  • 需要更多时间来测试。
  • 如果更多的测试失败,那么在某些情况下会导致服务器端崩溃。
  • 一个测试用例场景的错误或意外结果也会影响其他系统结果。