📅  最后修改于: 2021-01-11 00:48:27             🧑  作者: Mango
在从开发团队那里获得构建软件时,Smoke Testing就出现了。冒烟测试的目的是确定构建软件是否可测试。它是在“构建软件”时完成的。此过程也称为“第0天”。
这是一个节省时间的过程。由于仅在应用程序的关键功能不起作用或关键错误未修复时才进行测试,因此可以减少测试时间。冒烟测试的重点是应用程序核心和主要功能的工作流程。
在进行一轮深入,严格的测试(检查所有可能的正负值之前)之前,测试应用程序的基本和关键功能被称为冒烟测试。
在冒烟测试中,我们仅关注应用程序的正向流程,仅输入有效数据,而不输入无效数据。在烟雾测试中,我们验证每个构建体是否可测试;因此,它也称为构建验证测试。
当我们执行烟雾测试时,我们可以在早期识别出阻止程序错误,以便测试工程师不会闲着,或者他们可以继续进行并测试独立的可测试模块。
烟雾测试不需要设计测试用例。只需从已经设计好的测试用例中选择所需的测试用例即可。
如上所述,Smoke Testing专注于核心应用程序的工作流程。我们选择涵盖应用程序主要功能的测试用例套装。测试用例的数量应尽可能减少,执行时间不得超过半小时。
通常,无论何时安装新版本,我们都会执行一轮烟雾测试,因为在最新版本中,我们可能会遇到阻止程序错误。毕竟,可能会有一些更改可能破坏了一项主要功能(修复或添加新功能的错误可能影响了原始软件的大部分),或者我们在进行安装的地方进行了烟雾测试。
当稳定版本安装在任何地方(测试服务器,生产服务器和用户验收测试)时,我们将进行烟雾测试以查找阻止程序错误。
让我们使用一些不同的场景,这些场景可以帮助我们更好地了解何时进行烟雾测试:
开发人员开发应用程序并移交给测试团队,测试团队将开始功能测试
假设我们假设我们有四天的功能测试时间。在第一天,我们检查一个模块,在第二天,我们将检查另一个模块。在第四天,我们发现了一个严重的错误,将其提供给开发人员。他/她说,还需要两天时间进行修复。然后,我们必须将发布日期推迟这两天。
为了解决这个问题,我们进行了烟雾测试,让我们看一下它的工作情况,在上述情况下,而不是逐个模块地进行全面测试,并最终提出严重的错误,最好在进行之前进行烟雾测试对于功能,集成和系统测试,也就是说,在每个模块中,我们必须测试必要的或关键的功能,然后继续进行进一步的测试,如下图所示:
在执行功能测试时,如果测试工程师在早期阶段识别出主要错误,则有时不适合开发人员在初始阶段发现主要错误。因此,测试工程师将在进行功能,集成,系统和其他类型的测试之前执行冒烟测试。
在进行烟雾测试时,测试工程师会发现主要错误;他/她将帮助开发团队修复错误。修复错误后,测试工程师将继续进行进一步的测试,如下图所示:
在这种情况下,如果我们已经在执行烟雾测试,并且发现了阻止程序错误,并且还解决了该错误。执行系统测试后,我们会将应用程序从测试服务器发送到最终用户服务器,以进行一轮用户接受测试。并且当客户执行验收测试并且没有发现任何问题并对应用程序感到满意时,因为我们已经执行了烟雾测试。
验收测试完成后,该应用程序将部署到生产服务器。我们已经在生产服务器上进行了一次冒烟测试,以检查应用程序是否正确安装。如果任何真正的最终用户发现任何阻止程序错误,就会感到恼火,并且不会再次使用该应用程序,这可能导致客户业务损失,如下图所示:
为避免将来出现此问题,开发团队经理(测试团队经理)将以客户身份登录并进行一轮烟雾测试。
例如,实际用户使用Facebook应用程序,并且每次我们在内部更新新功能时,实际用户都不会受到影响,因为他们将不了解内部更改并正确使用该应用程序。
在生产服务器中,烟雾测试可以由业务分析师(BA),开发团队经理,测试团队经理,构建团队和客户来完成。
烟雾测试分为两种类型:
在这种情况下,开发团队将应用程序发送给测试主管。然后测试负责人将指示测试团队进行烟雾测试,并在进行烟雾测试后发送报告。一旦测试团队完成了烟雾测试,他们将烟雾测试报告发送给测试主管。
在这里,测试负责人说应用程序已准备好进行进一步的测试。测试线没有指定进行烟雾测试,但是测试团队仍然通过进行烟雾测试来测试应用程序。
假设我们正在使用一个电子商务网站,并且该网站的核心工作应该是登录,特定搜索,将商品添加到购物车,将商品添加到收藏夹,付款方式等。这里我们正在测试函数,以放置订购。在测试之后,测试人员必须对应用程序功能的函数充满信心。
工作流的步骤如下:
如果该函数正常工作,那么测试人员将通过测试,并测试同一应用程序的下一个函数。