📜  存根和驱动程序之间的区别

📅  最后修改于: 2021-09-15 01:19:13             🧑  作者: Mango

先修课程:软件工程 |集成测试

有许多主要元素需要使产品测试清晰易懂。每个元素都有自己特定的实用程序功能,这在软件测试时有很大帮助,并根据SRS 文档尽可能提供预期的功能。 Stubs 和 Drivers 是两个这样的元素,它们在测试时起着非常重要的作用;它们替换尚未开发但在针对预期功能和特性测试其他模块时仍需要的模块。

存根和驱动程序:
Stubs 和 Drivers 被视为等同于 do 模块的元素,如果模块处于开发阶段、缺失或尚未开发,则可以替换它们。因此,可以满足此类模块的必要性。驱动程序和存根模拟特性和功能,并能够提供模块可以提供的特性。这些存根和驱动程序减少了测试中无用的延迟并使测试过程更快。

存根主要用于自上而下的集成测试,而驱动程序用于自下而上的集成测试,以提高测试过程的效率。

1. 存根:
存根由软件开发人员开发以使用它们代替模块,如果相应的模块未开发,则缺失。在自顶向下测试模块时处于开发阶段或当前不可用。这些存根模拟模块并具有不可用模块所具有的所有功能。当需要较低级别的模块但当前不可用时使用存根。

存根有以下四个基本类别:

  • 显示跟踪的消息,
  • 显示显示的消息(如果有),
  • 返回模块使用的相应值,
  • 返回测试模块使用的所选参数(参数)的值。

2. 驱动程序:
驱动程序的用途与存根服务相同,但驱动程序用于自底向上集成测试,并且比存根更复杂。当某些模块在测试特定模块时由于某些不可避免的原因而在缺少所需模块的情况下丢失和不可用时,也会使用驱动程序。缺少高级模块时使用驱动程序,也可以在缺少低级模块时使用驱动程序。

例如:假设您要测试一个网站,其相应的主要模块是,其中每个模块都相互依赖,如下所示:

  • 模块-A:登录页面网站,
  • Module-B :网站首页
  • Module-C :配置文件设置
  • 模块-D:登出页面

并行开始所有模块的开发始终被认为是一种很好的做法,因为一旦每个模块得到开发,它们就可以被集成,并且可以根据它们与模块相应的相互依赖性顺序进行进一步测试。但是在某些情况下,如果它们中的任何一个处于开发阶段或在特定模块的测试过程中不可用,则可以使用存根或驱动程序代替它。

假设Module-A已经开发完成,一开发就进行测试,同时测试Module-A需要的Module-B尚未开发,还在开发过程中,那么我们可以使用模拟的Stubs或Driver实际模块 B可能显示的所有特性和功能。因此,我们可以得出结论,存根和驱动程序用于满足不可用模块的必要性。同样,如果模块 C模块 D不可用,我们也可以使用存根或驱动程序来代替它们。

驱动程序和存根是否具有相同的功能?
是的,我们可以说两者都提供相同的功能,并且在没有模块(M 1 )与需要测试的其他模块(M 2 )具有相互依赖性的情况下使用,因此我们使用驱动程序或存根满足模块(M 1 )的不可用性并为其功能服务。

存根和驱动程序之间的区别:

S.No. Stubs Drivers
1. Stubs are used in Top-Down Integration Testing. Drivers are used in Bottom-Up Integration Testing.
2. Stubs are basically known as a “called programs” and are used in the Top-down integration testing. While, drivers are the “calling program” and are used in bottom-up integration testing.
3. Stubs are similar to the modules of the software, that are under development process. While drivers are used to invoking the component that needs to be tested.
4. Stubs are basically used in the unavailability of low-level modules. While drivers are mainly used in place of high-level modules and in some situation as well as for low-level modules.
5. Stubs are taken into use to test the feature and functionality of the modules. Whereas the drivers are used if the main module of the software isn’t developed for testing.
6. The stubs are taken into concern if testing of upper-levels of the modules are done and the lower-levels of the modules are under developing process. The drivers are taken into concern if testing of lower-levels of the modules are done and the upper-levels of the modules are under developing process.
7. Stubs are used when lower-level of modules are missing or in a partially developed phase, and we want to test the main module. Drivers are used when higher-level of modules are missing or in a partially developed phase, and we want to test the lower(sub)- module.