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

📅  最后修改于: 2021-08-29 11:18:52             🧑  作者: Mango

先决条件:软件工程|整合测试

要使产品测试变得清晰起来,就需要许多主要要素。每个元素都有其自己的特定实用程序功能,这些功能可以在软件测试时提供很大帮助,并尽可能地根据SRS文档提供预期的功能。存根和驱动程序就是两个这样的元素,它们在测试时起着至关重要的作用。它们替换了尚未开发但在针对预期功能和特性的其他模块测试中仍需要的模块。

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

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

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

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

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

2.驱动程序:
驱动程序的作用与存根相同,但驱动程序用于自下而上的集成测试,并且比存根更复杂。当某些模块丢失且在测试特定模块时由于某些不可避免的原因而在缺少所需模块时采取措施而无法使用时,也会使用驱动程序。如果缺少高级模块,则使用驱动程序;如果缺少高级模块,则也可以使用驱动程序。

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

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

并行开始开发所有模块一直被认为是一种好习惯,因为一旦开发每个模块,它们就可以被集成,并且可以按照它们与模块的相互依赖顺序进行进一步的测试。但是在某些情况下,如果其中任何一个处于开发阶段或在特定模块的测试过程中不可用,那么可以使用存根或驱动程序来代替。

假设已经开发了Module-A ,一旦对其进行了测试,同时测试了Module-A所需的尚未开发且仍在开发过程中的Module-B ,那么在这种情况下,我们可以使用Stub或Drivers进行模拟实际模块B可能会显示的所有功能。因此,我们可以得出结论,使用存根和驱动程序来满足不可用模块的必要性。同样,如果模块或模块太不可用,我们也可以使用模块或驱动程序来代替模块-C和模块-D。

驱动程序和存根都提供相同的功能吗?
是的,我们可以说两者具有相同的功能,并且在没有需要与其他模块(M 2 )相互依赖的模块(M 1 )的情况下使用,因此我们使用驱动程序或存根来满足模块(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.