CN110471828A - 一种操作***测试方法、装置及其设备 - Google Patents

一种操作***测试方法、装置及其设备 Download PDF

Info

Publication number
CN110471828A
CN110471828A CN201810437553.1A CN201810437553A CN110471828A CN 110471828 A CN110471828 A CN 110471828A CN 201810437553 A CN201810437553 A CN 201810437553A CN 110471828 A CN110471828 A CN 110471828A
Authority
CN
China
Prior art keywords
operating system
service application
test result
test
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810437553.1A
Other languages
English (en)
Other versions
CN110471828B (zh
Inventor
石晓海
秦承刚
张永超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201810437553.1A priority Critical patent/CN110471828B/zh
Publication of CN110471828A publication Critical patent/CN110471828A/zh
Application granted granted Critical
Publication of CN110471828B publication Critical patent/CN110471828B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供一种操作***测试方法、装置及其设备,包括:在待测试的操作***发布之前,根据部署环境信息确定需要在该操作***运行的特定场景的业务应用;基于操作***运行业务应用及其相关测试,作为常规操作***测试流程的重要补充;根据业务应用的测试结果确定操作***的测试结果。通过本申请方案,能够将业务应用触发的操作***问题前置,与常规操作***子领域测试集一起形成测试***,自动触发执行,加快操作***发布的迭代周期。业务应用是与业务强相关的应用及其测试集,复杂的业务场景及测试环境对操作***内核产生的工作压力是常规的操作***测试集无法覆盖,将其集成到通用的操作***的测试流程中,有效提高发布效率和操作***质量。

Description

一种操作***测试方法、装置及其设备
技术领域
本申请涉及互联网领域,尤其是一种操作***测试方法、装置及其设备。
背景技术
操作***(Operating System,OS)是管理和控制硬件资源与软件资源的程序,是直接运行在“裸机”的基本***软件,其它软件均需要在操作***的支持下才能运行。操作***是用户和设备的接口,同时也是硬件和其它软件的接口,可以管理硬件资源、软件资源及数据资源,并提供各种形式的用户界面。
由于操作***的重要性,在发布操作***之前,需要对操作***进行测试,例如,测试操作***本身是否存在异常。若操作***存在异常,则对操作***进行修复,一直到操作***不存在异常,则可以发布未存在异常的操作***。
在发布操作***之后,则可以在业务环境中运行操作***,且操作***上可以运行多个业务应用,而在运行这些业务应用之后,可能发现操作***与业务应用并不适配,需要对操作***进行修复,并重新对操作***进行测试,在测试完成后,重新发布操作***,以此类推,若操作***上运行大量业务应用,则可能对操作***进行多次修复,操作***的测试效率很低,用户体验很差。
发明内容
本申请提供一种操作***测试方法,所述方法包括:
在待测试的操作***发布之前,根据环境信息确定需要在所述操作***运行的特定场景的业务应用;
基于所述操作***运行所述业务应用,对所述业务应用进行测试;
根据所述业务应用的测试结果确定所述操作***的测试结果。
本申请提供一种操作***测试方法,所述方法包括:
在待测试的操作***发布之前,根据部署环境信息确定需要在所述操作***运行的多个业务应用,将业务应用的应用场景前置到所述操作***的测试环境,作为所述操作***的测试环境中的测试环节,业务应用的测试集与所述操作***的测试集形成测试集;业务应用包括多个应用以及多个应用的业务行为;
基于所述操作***运行所述业务应用、所述业务应用的测试流程;
根据所述业务应用的测试结果确定所述操作***的测试结果。
本申请提供一种操作***测试装置,所述装置包括:
获取模块,用于在待测试的操作***发布之前,根据环境信息确定需要在所述操作***运行的特定场景的业务应用;测试模块,用于基于所述操作***运行所述业务应用,并对所述业务应用进行测试;确定模块,用于根据所述业务应用的测试结果确定操作***的测试结果。
本申请提供一种操作***测试装置,所述装置包括:获取模块,用于在待测试的操作***发布之前,根据部署环境信息确定需要在所述操作***运行的多个业务应用,将业务应用的应用场景前置到所述操作***的测试环境,作为所述操作***的测试环境中的测试环节,业务应用的测试集与所述操作***的测试集形成测试集;业务应用包括多个应用以及多个应用的业务行为;测试模块,用于基于所述操作***运行所述业务应用、所述业务应用的测试流程;确定模块,用于根据所述业务应用的测试结果确定操作***的测试结果。
本申请提供一种操作***测试设备,包括:处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:在待测试的操作***发布之前,根据环境信息确定需要在所述操作***运行的特定场景的业务应用;
基于所述操作***运行所述业务应用,对所述业务应用进行测试;
根据所述业务应用的测试结果确定所述操作***的测试结果。
基于上述技术方案,本申请实施例中,在待测试的操作***发布之前,可以根据部署环境信息确定需要在该操作***运行的特定场景的业务应用;基于所述操作***运行所述业务应用及其相关测试(即对业务应用进行测试),作为常规操作***测试流程的重要补充;根据所述业务应用的测试结果确定所述操作***的测试结果。综上所述,能够将业务应用触发的操作***问题前置,并与常规操作***子领域测试集一起形成一站式操作***测试***,自动触发执行,加快了操作***发布的迭代周期。而且,上述业务应用是与业务强相关的应用及其测试集,复杂的业务场景及测试环境对操作***内核产生的工作压力是常规的操作***测试集无法覆盖,将其集成到通用的操作***的测试流程中,有效地提高了发布效率和操作***软件质量。而且,可以在操作***发布前,发现操作***与业务应用并不适配,并对操作***进行修复,能够将业务应用触发的操作***问题前置,提前发现问题,有效保证操作***的质量,提高操作***的稳定性和兼容性,有效地提高解决问题的效率和操作***发布的稳定性,加快操作***发布的迭代周期,减少测试时间,可以提高操作***的测试效率,可以节省测试资源,提高用户体验。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其它的附图。
图1是本申请一种实施方式中的操作***测试方法的流程图;
图2A和图2B是本申请一种实施方式中的应用场景示意图;
图3是本申请另一种实施方式中的操作***测试方法的流程图;
图4是本申请一种实施方式中的操作***测试装置的结构图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例中提出一种操作***测试方法,该方法可以应用于操作***测试设备,该操作***测试设备可以包括PC(Personal Computer,个人计算机)、平板电脑、笔记本电脑、移动终端、智能手机等,对此设备类型不做限制。
参见图1所示,为操作***测试方法的流程示意图,该方法可以包括:
步骤101,在待测试的操作***发布之前,根据环境信息确定需要在该操作***运行的特定场景的业务应用。特定场景是需要运行该操作***的服务器的业务场景,是一个复杂场景,业务场景可能是一个大集群,包括大量业务应用,业务场景非常复杂,其业务处理过程也非常复杂,对此业务场景不做限制。
具体的,可以获取需要运行该操作***的服务器对应的环境信息,并根据该环境信息确定需要在该操作***运行的特定场景的业务应用(如服务器的业务场景包括的多个业务应用,这些业务应用部署在服务器的业务场景下)。其中,所述业务应用可以包括:在上一个版本的操作***中正常运行的业务应用。
在一个例子中,上述业务应用可以包括多个应用(即APP)以及所述多个应用的业务行为(如应用的交互、应用的处理等等,对此不做限制)。其中,业务应用是与业务相关的应用,其测试场景条件非常复杂,业务应用对操作***内核产生的工作压力非常复杂,可以包括大量的核心应用。例如,某个网站需要支持业务A,则业务应用包括实现业务A的所有应用,如支持注册功能的应用,支持验证功能的应用,支持检索功能的应用,支持图片数据的应用等等。
步骤102,基于该操作***运行该业务应用,并对该业务应用进行测试。
步骤103,根据该业务应用的测试结果确定该操作***的测试结果。
其中,根据该业务应用的测试结果确定该操作***的测试结果,还可以包括:根据该操作***的测试集对该操作***进行测试,得到该测试集的测试结果;根据该业务应用的测试结果和该测试集的测试结果确定该操作***的测试结果。例如,若该业务应用的测试结果为异常,则确定该操作***的测试结果为异常;或者,若该测试集的测试结果为异常,则确定该操作***的测试结果为异常;或者,若该业务应用的测试结果为异常,且该测试集的测试结果为异常,则确定该操作***的测试结果为异常;或者,若该业务应用的测试结果为正常,且该测试集的测试结果为正常,则确定该操作***的测试结果为正常。
其中,针对该操作***运行的多个业务应用,只要有至少一个业务应用的测试结果为异常,则可以说明业务应用的测试结果为异常。此外,若所有业务应用的测试结果均为正常,则可以说明业务应用的测试结果为正常。
在一个例子中,上述执行顺序只是为了方便描述给出的一个示例,在实际应用中,还可以改变步骤之间的执行顺序,对此执行顺序不做限制。而且,在其它实施例中,并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其它实施例中可能被分解为多个步骤进行描述;本说明书中所描述的多个步骤,在其它实施例也可能被合并为单个步骤进行描述。
在一个例子中,根据该业务应用的测试结果确定该操作***的测试结果后,若该操作***的测试结果为异常,则可以提示用户对操作***进行修复,即用户对操作***的代码进行修改,对此不做限制,然后,基于修复的操作***重新执行步骤101-步骤103。若操作***的测试结果为正常,则可以发布操作***。
在一个例子中,根据该业务应用的测试结果确定该操作***的测试结果后,在操作***发布后,还可以基于发布后的操作***运行业务应用,并对运行的该业务应用进行测试,从而得到该业务应用的测试结果,对此过程不做限制。
在上述实施例中,操作***可以包括但不限于:Linux操作***、Windows操作***、Android操作***、iOS操作***。当然,上述操作***只是几个示例,对此操作***不做限制,所有操作***均在本申请实施例的保护范围之内。
基于上述技术方案,本申请实施例中,根据部署环境信息确定需要在待测试的操作***运行的特定场景的业务应用;基于所述操作***运行所述业务应用及其相关测试(即对业务应用进行测试),作为常规操作***测试流程的重要补充;根据所述业务应用的测试结果确定所述操作***的测试结果。综上所述,能够将业务应用触发的操作***问题前置,并与常规操作***子领域测试集一起形成一站式操作***测试***,自动触发执行,加快了操作***发布的迭代周期。而且,上述业务应用是与业务强相关的应用及其测试集,复杂的业务场景及测试环境对操作***内核产生的工作压力是常规的操作***测试集无法覆盖,将其集成到通用的操作***的测试流程中,有效地提高了发布效率和操作***软件质量。而且,可以在操作***发布前,发现操作***与业务应用并不适配,并对操作***进行修复,能够将业务应用触发的操作***问题前置,提前发现问题,有效保证操作***的质量,提高操作***的稳定性和兼容性,有效地提高解决问题的效率和操作***发布的稳定性,加快操作***发布的迭代周期,减少测试时间,可以提高操作***的测试效率,可以节省测试资源,提高用户体验。而且,上述业务应用是与业务相关的应用,测试场景条件非常复杂,业务应用对操作***内核产生的工作压力非常复杂,可以包括大量核心应用,其业务场景可能是一个大的集群,因此,可以将复杂的业务应用的测试集成到操作***的测试过程中,形成一站式的测试流程。
在另一个例子中,本申请实施例中还提出一种操作***测试方法,所述方法包括:在待测试的操作***发布之前,根据部署环境信息确定需要在该操作***运行的多个业务应用,并将业务应用的应用场景前置到该操作***的测试环境,作为该操作***的测试环境中的测试环节,该业务应用的测试集与该操作***的测试集形成测试集;该业务应用可以包括多个应用以及所述多个应用的业务行为。然后,基于该操作***运行该业务应用、该业务应用的测试流程;根据该业务应用的测试结果确定该操作***的测试结果。
以下结合具体的应用场景,对上述操作***测试(操作***测试也可以为操作***内核测试,本实施例中以操作***测试为例)方法进行详细说明。
CI(Continuous Integration,持续集成)模式是一种软件开发模式,通过多频次的代码集成、构建、测试、发布,可以及时部署软件新特性,从而加快迭代速度。基于此,还可以采用CI模式部署操作***,即针对新开发的操作***,可以进行操作***的功能代码集成(即得到操作***)、操作***的测试、操作***的发布、业务应用的测试、操作***的部署上线等过程。例如,在开发出第一版本的操作***A后,可以针对操作***A执行上述过程;在开发出第二版本的操作***B后,可以针对操作***B执行上述过程,以此类推。
参见图2A所示,为本实施例的应用场景示意图,在操作***的功能代码集成过程,操作***开发者(也可以称为操作***内核开发者)可以开发出操作***的代码,并将操作***的代码存储到代码库(即code repository)中。
在操作***的测试过程,可以从代码库中得到操作***,并利用操作***的测试集对该操作***进行测试,得到测试结果。若测试结果为操作***异常,则向操作***开发者提示操作***异常,由操作***开发者修改操作***的代码,并将操作***的代码存储到代码库,然后,可以利用操作***的测试集对修改后的操作***进行测试,得到测试结果,以此类推,一直到测试结果为操作***正常。若测试结果为操作***正常,则执行操作***的发布过程。
在操作***的发布过程,可以将操作***发布给各个业务应用,以使各个业务应用运行在该操作***上。例如,针对需要运行该操作***的服务器,假设该服务器部署有业务应用1-业务应用3,则还可以将该操作***发布给业务应用1-业务应用3,以使业务应用1-业务应用3能够运行在该操作***上。
在业务应用的测试过程,可以将该业务应用运行在该操作***上,并利用业务应用的测试集对该业务应用进行测试,得到测试结果。若测试结果为操作***异常,则向操作***开发者提示操作***异常,由操作***开发者修改操作***的代码,并将操作***的代码存储到代码库。若测试结果为业务应用异常,则向业务应用开发者提示业务应用异常,由业务应用开发者修改业务应用的代码,并重新对业务应用进行测试。若测试结果为操作***正常、且业务应用正常,则得到该业务应用。当所有业务应用的测试结果均为操作***正常、且业务应用正常时,则说明操作***正常,执行操作***的部署上线过程。
例如,可以将业务应用1运行在该操作***上,并利用业务应用1的测试集对该业务应用1进行测试,得到测试结果。若测试结果为操作***异常,则可以向操作***开发者提示操作***异常。若测试结果为业务应用1异常,则可以向业务应用开发者提示业务应用1异常。若测试结果为操作***正常、且业务应用1正常,则可以得到业务应用1,并输出业务应用1。但是,此时并不能说明操作***正常,只有当业务应用1、业务应用2和业务应用3的测试结果均为操作***正常、且业务应用正常时,才能够说明操作***正常,执行操作***的部署上线过程,否则,就需要向操作***开发者提示操作***异常。
在操作***的部署上线过程,可以将正常的操作***部署到服务器。
从上述过程可以看出,在操作***的测试过程,只是利用操作***的测试集对该操作***进行测试,得到测试结果,而操作***的测试集只包括与操作***本身功能相关的内容,但是,操作***的很多问题来自于操作***发布后的业务环境中,因此,操作***的测试过程可能无法发现操作***的问题。
例如,在将业务应用1运行在操作***后,利用业务应用1的测试集对业务应用1进行测试时,可能发现操作***异常,即操作***无法支持业务应用1的正常运行,而业务应用1本身没有问题,因此,需要向操作***开发者提示操作***异常,由操作***开发者修改操作***的代码,并将操作***的代码存储到代码库。然后,参见图2A所示,需要重新执行操作***的测试过程、操作***的发布过程、业务应用的测试过程。假设有100个业务应用需要运行在操作***,且100个业务应用的测试过程均发现操作***异常,则需要重复100次上述过程,操作***的测试效率很低,测试时间会非常长,用户体验很差。
与上述发现不同的是,本申请实施例中,可以将业务应用的测试集成到操作***的测试过程,从而提前发现相关问题,能够将由业务应用测试触发的操作***问题前置到操作***的测试过程,从而有效的保证了操作***的质量。
参见图2B所示,为本实施例的另一应用场景示意图,在操作***的功能代码集成过程,操作***开发者(也可以称为操作***内核开发者)可以开发出操作***的代码,并将操作***的代码存储到代码库(即coderepository)中。
在操作***的测试过程,可以从代码库中得到操作***,并利用操作***的测试集对操作***进行测试,得到测试集的测试结果。基于操作***运行业务应用,并对该业务应用进行测试,得到业务应用的测试结果。基于测试集的测试结果和业务应用的测试结果,获得操作***的测试结果。若操作***的测试结果为操作***异常,则向操作***开发者提示操作***异常,由操作***开发者修改操作***的代码,并将操作***的代码存储到代码库,然后,重新执行操作***的测试过程,以此类推,一直到操作***的测试结果为操作***正常。若操作***的测试结果为操作***正常,则执行操作***的发布过程。
其中,利用操作***的测试集对操作***进行测试,得到测试集的测试结果,可以包括:先获取预先配置的操作***的测试集,该测试集只包括与操作***本身功能相关的内容,该测试集用于对操作***进行测试,可以为测试脚本,该测试脚本用于测试操作***本身是否异常。然后,利用测试集对操作***进行测试,得到该测试集的测试结果,对此测试过程不做限制,如对该操作***进行功能测试或者回归测试,此外,测试集的测试结果为正常或者异常。
其中,对该业务应用进行测试,得到业务应用的测试结果,可以包括:可以将业务应用运行在该操作***上,并利用该业务应用的测试集对该业务应用进行测试,得到业务应用的测试结果。具体的,针对该操作***运行的多个业务应用,只要有一个业务应用的测试结果为异常,则业务应用的测试结果为异常;若所有业务应用的测试结果均为正常,则业务应用的测试结果为正常。
其中,可以将多个业务应用的应用场景前置到该操作***的测试环境,作为该操作***的测试环境中的测试环节,且该业务应用的测试集与该操作***的测试集形成一站式的测试集;这样,能够将业务应用触发的操作***问题前置,并与常规操作***子领域测试集一起形成一站式操作***测试***,自动触发执行,加快了操作***发布的迭代周期。上述业务应用是与业务强相关的应用及其测试集,复杂的业务场景及测试环境对操作***内核产生的工作压力是常规的操作***测试集无法覆盖,将其集成到通用的操作***的测试流程中,有效地提高了发布效率和操作***软件质量。上述业务应用是与业务相关的应用,测试场景条件非常复杂,业务应用对操作***内核产生的工作压力非常复杂,可以包括大量核心应用,其业务场景可能是一个大的集群,因此,可以将复杂的业务应用的测试集成到操作***的测试过程中,形成一站式的测试流程。
例如,可以将业务应用1-业务应用3运行在该操作***上,并利用业务应用1的测试集对业务应用1进行测试,得到业务应用1的测试结果,对此测试过程不做限制,业务应用1的测试结果为正常或者异常。此外,利用业务应用2的测试集对业务应用2进行测试,得到业务应用2的测试结果;利用业务应用3的测试集对业务应用3进行测试,得到业务应用3的测试结果。然后,若任意一个或者多个业务应用的测试结果为异常,则确定业务应用的测试结果为异常;若所有业务应用的测试结果为正常,则确定业务应用的测试结果为正常。
其中,基于测试集的测试结果和业务应用的测试结果,获得操作***的测试结果,可以包括:若业务应用的测试结果为异常,则可以确定操作***的测试结果为异常;或者,若测试集的测试结果为异常,则可以确定操作***的测试结果为异常;或者,若业务应用的测试结果为异常,且测试集的测试结果为异常,则可以确定操作***的测试结果为异常;或者,若业务应用的测试结果为正常,测试集的测试结果为正常,则可以确定操作***的测试结果为正常。
在一个例子中,在基于操作***运行业务应用,并对该业务应用进行测试之前,还可以获得需要在该操作***运行的特定场景的业务应用。具体的,可以获取需要运行该操作***的服务器对应的环境信息,并根据该环境信息确定需要在该操作***运行的特定场景的业务应用(如服务器的业务场景包括的多个业务应用,这些业务应用部署在服务器的业务场景下)。例如,假设在操作***的部署上线过程,可以将操作***部署到服务器A,则获取服务器A的环境信息,即服务器A会运行哪些业务应用,假设服务器A会运行业务应用1-业务应用3,则服务器A的环境信息就是业务应用1-业务应用3,且根据该环境信息确定需要在该操作***运行的特定场景的业务应用是业务应用1-业务应用3。当然,可以采用其它方式获得需要在操作***运行的业务应用,对此不做限制。
在上述实施例中,特定场景是需要运行操作***的服务器的业务场景,其是一个复杂的场景,业务场景可能是一个大的集群,包括大量业务应用,业务场景非常复杂,业务场景的业务处理过程也非常复杂,对此业务场景不做限制。此外,上述业务应用可以包括多个应用以及多个应用的业务行为(如应用的交互、应用的处理等)。业务应用是与业务相关的应用,测试场景条件非常复杂,业务应用对操作***内核产生的工作压力非常复杂,可以包括大量的核心应用。
在一个例子中,上述业务应用可以包括:在上一个版本的操作***中正常运行的业务应用,即在上一个版本的操作***中,该业务应用是正常的。
例如,在开发出第一版本的操作***A后,业务应用1-业务应用3(后续以业务应用1为例进行说明)在操作***A均可以正常运行,即操作***A是正常的,而且业务应用1也是正常的。然后,在开发出第二版本的操作***B后,获取的是在操作***A中正常运行的业务应用1,因此,若业务应用1的测试结果为异常,由于业务应用1在操作***A中正常运行,但是在操作***B中异常,则可以说明操作***B存在异常,需要对操作***B进行修复。
从上述过程可以看出,在操作***的测试过程,是利用操作***的测试集对操作***进行测试,并在操作***运行业务应用,对业务应用进行测试,因此,将业务应用的测试集成到操作***的测试过程,提前发现问题,能够将由业务应用测试触发的操作***问题前置到操作***的测试过程,有效的保证操作***的质量,在操作***发布前解决问题,相当于问题发现被前置,有效提高了解决问题的效率和操作***发布的稳定性,加快操作***发布的迭代周期。
在操作***的发布过程,可以将操作***发布给各个业务应用,以使各个业务应用运行在该操作***上。例如,针对需要运行该操作***的服务器,假设该服务器部署有业务应用1-业务应用3,则还可以将该操作***发布给业务应用1-业务应用3,以使业务应用1-业务应用3能够运行在该操作***上。
在业务应用的测试过程,可以将该业务应用运行在该操作***上,并利用业务应用的测试集对该业务应用进行测试,得到测试结果。若测试结果为业务应用异常,则向业务应用开发者提示业务应用异常,由业务应用开发者修改业务应用的代码,并重新对业务应用进行测试。若测试结果为业务应用正常,则得到该业务应用。在所有业务应用均正常后,则执行操作***的部署上线过程。
需要注意的是,由于在操作***的测试过程,已经在操作***运行业务应用,并且应用程度正常运行,因此,在对业务应用进行测试时,测试结果不会出现操作***异常,从而避免向操作***开发者提示操作***异常,也就不需要由操作***开发者修改操作***的代码,不会重新执行操作***的测试过程。
在操作***的部署上线过程,可以将正常的操作***部署到服务器,并且,该服务器可以在该操作***上运行业务应用1、业务应用2和业务应用3。
在上述应用场景下,参见图3所示,为本实施例中提出的操作***测试方法的流程图,该方法可以应用于操作***测试设备,该方法可以包括以下步骤:
步骤301,获取需要运行待测试的操作***的服务器对应的环境信息。
步骤302,根据该环境信息确定需要在该操作***运行的特定场景的业务应用。其中,上述业务应用可以包括多个应用(即APP)以及所述多个应用的业务行为(如应用的交互、应用的处理等等,对此不做限制)。
例如,假设将操作***部署到服务器A,则可以获取服务器A的环境信息,即服务器A会运行哪些业务应用,假设服务器A会运行业务应用1-业务应用3,则服务器A的环境信息就是业务应用1-业务应用3,且根据该环境信息确定需要在该操作***运行的特定场景的业务应用是业务应用1-业务应用3。当然,还可以采用其它方式获得需要在该操作***运行的业务应用,对此不做限制。
在一个例子中,业务应用可以包括:在上一个版本的操作***中正常运行的业务应用,即在上一个版本的操作***中,该业务应用是正常的。例如,在开发出第一版本的操作***A后,业务应用1在操作***A可以正常运行,即操作***A是正常的,且业务应用1也是正常的。在开发出第二版本的操作***B后,获取的是在操作***A中正常运行的业务应用1,因此,若业务应用1的测试结果为异常,由于业务应用1在操作***A中正常运行,但是在操作***B中异常,则可以说明操作***B存在异常,需要对操作***B进行修复。
步骤303,基于该操作***运行该业务应用,并对该业务应用进行测试。
例如,可以从代码库中得到操作***,并将业务应用运行在该操作***上,并利用该业务应用的测试集对该业务应用进行测试,得到业务应用的测试结果,对此测试过程不做限制。其中,针对该操作***运行的多个业务应用,只要有一个或者多个业务应用的测试结果为异常,则业务应用的测试结果可以为异常;若所有业务应用的测试结果均为正常,则业务应用的测试结果可以为正常。
步骤304,根据该业务应用的测试结果确定该操作***的测试结果。
在一个例子中,还可以根据该操作***的测试集对该操作***进行测试,得到该测试集的测试结果,对此测试过程不做限制;然后,可以根据该业务应用的测试结果和该测试集的测试结果,获得该操作***的测试结果。
步骤305,判断该操作***的测试结果是否为正常。如果是,则可以执行步骤306,如果否(即操作***的测试结果为异常),则可以执行步骤307。
步骤306,发布该操作***,并基于发布后的操作***运行业务应用,并对运行的该业务应用进行测试,从而得到该业务应用的测试结果。
参见图2B所示,可以执行操作***的发布过程、业务应用的测试过程、操作***的部署上线过程。在操作***的发布过程,将操作***发布给各业务应用,各业务应用运行在操作***上。在业务应用的测试过程,将业务应用运行在操作***上,利用业务应用的测试集对该业务应用进行测试,得到测试结果;若测试结果为业务应用异常,向业务应用开发者提示业务应用异常,由业务应用开发者修改业务应用的代码,并重新对业务应用进行测试。若测试结果为业务应用正常,则得到该业务应用;在所有业务应用均正常后,则执行操作***的部署上线过程。在操作***的部署上线过程,可以将操作***部署到服务器。
步骤307,向操作***开发者提示操作***异常,由操作***开发者修改操作***的代码,并基于修改后的操作***重新执行步骤303,后续过程不再赘述。
基于上述技术方案,本申请实施例中,在操作***发布之前,可以根据环境信息确定需要在操作***运行的业务应用,基于该操作***运行该业务应用,对该业务应用进行测试,根据该业务应用的测试结果确定操作***的测试结果。这样,可以在操作***发布前,发现操作***与业务应用并不适配,并对操作***进行修复,能够将业务应用触发的操作***问题前置,提前发现问题,有效保证操作***的质量,提高操作***的稳定性和兼容性,有效地提高解决问题的效率和操作***发布的稳定性,加快操作***发布的迭代周期,减少测试时间,可以提高操作***的测试效率,可以节省测试资源,提高用户体验。可以从操作***底层软件到上层各业务应用场景的整个软件栈,集成到操作***的测试过程中,形成一站式的测试流程,提高了发布效率和操作***软件质量。
基于与上述方法同样的申请构思,本申请实施例还提供一种操作***测试装置,如图4所示,为该装置的结构图,该装置包括:
获取模块401,用于在待测试的操作***发布之前,根据环境信息确定需要在所述操作***运行的特定场景的业务应用;测试模块402,用于基于所述操作***运行所述业务应用,对所述业务应用进行测试;确定模块403,用于根据所述业务应用的测试结果确定所述操作***的测试结果。
在一个例子中,所述获取模块401根据环境信息确定需要在所述操作***运行的业务应用时具体用于:获取需要运行所述操作***的服务器对应的环境信息;根据所述环境信息确定需要在所述操作***运行的特定场景的业务应用;其中,所述业务应用包括多个应用以及所述多个应用的业务行为;其中,所述业务应用包括:在上一个版本的操作***中正常运行的业务应用。
基于与上述方法同样的申请构思,本申请实施例还提供一种操作***测试设备,包括:处理器和机器可读存储介质;其中,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:在待测试的操作***发布之前,根据环境信息确定需要在所述操作***运行的特定场景的业务应用;基于所述操作***运行所述业务应用,对所述业务应用进行测试;根据所述业务应用的测试结果确定所述操作***的测试结果。
基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,其中,所述计算机指令被执行时进行如下处理:在待测试的操作***发布之前,根据环境信息确定需要在所述操作***运行的特定场景的业务应用;基于所述操作***运行所述业务应用,对所述业务应用进行测试;根据所述业务应用的测试结果确定所述操作***的测试结果。
基于与上述方法同样的申请构思,本申请实施例还提供一种操作***测试装置,所述操作***测试装置可以包括:获取模块,用于在待测试的操作***发布之前,根据部署环境信息确定需要在所述操作***运行的多个业务应用,将业务应用的应用场景前置到所述操作***的测试环境,作为所述操作***的测试环境中的测试环节,业务应用的测试集与所述操作***的测试集形成测试集;业务应用包括多个应用以及多个应用的业务行为;测试模块,用于基于所述操作***运行所述业务应用、所述业务应用的测试流程;确定模块,用于根据所述业务应用的测试结果确定所述操作***的测试结果。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (13)

1.一种操作***测试方法,其特征在于,所述方法包括:
在待测试的操作***发布之前,根据环境信息确定需要在所述操作***运行的特定场景的业务应用;
基于所述操作***运行所述业务应用,对所述业务应用进行测试;
根据所述业务应用的测试结果确定所述操作***的测试结果。
2.根据权利要求1所述的方法,其特征在于,所述根据环境信息确定需要在所述操作***运行的特定场景的业务应用,包括:
获取需要运行所述操作***的服务器对应的环境信息;
根据所述环境信息确定需要在所述操作***运行的特定场景的业务应用;
其中,所述业务应用包括多个应用以及所述多个应用的业务行为。
3.根据权利要求1或2所述的方法,其特征在于,
所述业务应用包括:在上一个版本的操作***中正常运行的业务应用。
4.根据权利要求1所述的方法,其特征在于,
所述根据所述业务应用的测试结果确定所述操作***的测试结果,包括:
根据操作***的测试集对所述操作***进行测试,得到测试集的测试结果;根据业务应用的测试结果和测试集的测试结果确定所述操作***的测试结果。
5.根据权利要求4所述的方法,其特征在于,所述根据业务应用的测试结果和测试集的测试结果确定所述操作***的测试结果,包括:
若业务应用的测试结果为异常,确定操作***的测试结果为异常;或者,
若测试集的测试结果为异常,确定所述操作***的测试结果为异常;或者,
若所述业务应用的测试结果为异常,且所述测试集的测试结果为异常,则确定所述操作***的测试结果为异常;或者,
若所述业务应用的测试结果为正常,且所述测试集的测试结果为正常,则确定所述操作***的测试结果为正常。
6.根据权利要求1或5所述的方法,其特征在于,所述根据所述业务应用的测试结果确定所述操作***的测试结果之后,所述方法还包括:
若所述操作***的测试结果为异常,则提示用户对操作***进行修复;
若所述操作***的测试结果为正常,则发布所述操作***。
7.根据权利要求1所述的方法,其特征在于,所述根据所述业务应用的测试结果确定所述操作***的测试结果之后,所述方法还包括:
在所述操作***发布后,基于发布后的所述操作***运行业务应用;
对运行的该业务应用进行测试,得到该业务应用的测试结果。
8.根据权利要求1所述的方法,其特征在于,所述操作***包括:Linux操作***、Windows操作***、Android操作***、iOS操作***。
9.一种操作***测试方法,其特征在于,所述方法包括:
在待测试的操作***发布之前,根据部署环境信息确定需要在所述操作***运行的多个业务应用,将业务应用的应用场景前置到所述操作***的测试环境,作为所述操作***的测试环境中的测试环节,业务应用的测试集与所述操作***的测试集形成测试集;业务应用包括多个应用以及多个应用的业务行为;
基于所述操作***运行所述业务应用、所述业务应用的测试流程;
根据所述业务应用的测试结果确定所述操作***的测试结果。
10.一种操作***测试装置,其特征在于,所述装置包括:
获取模块,用于在待测试的操作***发布之前,根据环境信息确定需要在所述操作***运行的特定场景的业务应用;
测试模块,用于基于所述操作***运行所述业务应用,并对所述业务应用进行测试;
确定模块,用于根据所述业务应用的测试结果确定操作***的测试结果。
11.根据权利要求10所述的装置,其特征在于,
所述获取模块根据环境信息确定需要在所述操作***运行的业务应用时具体用于:获取需要运行所述操作***的服务器对应的环境信息;
根据所述环境信息确定需要在所述操作***运行的特定场景的业务应用;
其中,所述业务应用包括多个应用以及所述多个应用的业务行为;
所述业务应用包括:在上一个版本的操作***中正常运行的业务应用。
12.一种操作***测试装置,其特征在于,所述装置包括:
获取模块,用于在待测试的操作***发布之前,根据部署环境信息确定需要在所述操作***运行的多个业务应用,将业务应用的应用场景前置到所述操作***的测试环境,作为所述操作***的测试环境中的测试环节,业务应用的测试集与所述操作***的测试集形成测试集;业务应用包括多个应用以及多个应用的业务行为;
测试模块,用于基于所述操作***运行所述业务应用、所述业务应用的测试流程;
确定模块,用于根据所述业务应用的测试结果确定操作***的测试结果。
13.一种操作***测试设备,其特征在于,包括:处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:在待测试的操作***发布之前,根据环境信息确定需要在所述操作***运行的特定场景的业务应用;
基于所述操作***运行所述业务应用,对所述业务应用进行测试;
根据所述业务应用的测试结果确定所述操作***的测试结果。
CN201810437553.1A 2018-05-09 2018-05-09 一种操作***测试方法、装置及其设备 Active CN110471828B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810437553.1A CN110471828B (zh) 2018-05-09 2018-05-09 一种操作***测试方法、装置及其设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810437553.1A CN110471828B (zh) 2018-05-09 2018-05-09 一种操作***测试方法、装置及其设备

Publications (2)

Publication Number Publication Date
CN110471828A true CN110471828A (zh) 2019-11-19
CN110471828B CN110471828B (zh) 2023-05-26

Family

ID=68503683

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810437553.1A Active CN110471828B (zh) 2018-05-09 2018-05-09 一种操作***测试方法、装置及其设备

Country Status (1)

Country Link
CN (1) CN110471828B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111611159A (zh) * 2020-05-13 2020-09-01 麒麟软件有限公司 一种Linux操作***测试认证流程管理方法
CN115952080A (zh) * 2022-12-05 2023-04-11 安芯网盾(北京)科技有限公司 一种agent极限情况稳定性测试方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009002997A2 (en) * 2007-06-26 2008-12-31 Topcoder, Inc. System and method for distributed software testing
US20100100872A1 (en) * 2008-10-22 2010-04-22 Oracle International Corporation Methods and systems for implementing a test automation framework for testing software applications on unix/linux based machines
CN104182343A (zh) * 2014-08-22 2014-12-03 工业和信息化部电子第五研究所 操作***的性能测试方法及装置
CN104360952A (zh) * 2012-03-02 2015-02-18 北京奇虎科技有限公司 一种软件测试***及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009002997A2 (en) * 2007-06-26 2008-12-31 Topcoder, Inc. System and method for distributed software testing
US20100100872A1 (en) * 2008-10-22 2010-04-22 Oracle International Corporation Methods and systems for implementing a test automation framework for testing software applications on unix/linux based machines
CN104360952A (zh) * 2012-03-02 2015-02-18 北京奇虎科技有限公司 一种软件测试***及方法
CN104182343A (zh) * 2014-08-22 2014-12-03 工业和信息化部电子第五研究所 操作***的性能测试方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111611159A (zh) * 2020-05-13 2020-09-01 麒麟软件有限公司 一种Linux操作***测试认证流程管理方法
CN115952080A (zh) * 2022-12-05 2023-04-11 安芯网盾(北京)科技有限公司 一种agent极限情况稳定性测试方法及装置
CN115952080B (zh) * 2022-12-05 2023-08-29 安芯网盾(北京)科技有限公司 一种agent极限情况稳定性测试方法及装置

Also Published As

Publication number Publication date
CN110471828B (zh) 2023-05-26

Similar Documents

Publication Publication Date Title
US11159392B2 (en) Managing service deployment
US9307342B2 (en) Dynamic rendering for software applications
US20220318945A1 (en) Optimizing compilation of shaders
CN107644286B (zh) 工作流处理方法及装置
US20170277374A1 (en) Visual regression analysis
CN106648556B (zh) 前后端集成开发测试的方法及装置
Griebe et al. A model-based approach to test automation for context-aware mobile applications
CN106874028A (zh) 应用部署方法和装置
US20230393968A1 (en) Software application build testing
CN110471828A (zh) 一种操作***测试方法、装置及其设备
CN104809054A (zh) 实现程序测试的方法和***
Silaparasetty et al. The tensorflow machine learning library
CN107908552A (zh) 一种基于链接的测试方法、装置及设备
US9262304B2 (en) Methods and systems for testing interactions between mobile applications
CN106775608A (zh) 独立***进程的实现方法和装置
US20220206773A1 (en) Systems and methods for building and deploying machine learning applications
CN115543323B (zh) 一种页面开发方法及装置
CN107885659A (zh) 对客户端的请求模拟响应的方法及装置、设备
CN112860224B (zh) 一种函数执行环境构建方法、装置、电子设备及存储介质
CN113703728B (zh) 一种辅助研发的微组件业务处理方法、装置以及设备
CN109324966B (zh) 一种测试脚本的生成和执行方法及装置
CN105786566A (zh) 模拟器的cpu核数调整方法及***
CN117331830A (zh) 单元测试方法、装置、电子设备及可读存储介质
CN115422055A (zh) 一种测试用于开发应用程序的sdk的方法及设备
CN115794603A (zh) 一种资源处理方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant