CN107710215B - 在测试设施中的移动计算装置安全的方法和设备 - Google Patents

在测试设施中的移动计算装置安全的方法和设备 Download PDF

Info

Publication number
CN107710215B
CN107710215B CN201680034522.0A CN201680034522A CN107710215B CN 107710215 B CN107710215 B CN 107710215B CN 201680034522 A CN201680034522 A CN 201680034522A CN 107710215 B CN107710215 B CN 107710215B
Authority
CN
China
Prior art keywords
computing device
software
testing
security
test
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.)
Active
Application number
CN201680034522.0A
Other languages
English (en)
Other versions
CN107710215A (zh
Inventor
普拉泰厄斯·帕特奈克
乔丹·卡尔森
金政协
弗兰克·法尔赞
安迪·昌
艾玛·E·马什
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN107710215A publication Critical patent/CN107710215A/zh
Application granted granted Critical
Publication of CN107710215B publication Critical patent/CN107710215B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/143Reconfiguring to eliminate the error with loss of software functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

提供了用于提供测试作为服务的方法和设备。加载计算装置可以接收将测试计算装置还原至已知软件配置的请求。所述加载计算装置在接收到还原所述测试计算装置的请求之后可以至少通过以下操作来还原所述测试计算装置:获取存储所述已知软件配置的软件映像,其中,所述软件映像包括具有与所述多个软件部件相关联的安全场境的安全场境数据,并且其中,特定安全场境可以具有身份、角色、和域或者类型;至少将所获取的软件映像的一部分存储到所述测试计算装置上,并且在至少将所获取的软件映像的一部分存储到所述测试计算装置上之后,使用所述安全场境数据来设置存储在所述测试计算装置上的所获取的软件映像的安全场境。

Description

在测试设施中的移动计算装置安全的方法和设备
技术领域
本申请要求2015年10月30日提交的标题为“Methods and Apparatus for MobileComputing Device Security in Testing Facilities”的美国专利申请No.14/928,961的优先权,其内容以引用的方式全部并入本文。
背景技术
除非本文另外指出,否则在本部分中描述的材料不是本申请中的权利要求书的现有技术,并且不因为被包括在本部分中就被认为是现有技术。
近来,已经开发了许多软件应用,以供在移动计算装置上使用。为了增加利用这些软件应用的积极用户体验的可能性,可以在一个或者多个测试会话期间测试软件应用。这些测试会话可以包括对涉及在各种装置上以及在各种操作条件下的应用执行的测试的测试结果的分析。可以使用测试结果和随后的分析来查找和解决软件缺陷或者与应用相关联的其它问题和/或来提高应用性能。
发明内容
在一个方面中,提供了一种方法。加载计算装置接收将测试计算装置还原至已知软件配置的请求。已知软件配置包括测试计算装置的多个软件部件。加载计算装置在接收到将测试计算装置还原至已知软件配置的请求之后还原测试计算装置。为了还原加载测试装置,加载测试装置至少:从计算机可读存储装置获取软件映像,该软件映像存储已知软件配置的至少一部分,其中,软件映像包括具有与多个软件部件相关联的一个或者多个安全场境的安全场境数据,以及其中,一个或者多个安全场境中的特定安全场境包括身份、角色、和域;至少将所获取的软件映像的多个软件部件存储到测试计算装置上,并且在将多个软件部件存储到测试计算装置上之后,使用与软件映像一起存储的安全场境数据为存储在测试计算装置上的多个软件部件设置一个或者多个安全场境。
在另一方面中,提供了一种计算装置。计算装置包括一个或者多个处理器和数据存储装置。数据存储装置配置为存储至少一个软件映像和可执行指令。可执行指令在由一个或者多个处理器执行时使计算装置执行功能。功能包括:接收将测试计算装置还原至包括测试计算装置的多个软件部件的已知软件配置的请求;并且在接收到将测试计算装置还原至已知软件配置的请求之后,至少通过以下操作将测试计算装置还原至已知软件配置:从计算机可读存储装置获取软件映像,该软件映像存储已知软件配置的至少一部分,其中,软件映像包括具有与多个软件部件相关联的一个或者多个安全场境的安全场境数据,以及其中,一个或者多个安全场境中的特定安全场境包括身份、角色、和域;至少将所获取的软件映像的多个软件部件存储到测试计算装置上,并且在将多个软件部件存储到测试计算装置上之后,使用与软件映像一起存储的安全场境数据为存储在测试计算装置上的多个软件部件设置一个或者多个安全场境。
在另一方面中,提供了一种产品。该产品包括存储有指令的有形计算机可读介质。指令响应于由计算装置的一个或者多个处理器执行而使计算装置执行功能。功能包括:接收将测试计算装置还原至包括测试计算装置的多个软件部件的已知软件配置的请求;并且在接收到将测试计算装置还原至已知软件配置的请求之后,至少通过以下操作将测试计算装置还原至已知软件配置:从计算机可读存储装置获取软件映像,该软件映像存储已知软件配置的至少一部分,其中,软件映像包括具有与多个软件部件相关联的一个或者多个安全场境的安全场境数据,以及其中,一个或者多个安全场境中的特定安全场境包括身份、角色、和域;至少将所获取的软件映像的多个软件部件存储到测试计算装置上,并且在将多个软件部件存储到测试计算装置上之后,使用与软件映像一起存储的安全场境数据为存储在测试计算装置上的多个软件部件设置一个或者多个安全场境。
在另一方面中,提供了一种设备。该设备包括:用于接收将测试计算装置还原至包括测试计算装置的多个软件部件的已知软件配置的请求的装置;和用于在确定要将测试计算装置还原至已知软件配置之后,将测试计算装置还原至已知软件配置的装置。用于在确定要将测试计算装置还原至已知软件配置之后,将测试计算装置还原至已知软件配置的装置包括:用于从计算机可读存储装置获取软件映像的装置,该软件映像存储已知软件配置的至少一部分,其中,软件映像包括具有与多个软件部件相关联的一个或者多个安全场境的安全场境数据,以及其中,一个或者多个安全场境中的特定安全场境包括身份、角色、和域;用于至少将所获取的软件映像的多个软件部件存储到测试计算装置上的装置;以及用于在将多个软件部件存储到测试计算装置上之后,使用与软件映像一起存储的安全场境数据为存储在测试计算装置上的多个软件部件设置一个或者多个安全场境的装置。
附图说明
图1是根据示例实施例的计算装置的框图。
图2A是根据示例实施例的另一计算装置的框图。
图2B是根据示例实施例的方法的流程图。
图3A是根据示例实施例的再一计算装置的框图。
图3B是根据示例实施例的另一种方法的流程图。
图4描绘了根据示例实施例的又一计算装置的用户界面,其中,用户界面配置为请求测试会话。
图5示出了根据示例实施例的测试设施中的示例测试会话。
图6描绘了根据示例实施例的再一计算装置的另一用户界面,其中,用户界面配置为在图5的测试会话之后将测试设施中的计算装置还原至已知软件环境。
图7描绘了根据示例实施例的分布式计算架构。
图8A是根据示例实施例的又一计算装置的框图。
图8B描绘了根据示例实施例的基于云的服务器系统。
图9是根据示例实施例的再一种方法的流程图。
具体实施方式
被称为移动测试作为服务的软件工程方法可以使得能够更好地测试计算装置(包括移动计算装置)的软件。移动测试作为服务可以使用网络或者“云”资源来测试移动计算装置的软件应用。例如,用户可以将软件应用包上传到移动测试云服务,以便测试软件应用包的功能和/或性能。可以在驻留在作为服务支持移动测试的测试设施中的一个或者多个移动计算装置上部署和测试所上传的软件。
可以在测试设施处共享移动计算装置,以使得能够经济地提供用于应用测试的各种移动计算装置。在测试会话期间,只有一个测试者(或者测试实体)可以访问特定移动计算装置。特定移动计算装置可以配置为使用多个版本的操作系统(诸如,移动操作系统)来运行。移动操作系统可以支持移动计算装置的基本功能,其中,基本功能可以包括,但不限于,调度用于执行的软件(应用)、使用移动计算装置的一个或者多个处理器和数据存储装置来执行软件、分配移动计算装置的资源(例如,存储器、输入/输出装置、传感器)、以及控制移动计算装置的输入/输出装置、传感器、和/或其它部件。在一些示例中,其它操作系统也可以这些基本功能,诸如,可以针对平板计算装置使用的平板操作系统、可以针对台式计算装置使用的台式操作系统、以及可以针对移动和/或不可移动计算装置使用的其它操作系统。
操作系统的一些版本可能具有已知的漏洞。可以在操作系统的后续版本中处理这些漏洞。然而,在特定版本的操作系统上的测试会话可能会遇到特定操作系统版本的已知漏洞。用户可以利用漏洞来实现根访问和/或获取在用于提供移动测试作为服务的装置上的根账户。这种用户可以留下有害软件,诸如,恶意软件和特洛伊木马病毒,其可能不会移除并且因此可以在稍后的测试会话期间执行。具有根访问的用户可以改变由装置的操作系统使用的数据、文件、和/或分区,诸如,系统(system)、无线电(radio)、和引导(boot)分区。例如,用户可以利用有问题的软件来侵染和/或替换各种关键系统命令;诸如,一个或者多个计算机病毒和/或其它软件,该其它软件模仿或者“假冒”替换的系统命令,但这种软件在被执行时在装置和/或其它装置上启动攻击。
本文描述的过程可以为测试设施提供更好的安全,该测试设施为移动和/或不可移动计算装置提供移动测试作为服务和/或测试作为服务,包括涉及有问题的软件的测试。该过程可以包括拒绝可疑测试的抢占式技术、包含信息损失的预防技术、以及清除在测试会话期间使用/测试的软件的共享移动计算装置的反应式技术。
即使在装置可能很容易受到在测试会话期间引入的有问题的软件的攻击的情况下,这些过程和技术也使得能够安全重用在提供测试作为服务的测试设施中的装置。在将装置还原至已知的安全软件配置时,可以避免各个测试实体受到有问题的软件的攻击,并且各个测试实体可以执行专门为已知的软件配置设计的测试。在一些实施例中,可以在由任何制造商制造的任何装置类型上使用这些过程和技术,使得测试设施能够在用于提供测试作为服务的所有装置上使用相同的技术。另外,可以在移动计算装置和不可移动计算装置上使用这些过程和技术。
用于保护测试设施的抢占式和预防技术
用于拒绝可疑测试的抢占式技术可以包括:基于具有软件服务的请求实体的历史来检查请求实体的信誉以使用测试设施。例如,如果历史指示请求实体已经试图使用有问题的软件和/或获取对测试设施中的(多个)装置的根访问,则可以拒绝使用测试设施的请求。作为另一示例,如果历史指示请求实体具有在采用测试设施时使用合理的测试过程的信誉,则可以接受请求或者至少进一步考虑请求。
另一抢占式技术可以包括:检查请求实体的信用历史和/或其它财务记录。例如,如果请求实体尝试使用欺诈、盗取、或者透支的信用卡来支付移动测试服务,则可以拒绝使用测试设施的请求。作为另一示例,如果信用检查和/或其它基于财务的测试指示请求实体具有充足的资金和/或是用于支付移动测试服务的风险小的信用对象,则可以接受请求或者至少进一步考虑请求。
另一抢占式技术可以包括:检查待测试的软件,包括与待测试的软件结合使用的任何测试包。如果未能检出待测试的软件(即,软件是或者可能是可疑软件),则可以拒绝使用测试设施的请求。另外,如果检出待测试的软件,则可以接受请求或者至少进一步考虑请求。
包含信息损失的预防技术可以包括:在测试会话完成之后不久或者立即禁用与在测试会话期间使用的装置的通信。可以使用硬件和/或软件技术来禁用通信;例如,移动物理按钮或者开关以禁用装置通信,致动、触摸、和/或选择由图形用户界面提供的“飞行模式”或者类似按钮,以至少暂时地禁用装置通信,向装置发送或者提供远程命令(或者命令),该远程命令(或者命令)在被执行时将禁用装置通信。禁用的通信可以包括无线和/或有线通信。用于禁用通信的另一技术是移除用户身份模块(SIM)和/或凭证或者不利用用户身份模块(SIM)和/或凭证来访问电话和/或其它网络。而且,可以禁用特定装置(诸如,照相机和麦克风)以分别避免存储和/或传送图像和声音。例如,可以将照相机和/或麦克风关闭以(暂时)禁用。
图1是根据示例实施例的计算装置100的框图。计算装置100可以包括下面在图8A的上下文中讨论的计算装置800(包括但不限于,一个或者多个处理器803和数据存储装置,诸如,数据存储装置804)的一些或者全部方面。计算装置100的数据存储装置可以存储计算机可读指令,诸如下面在图8A的上下文中讨论的计算装置800的计算机可读指令806。如图1所图示,计算装置100可以配置为至少执行方法102的特征。例如,计算装置100的数据存储装置可以存储计算机可执行指令,该计算机可执行指令在由计算装置100的一个或者多个处理器执行时,可以使计算装置100至少执行方法102的特征。
方法102可以从框110中开始,其中,计算装置100可以接收使用测试设施的请求。该请求可以包括请求者身份RI、请求财务信息RFI、和/或待测试的软件ST。
在框120中,计算装置100可以确定请求者身份RI是否在“请勿测试”列表上。请勿测试列表可以列出先前在测试设施处尚未成功和/或已经成功发送和/或测试可疑应用的人和/或实体。也可以将其它人和/或实体添加至请勿测试列表。如果请求者身份RI在请勿测试列表上,则计算装置100可以前往框170。另外,请求者身份RI不在请勿测试列表上,计算装置100可以前往框130。
在框130中,计算装置100可以确定请求财务信息RFI是否合法和是否表明请求者身份RI能够负担得起使用测试设施的请求。例如,计算装置100可以检查来自信用检查的信息和/或金融机构的关于请求者身份RI的一个或者多个查询和/或请求财务信息RFI以确定请求财务信息RFI是否合法。例如,如果请求财务信息RFI涉及欺诈、盗用、或者透支的信用卡,则可以拒绝使用测试设施的请求。作为另一示例,如果请求身份RI的信用检查和/或其它基于财务的测试和/或请求财务信息RFI指示请求身份RI具有充足的资金和/或是用于支付移动测试服务的风险小的信用对象,则可以接受请求或者至少进一步考虑请求。
如果需要附加信息来确定请求身份RI是否具有充足的资金和/或是否是用于支付移动测试服务的风险小的信用对象,则计算装置100可以获取该附加信息。例如,如果RFI是与金融机构和/或发卡单位相关联的信用卡或者其它信用工具,则计算装置100可以向金融机构和/或发卡单位查询以确定信用卡或者其它信用工具是否合法和/或信用卡或者其它信用工具是否具有合适的余额来支付使用测试设施的请求。换言之,计算装置100可以尝试使用请求财务信息RFI来支付使用测试设施的请求,如果该尝试成功,则请求者身份RI可以负担得起使用测试设施的请求;否则,请求者身份RI无法负担使用测试设施的请求或者尚未提供合适的财务信息来确保能够支付使用测试设施的请求。
如果计算装置100确定请求财务信息RFI合法并且确定请求财务信息RFI表明请求者身份RI可以负担得起使用测试设施的请求,则计算装置100可以前往框140。否则,计算装置100可以前往框170。
在框140,计算装置100可以确定待测试的软件ST是否是或者可能是可疑软件。例如,可以使用一个或者多个软件检查工具来检查待测试的软件ST。作为一个示例,一个或者多个软件检查工具可以执行待测试的软件的静态分析;例如,静态分析工具,诸如,但不限于,androguard、MarMoT、和Bouncer。如果静态分析指示待测试的软件具有可疑签名,则可以将待测试的软件ST视作可疑软件或者至少可能是可疑软件。如果计算装置100可以确定待测试的软件ST是或者可能是可疑软件,则计算装置100可以前往框170。否则,待测试的软件ST至少看起来不是可疑软件,并且计算装置100可以前往框150。
在框150,计算装置100可以确定待测试的软件ST是否通过一个或者多个病毒检查。例如,待测试的软件ST可以经受一个或者多个病毒检查。可选地,在框140和/或框150中,也可以使用另一软件检查工具或者工具来检查待测试的软件。如果一个或者多个病毒检查指示在待测试的软件ST中存在有问题的软件和/或指示待测试的软件ST是有问题的软件,则计算装置100可以确定待测试的软件ST未通过一个或者多个病毒检查,并且前往框170。否则,计算装置100可以确定待测试的软件ST确实通过一个或者多个病毒检查,并且前往框160。
在框160中,计算装置100可以指示已经接受了在框110处接收到的请求。在一些实施例中,可以将待测试的软件ST存储在一个或者多个特定位置中,以便在当前批准的测试会话之前,在该过程时或者稍后,将其加载到测试设施中的一个或者多个装置上。在其它实施例中,在完成框160的过程之后,可以完成方法102。在又一实施例中,在完成框160的过程之后,计算装置可以重新开始方法102;例如,通过从框160前往框110并且等待使用测试设施的另一请求。
在框170中,计算装置100可以指示已经拒绝了在框110处接收到的请求。在一些实施例中,在完成框170的过程之后,可以完成方法102。在其它实施例中,在完成框170的过程之后,计算装置100可以重新开始方法102;例如,通过从框170前往框110并且等待使用测试设施的另一请求。
用于保存在测试会话中使用的装置的快照的技术
图2A是根据示例实施例的计算装置200的框图。计算装置200可以包括下面在图8A的上下文中讨论的计算装置800(包括但不限于,一个或者多个处理器803和数据存储装置,诸如,数据存储装置804)的一些或者全部方面。计算装置200的数据存储装置可以存储计算机可读指令(诸如,计算机可读指令806)。如图2A所图示,计算装置200可以配置为至少执行方法202的特征。例如,计算装置200的数据存储装置可以存储计算机可执行指令,该计算机可执行指令在由计算装置200的一个或者多个处理器执行时可以使计算装置200至少执行方法202的特征。
方法202可以从框210中开始,其中,计算装置200可以从装置D的存储装置SD的分区列表L接收保存数据的请求。例如,装置D可以是移动计算装置。作为另一示例,装置D可以是不可移动计算装置。所保存的数据可以是装置D的一个或者多个分区的快照的一部分或者全部;即,可以使用方法202至少制作装置D的至少一个分区的快照的一部分。如本文所使用的,术语“列表L”不需要是指一个或者多个特定数据结构;例如,可以将列表L实施为列表、链表、数组、对象、多个对象、树、和/或一个或者多个其它数据结构。在一些实施例中,列表L可以包括关于列表L中的分区的附加信息和/或与附加信息相关联;例如,关于列表L中的分区的位置、用于存储列表L中的分区的软件和/或数据的位置、与列表L中的分区相关联的存储技术、列表L中的分区的大小等的信息。
在框220中,计算装置200可以确定在列表L中是否存在待处理的多个分区。如果在列表L中存在待处理的多个分区,则计算装置200可以前往框220。否则,方法202可以终止。
在框230中,计算装置200可以从列表L中将分区P选择为列表L的当前分区(例如,待处理的分区)。
在框240中,计算装置200可以确定是否要对分区P进行逐文件或者逐字节复制。为了做出该确定,计算装置200可以检索来自数据库的信息,检索来自列表L或者另一相关联的列表的信息,使用编程逻辑在不考虑数据的情况下基于编程逻辑做出一个或者多个确定(即,一个或者多个硬编码确定),或者以其他方式确定是否要对分区P进行逐文件或者逐字节复制。
如果计算装置200确定要对分区P进行逐字节复制,则计算装置可以前往框250;否则,计算装置200可以确定要对分区P进行逐文件复制并且前往框260。
在框250中,计算装置200可以对分区P进行逐字节复制。例如,计算装置200可以执行命令和/或脚本,以执行将数据逐字节地从一个或者多个源位置复制到一个或者多个目的地位置的“dd”或者等效命令。在该示例中,源位置是装置D的存储装置SD的分区P,并且目的地位置是分区P的副本BBC。副本BBC可以是一个或者多个软件映像、文件、存储器区域、和/或包含分区P的逐字节副本的其它数据存储实体。
在框252中,计算装置200可以将副本BBC保存到存储位置L1。例如,存储位置L1可以包括配置为存储装置D的一个或者多个已知软件配置的软件和/或数据的计算机可读存储装置。例如,位置L1可以是和/或包括以下中的一个或者多个:计算装置200的文件、计算装置200的存储器区域、计算装置200的分区或者其它数据存储实体、另一计算装置(例如,存储服务器、云存储装置、数据库服务器、和/或具有对充足的数据存储装置的访问权限以至少存储副本BBC的计算装置)上的文件、另一计算装置的存储器区域、另一计算装置的分区和其它数据存储实体、存储装置(例如,一个或者多个磁盘驱动器、存储区域网络(SAN)、和/或独立磁盘冗余阵列(RAID))的文件、分区、存储实体、和/或其它存储区域。在特定情况下,存储位置L1可以是或者包括一个或者多个计算装置和/或一个或者多个存储装置,该一个或者多个存储装置被指定为存储逐字节副本、文件副本、安全场境信息、和/或测试设施中的装置的其它软件和/或数据。
在一些实施例中,可以组合框250和252的过程。例如,在一个示例中,计算装置200可以仅通过在位置L1处明确地制作副本BBC将分区P的逐字节副本存储到位置L1。在完成框252的过程之后,计算装置200可以前往框270。
在框260中,计算装置200可以获得分区P上的一个或者多个文件F1、F2、…Fn的安全场境信息SCI。在一些情况下,装置D可以提供安全特征。然后,安全场境信息SCI可以是和/或涉及可以由装置D的安全特征使用的安全场境;在一个示例中,安全特征可以由装置D的操作系统(诸如,移动操作系统、平板操作系统、台式操作系统、或者另一操作系统)提供。
例如,装置D的操作系统可以对装置D的文件和(可选地)其它软件实体执行访问控制。然后,已知软件配置的分区可以存储经受访问控制(诸如,自主和/或强制访问控制)的文件和/或其它对象。自主访问控制可以基于主体(例如,装置D的用户、线程/进程)和/或主体所属的组的身份。如果具有特定访问权限的主体和/或组可以将特定访问权限传递至其它主体和/或组,则可以将访问控制视作自主访问控制,并且例如,可以间接地通过其它中间主体和组来传递特定访问权限。
强制访问控制可以将主体限制为仅对对象(诸如,文件、文件夹、目录、和/或者其它软件实体(例如,端口、共享存储器分段、输入/输出(I/O)装置))执行特定操作。当主体尝试对经受强制访问控制的对象进行操作时,授权规则可以基于“安全场境”来检查安全策略中的安全属性,以确定是否可以对对象执行操作。
可以将安全策略存储在策略文件中和/或安全策略可以是默认安全策略。安全策略可以将与策略相关联的安全规则应用于与对象和/或主体相关联的安全场境,以确定主体是否可以对对象执行特定操作。例如,假设用户U1开始进程P1(也称为主体),该进程P1将从文件F1(也称为对象)读取数据的命令发送至具有文件F1的主动安全策略的操作系统。操作系统可以应用一个或者多个安全规则来检查进程P1和文件F1的安全场境,以确定与用户U1相关联的进程P1是否可以从文件F1读取数据。如果所有安全规则指示进程P1可以从文件F1读取数据,则操作系统可以允许进程P1从文件F1读取所请求的数据。如果至少一个安全规则指示进程P1不能从文件F1读取数据,则操作系统将拒绝进程P1从文件F1读取数据。
安全场境可以与主体或者对象相关联。主体(诸如,用户或者其它实体)可以在登录时被分配有安全场境。在一些实施例中,用户或者其它实体可以在登录之后改变安全场境。如果用户或者其它实体开始进程或者线程,则该进程或者线程可以是继承主体的安全场境的主体。对象(诸如,文件)可以具有其自身的安全场境。在一些示例中,当主体执行表示成文件的命令时,命令的安全场境的一些或者全部方面或者对象可以取代执行的用户或者其它实体或者主体的安全场境。
在一些示例中,安全场境可以包括:身份、一个或者多个角色、一个或者多个域/类型、以及一个或者多个级别。安全场境的身份可以指定用于安全目的的身份。该身份可以与用于访问操作系统的身份(诸如,登录名或者用户核心身份)相关联。例如,用户“U1”可以用名称U1和密码登录,并且在成功完成之后,与“user_u”的安全场境身份相关联。在用户U1、U2、和U3中的每一个与安全场境身份“user_u”相关联的情况下,其它用户(诸如,用户U2和U3)可以共享“user_u”的安全身份。作为另一示例,具有根访问的用户“R1”可以被分配有安全场境身份“root_u”。
安全场境的各个身份可以与一个或者多个安全场境角色相关联。然后,各个安全场境角色与特定安全场境域或者类型相关联。然后,装置D的操作系统可以使用安全场境域或者类型来确定针对对象的哪些访问权限(若存在)可用于在特定安全场境域或者类型中运行的主体。例如,假设用户U1具有安全场境身份“user_u”,并且用户R1具有如上文讨论的安全场境身份“root_u”。“user_u”身份可以与表示非管理用户的角色的“user_r”的安全场境角色相关联。“root_u”身份可以与两个安全场境角色相关联:“user_r”和“sysadm_r”表示系统管理员的角色。安全场境角色“user_r”可以分配有安全场境域或者类型“user_t”或者与安全场境域或者类型“user_t”相关联,并且角色“sysadm_r”可以分配有安全场境域或者类型“sysadm_t”或者与安全场境域或者类型“sysadm_t”相关联。然后,因为用户U1处于不具备对“sysadm_t”域或者类型中的文件的访问权限的“user_r”角色,所以如果用户U1请求访问具有“sysadm_t”域的文件“root_only”,则该请求可以被操作系统拒绝。如果用户R1在处于“uer_r”角色时请求访问文件“root_only”,则该请求也会被操作系统拒绝。在这种情况下,用户R1可以将角色改变为“sysadm_r”,重复访问“root_only”文件的请求,随后获得对“root_only”文件的访问权限。
安全场境还可以指定一个或者多个安全场境级别。更具体地,一些移动和/或其它操作系统可以提供基于对象的指定安全场境级别和主体的对应安全场境级别来控制对对象的访问权限的机密性保护策略。更多、更少、和/或不同的信息也可以在安全场境中。
可以使用操作系统列表文件命令(诸如,“ls-Z”)来列出对象的安全场境,该操作系统列表文件命令使能列出安全场境信息以及关于一个或者多个文件或者其它对象的其它信息。安全场境信息可以是安全场境标签的形式。安全场境标签可以是“id:role:type:level”的形式,其中,id是安全场境标识符,role是安全场境角色,type是安全场境域或者类型,以及level是一个或者多个安全场境级别。例如,命令“ls–Zfile1/usr/bin/ssh”可以具有示例输出,诸如:
unconfined_u:object_r:user_home_t:s0file1
sys_u:object_r:ssh_exec_t:s0-s4/usr/bin/ssh
对象“file1”的安全场境标签“unconfined_u:object_r:user_home_t:s0”可以指示对象文件1具有“unconfined_u”的安全场境身份、“object_r”的角色、“user_home_t”的域或者类型、以及“s0”的安全场境级别。对象“/usr/bin/ssh”的安全场境标签“sys_u:object_r:ssh_exec_t:s0-s4”可以指示对象/usr/bin/ssh具有“sys_u”的安全场境身份、“object_r”的角色、“ssh_exec_t”的域或者类型、以及指示从将s0至s4包含在内的安全场境级别的范围的“s0-s4”的安全场境级别。可以使用操作系统的列表进程命令为进程和/或线程提供相似的安全信息;例如,“ps–Z”。
然后,为了保存关于一个或者多个对象的安全场境信息,可以根据装置D和/或装置D的操作系统,使用操作系统列表文件命令(诸如,“ls”命令或者等效命令)来获取安全场境信息。然后,可以解析或者处理列表文件命令的输出,以获取一个或者多个对象的安全场境标签。然后,对于一个或者多个对象的特定对象O1,可以依次解析和/或处理对象O1的安全场境标签SCL(O1),以获取基于O1的安全场境标签来改变安全场境身份、角色、域/类型、和/或级别的一个或者多个命令的数据。然后,可以将改变安全场境信息的一个或者多个命令添加至脚本或者其它软件,这些命令在被执行时基于安全场境标签来还原对象O1的安全场境。
例如,假设要将上述文件“file1”和“/usr/bin/ssh”保存为快照的一部分。然后,文件1的列表文件输出可以是(如上文指示的):
unconfined_u:object_r:user_home_t:s0file1
可以将输出解析成安全场境标签“unconfined_u:object_r:user_home_t:s0”和对象名“file1”。可以解析文件1的安全场境标签以确定文件1的安全场境身份是“unconfined_u”、安全场境角色是“object_r”、安全场境域或者类型是“user_home_t”、以及安全场境级别是“s0”。随后,可以将“chcon”命令的实例添加至脚本,以将“file1”的安全场境设置为用标签中的安全场境指示的安全场境。添加至脚本的命令的实例可以是:
chcon–u unconfined_u file1#assign“unconfined_u”id to file1fromlabel
chcon–r object_r file1#assign“object_r”role to file1from label
chcon–t user_home_t file1#assign“user_home_t”type to file1fromlabel
chcon–l s0file1#assign level“s0”to file1from label
作为另一实例,以下命令可以执行与上述4个命令相同的功能:
chcon unconfined_u:object_r:user_home_t:s0file1
然后,/usr/bin/ssh的列表文件输出可以是(如上文指示的):
sys_u:object_r:ssh_exec_t:s0-s4/usr/bin/ssh
可以将输出解析成安全场境标签“sys_u:object_r:ssh_exec_t:s0-s4”和对象名“/usr/bin/ssh”。然后,脚本可以包括将/usr/bin/ssh的安全场境还原至如引用的安全场境标签中指定的安全场境的以下命令;例如,
chcon sys_u:object_r:ssh_exec_t:s0-s4/usr/bin/ssh
安全场境信息SCI可以是或者可以包括:用于文件F1、F2、…Fn的一个或者多个的安全场境名称;文件F1、F2、…Fn中的一个或者多个的安全场境角色;用于文件F1、F2、…Fn中的一个或者多个的安全场境类型;用于文件F1、F2、…Fn中的一个或者多个的安全场境域;用于文件F1、F2、…Fn中的一个或者多个的安全场境级别;用于文件F1、F2、…Fn中的一个或者多个的安全场境标签;和/或用于文件F1、F2、…Fn中的一个或者多个的其它安全场境信息。安全场境信息SCI可以被存储作为文件F1、F2、...Fn中的一个或者多个的一部分和/或与文件F1、F2、...Fn中的一个或者多个分开。例如,可以将F1、F2、…Fn的安全场境信息SCI存储在单独的文件(诸如,安全场境信息文件)中;存储在脚本或者与文件F1、F2、...Fn的安全场境信息有关的一个或者多个命令的其它集合中;和/或存储在关于文件F1、F2、…Fn的安全场境信息的一个或者多个数据库中。用于存储安全场境信息SCI的其它示例也是可能的。
在框262中,计算装置200可以对分区P进行逐文件复制。例如,计算装置200可以执行命令和/或脚本,以执行将文件从一个或者多个源位置复制到目的地位置的“tar”或者等效命令。在该示例中,源位置是装置D的存储装置SD的分区P,并且目的地位置是分区P的快照SP。快照SP可以是一个或者多个软件映像、文件、存储器区域、和/或至少存储分区P的逐文件副本的其它数据存储实体。
在框264中,计算装置200可以将快照SP保存到存储位置L1。位置L1可以是位置,诸如上文在框252的上下文中讨论的位置L1。在一些上下文中,可以组合框260、262、和264的一些或者全部过程。例如,可以将分区P的文件和/或用于分区P的文件的安全场境信息复制到位置L1。具体地,可以仅在位置L1处明确地形成快照SP。在完成框264的过程之后,计算装置200可以前往框270。
在框270中,计算装置200可以从列表L中移除分区P。在从列表L中移除分区P之后,计算装置200可以前往框220。
图2B是根据示例实施例的另一种方法280的流程图。方法280可以用于为测试设施(诸如,用于执行移动测试作为服务的测试设施)中的操作准备装置D。装置D可以是或者包括计算装置,诸如下面在图8A的上下文中讨论的计算装置800。在一些实施例中,装置D可以是移动计算装置,诸如,智能电话。在特定实施例中,装置D可以是不具有SIM卡或者对无线广域网(WWAN)的其它访问的移动计算装置和/或具有禁用的任何车载相机和/或其它图像捕获装置的移动计算装置。确保装置D不具备对WWAN的访问权限可以使与装置D的所有通信更有可能是本地通信,这种通信可以更容易地被测试设施控制。禁用装置D的车载相机和/或其它图像捕获装置确保在较早测试会话时安装在装置D上的软件和/或硬件不太可能捕获稍后的测试会话的图像。
方法280可以从框282中开始,其中,可以使能对装置D的调试访问。例如,可以使能引导加载器软件,该引导加载器软件可以是或者包括在执行操作系统软件之前在启动装置D时执行的软件。在一些实施例中,使能引导加载器软件可以包含:在装置D上输入按键和/或按钮按压的序列。在其它实施例中,框282可以包含:使能对装置D的远程命令访问和/或禁用针对装置D的操作系统更新。
在框284中,可以将软件添加至装置D和/或在装置D上改变软件以监控和/或使能对装置D的访问(例如,超级用户访问、外壳(shell)访问)。在一些实施例中,一些或者全部软件可以是二进制格式。
在框286中,可以将软件和/或数据添加至装置D和/或在装置D上改变软件和/或数据,使得装置D可以在测试设施中运行。例如,可以将软件和/或数据添加至装置D和/或在装置D上改变软件和/或数据以:为装置D指定一个或者多个位置,诸如,与测试设施相关和/或与执行测试的实体相关的一个或者多个位置;在充电期间抑制显示屏幕的睡眠;与其它装置(诸如,本地通信路由器或者涉及测试会话的其它装置)建立通信;为装置D和/或为各种其它操作指定名称和/或其它个人化设置。在通过完成框282、284、和286过程准备好在测试设施中使用的装置D之后,可以将装置D上的软件和数据视作处于已知软件配置,诸如,准备在测试设施中测试和/或参与移动测试作为服务的已知软件配置。
在框288中,可以使用计算装置200和/或一个或者多个其它计算装置来执行方法202以保存处于已知软件配置的装置D的分区的副本。可以将装置D的分区的副本保存在位置L1处,诸如上面在图2A的计算装置200和/或方法202的上下文中讨论的。
例如,可以将分区列表(诸如,“boot”、“radio”、“recovery”、“modem”、“modemst1”、“modemst2”、“cache”、“system”、和“userdata”)提供给计算装置200和/或其它计算装置作为分区列表L。可以使用逐字节存储技术来复制列表L中的一些分区(诸如,引导、无线电、恢复(recovery)、调制解调器(modem)、modemst1、和modemst2分区);而可以通过逐文件存储技术来复制其它或者任何剩余的分区。上面在图2A的计算装置200和方法202的上下文中讨论了逐字节和逐文件存储技术。
用于在测试之后还原装置存储配置的反应式技术
图3A是根据示例实施例的计算装置300的框图。计算装置300可以包括下面在图8A的上下文中讨论的计算装置800(包括但不限于,一个或者多个处理器803和数据存储装置,诸如,数据存储装置804)的一些或者全部方面。计算装置300的数据存储装置可以存储计算机可读指令(诸如,计算机可读指令806)。如图3A所图示,计算装置300可以配置为至少执行方法302的特征。例如,计算装置300的数据存储装置可以存储计算机可执行指令,该计算机可执行指令在由计算装置300的一个或者多个处理器执行时可以使计算装置300至少执行方法302的特征。
上述反应式技术可以清除在测试会话期间安装的软件(可疑或者其它)。可以执行方法302以执行一些或者全部反应式技术。一种反应式技术是在测试会话之后不久或者立即禁用通信,诸如上面在预防技术的上下文中讨论的。另一种反应式技术包括:维护批准的应用列表,并且可选地,在测试会话开始之前安装在装置上的未被批准的其它软件列表。然后,在测试会话之后,可以卸载未被批准的应用列表上的所有应用。又一反应式技术可以包含:移除在测试会话期间添加的数据。移除的数据包括,但不限于,与在测试会话期间安装的应用包相关联的数据、存储在记忆卡和/或临时位置上的数据、系统调试数据、在应用没有做出响应时生成的数据、在未计划/不成功的应用完成时生成的调试数据,诸如,核心转储和/或逻辑删除、和一个或者多个核心消息缓冲区中的数据。
在测试会话之后,可以使用加载计算装置将可以是移动或者不可移动的计算装置(诸如,上述装置D)的测试计算装置还原至已知软件配置。已知软件配置可以包括测试计算装置的多个软件部件,诸如,应用软件部件、数据部件、和/或其它软件部件。加载计算装置可以确定是否要将测试计算装置还原至已知软件配置。然后,在确定要将测试计算装置还原至已知软件配置之后,加载计算装置可以将测试计算装置还原至已知软件配置。还原测试计算装置可以包括:从计算机可读存储装置(例如,在加载计算装置上的或者远离加载计算装置但可被加载计算装置访问的存储装置)获取存储已知软件配置的至少一部分的所存储的软件映像。在本文中可以将这种软件映像称为“快照”。软件映像还可以包括具有与多个软件部件相关联的一个或者多个安全场境的安全场境数据。加载计算装置可以至少将所获取的软件映像的多个软件部件存储到测试计算装置上。然后,在将多个软件部件存储到测试计算装置上之后,使用与软件映像一起存储的安全场境数据为存储在测试计算装置上的多个软件部件设置一个或者多个安全场境。
例如,可以将软件部件(诸如,软件和/或数据)存储在测试计算装置的一个或者多个分区上。当移动计算装置处于已知软件配置时,快照(或者多个快照)可以存储驻留在那些(多个)分区中的软件和/或数据。然后,在测试会话之后,可以从(多个)快照中检索驻留在那些(多个)分区中的软件和/或数据并且可以将该软件和/或数据复制到移动计算装置。然后,可以将软件和/或数据放置在移动计算装置的(多个)适当分区中,并且例如,在重新启动移动计算装置之后,移动计算装置可以利用已知软件配置。
在一些情况下,可以针对测试设施中的装置使用多个快照。例如,假设装置D支持移动操作系统SuperMOS的三个版本,SuperMOS.R1、SuperMOS.R2、和SuperMOS.R3。然后,针对装置D可以存在至少三个快照:当装置D配置有移动操作系统SuperMOS的移动操作系统版本SuperMOS.R1时,存储驻留在分区中的软件和/或数据的快照SNAP1、当装置D配置有移动操作系统SuperMOS的移动操作系统版本SuperMOS.R2时,存储驻留在分区中的软件和/或数据的快照SNAP2、以及当装置D配置有移动操作系统SuperMOS的移动操作系统版本SuperMOS.R3时,存储驻留在分区中的软件和/或数据的快照SNAP3。
可以基于装置类型、操作系统、和/或操作系统版本从计算机可读存储装置(诸如,方法302的位置L)检索快照。继续参照该示例,假设装置D由MFGR制造并且是移动操作装置的型号MODEL1。然后,计算装置的装置类型可以包括关于计算装置的制造商和型号的信息;例如,D1的装置类型可以包括指示装置D的制造商是MFGR并且装置D的型号是MODEL1的数据。然后,假设测试设施具有另一装置D2,其中,装置D和D2二者具有相同的装置类型,并且在测试会话期间使用D和D2。例如,可以将快照存储在快照数据库中。可以基于将装置类型、操作系统、和/或操作系统版本指定为查询的一个或者多个键值的查询和搜索从快照数据库检索快照。对查询或者搜索的响应可以包括存储已知软件配置的一个或者多个快照(对一个或者多个快照的引用),其中,响应中的快照(对快照的引用)是从快照数据库中检索(和/或是指快照数据库)。
然后,为了将已知软件配置放置到装置D和基于移动操作系统SuperMOS的版本SuperMOS.R2的D2上,可以基于指定装置类型、移动操作系统、和移动操作系统版本的查询和搜索来检索快照;例如,对快照的搜索可以包含:搜索具有MFGR和MODEL1的装置类型的移动操作系统SuperMOS的版本SuperMOS.R2的快照。在该示例中,这种搜索将找到快照SNAP2。然后,可以从SNAP2中检索基于版本SuperMOS.R2的已知软件配置的软件和/或数据,并且将其存储在装置D(D2)的分区上。在检索之后,可以缓存SNAP2。然后,为了还原装置D(或者D2),可以访问SNAP2的缓存版本以基于版本SuperMOS.R2来检索已知软件配置的软件和/或数据,并且可以将检索到的软件和/或数据存储在装置D(或者D2)上。
一旦将已知软件配置的检索到的软件和/或数据存储在移动计算装置上,则可以将移动计算装置还原至已知软件配置。在一些实施例中,可以将已知软件配置的检索到的软件和/或数据从快照复制到一个或者多个特定分区,并且然后,当移动计算装置处于已知软件配置时,将已知软件配置的检索到的软件和/或数据从(多个)特定分区移动或者复制到存储检索到的软件和/或数据的其它分区。
例如,可以使用一个或者多个文件和/或软件映像从快照中检索软件和/或数据并且将其存储在“发现”分区(或者多个“发现”分区)上,并且可以将软件和/或数据从(多个)恢复分区复制到其它分区。例如,假设移动计算装置具有四个分区:/recovery,/boot,/system,以及/usr。然后,可以从快照中检索/boot,/system,以及/usr分区的软件和/或数据并且将其存储在/recovery分区中。在该示例中,假设从快照中检索/boot分区的软件和/或数据并且将其存储在移动计算装置的/recovery分区上的软件映像“boot.img”中,并且将/system和/usr分区的软件和数据存储在两个相应的档案文件“sys.tar”和“usr.tar”中,该两个相应的档案文件“sys.tar”和“usr.tar”都存储在移动计算装置的/recovery分区上。然后,可以使用逐字节文件复制技术来将软件和/或数据从boot.img复制到/boot分区;例如,使用“dd”命令或者等效物。
为了将软件和/或数据复制到相应的/system和/usr分区上,可以“挂载”各个相应的分区或者可以使各个相应的分区可被访问,并且然后,可以将软件和/或数据从相应的档案文件复制到相应的挂载分区。即,对于/system分区,可以挂载/system分区,并且然后,可以将存储在sys.tar文件(该文件存储在/recovery分区上)中的软件和/或数据复制到挂载的/system分区上。类似地,对于/usr分区,可以挂载/usr分区,并且然后,可以将存储在usr.tar文件(该文件存储在/recovery分区上)中的软件和/或数据复制到已挂载的/usr分区上。
在已经使用逐字节、逐文件、和/或其它存储技术从快照中还原一个或者多个文件之后,然后可以还原一些或者所有文件的安全场境。例如,在已经将文件从快照还原至其在装置D上的先前位置之后,然后可以执行上述脚本或者其它软件来还原从快照中还原的文件的安全场境;例如,针对文件“file1”,可以执行与在上文方法202的框260的上下文中提到的(并且出于方便起见在下文复制)文件1相关的命令以还原“file1”文件的安全场境:
chcon–u unconfined_u file1#assign“unconfined_u”id to file1fromlabel
chcon–r object_r file1#assign“object_r”role to file1from label
chcon–t user_home_t file1#assign“user_home_t”type to file1fromlabel
chcon–l s0file1#assign level“s0”to file1from label
在已经执行了脚本之后,已经将移动计算装置还原至存储在快照中的已知软件配置。一旦已经将移动计算装置还原至已知软件配置,可以将移动计算装置视作准备好进行测试会话。
为了移除在测试会话之后如果留在计算装置D上则可能会有问题的软件,可以使用以下技术。当首次向测试设施引入装置D时,可以说装置D使用基本的软件配置。例如,在基本的软件配置中,装置D可以具有如上所述的操作系统,以及可选地,在引入时安装的其它软件和/或数据。在一些情况下,基本的软件配置可以来自作为软件映像的装置D的制造商,并且可以被称为装置D的出厂重置状态。一旦装置D处于测试设施处,可以将具有基本的软件配置的软件映像加载到装置D上。
然后,可以通过使能对调试、引导、和其它软件的访问以及将装置D设置为与测试设施内的装置通信来准备在测试设施中使用的装置D。而且,可以将软件(例如,按照二进制格式)添加至装置以监控和/或使能对装置的访问(例如,超级用户访问、外壳访问)。在准备好在测试设施中使用的装置D之后,可以将装置D上的软件视作处于已知软件配置。
然后,可以将存储装置D上的软件和/或数据的一个或者多个分区保存为装置D的一个或者多个快照,其中,快照保存已知软件配置。例如,可以保存在(多个)快照中的分区可以包括,但不限于,引导、恢复、装置专用(例如,无线电、调制解调器)、缓存、系统、和用户数据分区。可以使用多种存储技术来保存(多个)分区;即,分区的逐字节副本、分区的逐文件副本,可以为分区的文件存储安全场境数据作为脚本或者其它安全场境表示。
一旦将(多个)分区保存为一个或者多个快照,可以在测试会话中使用装置D。在测试会话之后,可以从(多个)快照中检索所存储的分区数据并且将其写入装置D。在一些示例中,将一个或者多个分区P1、P2、...Pn的所存储的分区数据保存在装置D的一个或者多个特定分区PP1、PP2、...PPn(例如,恢复分区)上,并且然后将所存储的分区数据从分区PP1、PP2、…PPn复制到装置D的分区P1、P2、…Pn。在将所存储的分区数据复制到适当分区(例如,分区P1、P2、...Pn)之后,可以将装置D视作已经还原至使用(多个)快照存储的已知软件配置。
在一些实施例中,可以使用于将计算装置还原至已知软件配置的这些技术自动化;例如,由在计算装置上运行的另一计算装置执行、由计算装置执行以自行还原。可以使用这些技术来进行对基本的软件配置进行的设置、测试专用修改、和其它改变,以到达在测试会话之间的已知软件配置,如果执行了针对基本的软件配置的出厂重置和/或还原,则这些设置、测试专用修改、和其它改变可能会丢失。
方法302可以从框310中开始,其中,计算装置300可以接收对还原装置D的存储装置SD的分区列表L的请求。该请求可以是或者包括对将装置D还原至已知软件配置(诸如,包括存储在列表L中列出的分区中的软件部件)的请求。在一些示例中,装置D可以是移动计算装置。
然后,在接收到对还原装置D的请求之后,可以使用方法302的至少框320至370来至少使用装置D的快照(分区)的一部分来还原装置D。可以使用上文在图2A的上下文中讨论的方法202从由计算装置200制成的装置D的所保存的分区还原分区列表L中的一些或者所有分区。
如本文所使用的,术语“列表L”不一定是指一个或者多个特定数据结构;例如,可以将列表L解释成列表、链表、数组、对象、多个对象、树、和/或一个或者多个其它数据结构。在一些实施例中,列表L可以包括关于列表L中的分区的附加信息和/或与附加信息相关联;例如,关于列表L中的分区的位置、用于查找列表L中的分区的软件和/或数据的所存储的副本的位置、与列表L中的分区相关联的存储技术、列表L中的分区的大小等的信息。
在框320中,计算装置300可以确定在列表L中是否存在待处理的多个分区。如果在列表L中存在待处理的多个分区,则计算装置300可以前往框320。否则,方法302可以终止。
在框330中,计算装置300可以从列表L中将分区P选择为列表L的当前分区(例如,待还原的分区)。
在框340中,计算装置300可以确定是否要还原分区P的逐文件或者逐字节副本。为了做出该确定,计算装置300可以检索数据库中的信息,检索来自列表L或者另一相关联的列表的信息、使用编程逻辑做出(硬编码)确定,或者确定是否要对分区P进行逐文件或者逐字节副本。
如果计算装置300确定要还原分区P的逐字节副本,则计算装置可以前往框350;否则,计算装置300可以确定要还原分区P的逐文件副本并且前往框360。
在框350中,计算装置300可以从存储位置L1获得或者获取分区P的逐字节副本BBC,诸如,当装置D处于已知软件配置时产生的分区P的逐字节副本。副本BBC可以是一个或者多个软件映像、文件、存储器区域、和/或包含分区P的逐字节副本的其它数据存储实体。存储位置L1可以是存储位置,诸如上面在方法202的框252的上下文中讨论的。
在框352中,计算装置300可以通过将BBC复制到分区P上来根据逐字节副本BBC还原分区P。例如,计算装置300可以执行命令和/或脚本,以执行将数据逐字节地从源位置(或者多个源位置)复制到目的地位置的“dd”或者等效命令。在该示例中,源位置是分区P的副本BBC,并且目的地位置是装置D的存储装置SD的分区P。
在一些实施例中,可以组合框350和352的过程;例如,计算装置300可以直接从位置L1还原分区P的逐字节副本。在完成框352的过程之后,计算装置300可以前往框370。
在框360中,计算装置300可以从位置L1获得或者获取快照SP。快照SP可以是一个或者多个软件映像、文件、存储器区域、和/或包含分区P的逐文件副本(诸如,在装置D处于已知软件配置时产生的分区P的逐文件副本)的其它数据存储实体。位置L1可以是位置,诸如,上面在框252的上下文中讨论的位置L1。
在框362中,计算装置300可以从快照SP中检索分区P的文件并且将这些文件逐文件地还原至装置D的存储装载SD的分区P。例如,计算装置300可以执行命令和/或脚本,以执行将文件从源位置(或者多个源位置)复制到目的地位置的“tar”或者等效命令。在该示例中,源位置是分区P的快照SP,并且目的地位置是装置D的存储装置SD的分区P。
在框364中,计算装置300可以还原装置D的存储装置SD的分区P上的一个或者多个文件F1、F2、…Fn的安全场境信息SCI。安全场境信息SCI可以是或者包括安全场境信息,并且可以将安全场境信息SCI存储在快照SP中,诸如上面至少在方法202的框260和图2A的上下文中讨论的。例如,安全场境信息可以是一个或者多个指令的脚本,该一个或者多个指令在被执行时可以将装置D的存储装置SD的分区P上的文件F1、F2、…Fn的安全场境信息设置为或者还原到针对装置D的由快照SP部分地存储的已知软件配置的文件F1、F2、...Fn的安全场境信息。
在一些上下文中,可以组合框360、362、和364的一些或者所有过程;例如,可以从位置L1检索分区P的文件和/或分区P的文件的安全场境信息并且将其还原至分区P。在完成框364的过程之后,计算装置300可以前往框370。
在框370中,计算装置300可以从列表L中移除分区P。在从列表L中移除分区P之后,计算装置300可以前往框320。
图3B是根据示例实施例的方法380的流程图。可以使用方法380来将装置D还原至已知软件配置,诸如,用于测试设施(例如,用于执行移动测试作为服务的测试设施)中的操作的已知软件配置。装置D可以是或者包括计算装置,诸如下面在图8A的上下文中讨论的计算装置800。在一些实施例中,装置D可以是移动计算装置,诸如,智能电话。在特定实施例中,装置D可以是不具有SIM卡或者对无线广域网(WWAN)的其它访问的移动计算装置和/或具有禁用的任何车载相机和/或其它图像捕获装置的移动计算装置。确保装置D不具备对WWAN的访问权限可以使与装置D的所有通信更有可能是本地通信,这种通信可以更容易地被测试设施控制。禁用装置D的车载相机和/或其它图像捕获装置确保在较早测试会话时安装在装置D上的软件和/或硬件不太可能捕获稍后的测试会话的图像。
在一些示例中,可以在测试会话期间(例如,在方法380开始之前已经进行的测试会话)使用装置D。在特定示例中,可以将测试会话的中止用作开始方法380的立即或者延迟执行的触发;例如,只要测试会话结束,方法380就可以开始,方法380可以在测试会话结束之后的预定时间量(例如,30秒、5分钟、1小时)之后开始。在其它示例中,方法380可以由来自用户界面(例如,下面在图6的上下文中讨论的用户界面620)的输入来触发。
方法380可以从框382中开始,其中,在已经完成了涉及装置D的使用的测试会话之后,可以至少禁用对装置D的无线通信接入。可以使用一个或者多个软件命令、硬件开关、和/或其它机制来禁用对装置D的无线通信接入。在一些实施例中,可以基于测试会话的安排来禁用对装置D的无线通信接入;例如,可以在完成测试会话之后立即或者不久禁用对装置D的无线通信接入和/或可以默认禁用对装置D的无线通信接入,并且然后在测试会话开始之前或者在测试会话一开始就使能对装置D的无线通信接入。在一些示例中,对装置D的无线通信接入可以包括本地无线通信接入和/或WWAN接入。在特定示例中,本地无线通信接入可以包括使用一个或者多个IEEE 802.11(例如,Wi-Fi)和/或BluetoothTM协议的无线通信。在又一示例中,也可以在框382期间禁用对装置D的其它类型的通信接入,诸如,有线通信接入。
在框384中,可以从装置D移除在测试会话期间安装的所有应用和任何其它软件(可选地)。例如,可以维护在测试会话期间安装的应用记录,并且可以在测试会话完成之后移除和/或卸载在测试会话(即,应用记录)期间安装的任何应用。作为另一示例,可以维护预先存在的应用的记录。在测试会话之后,可以生成已安装的应用的列表,并且如果应用A1在已安装的应用的列表上但不在预先存在的应用的记录中,则可以在测试会话完成之后移除和/或卸载应用A1。
在框386中,可以从装置D清理(移除)在测试会话期间添加至装置D专用数据以及可选地,任何其它数据。例如,可以从装置D移除在测试会话期间创建的文件和/或文件夹/目录以及所创建的文件夹/目录的内容。作为另一示例,可以从临时存储位置(例如,/tmp文件夹/目录)清理所有数据,但可以保留临时存储装置的文件夹/目录。而且,可以从装置D移除在测试会话期间创建的网络浏览器历史数据、cookies、书签等。进一步地,可以从装置清除认证数据(诸如,令牌或者保存的密码)。而且,可以在测试会话之后移除添加至装置D的任何账户。也可以从装置D移除其它类型的专用数据和/或任何其它数据。
在框388中,可以从装置D移除调试输出、软件、存储器转储、和/或其它与测试相关的数据。例如,可以从装置D移除一个或者多个调试日志、文件、文件夹/目录、轨迹、软件逻辑删除、堆栈转储、核心转储、和/或其它数据。作为另一示例,可以在测试会话之后从装置D移除断点、测试脚本、和/或其它与调试和/或测试相关的软件和/或数据。而且,在测试会话之后,可以从装置D移除与未做出响应的应用相关的任何软件和/或数据。也可以从装置D移除其它类型的调试输出、软件、存储器转储、和/或与其它测试相关的数据。
在框390中,可以清理装置D的一个或者多个内核消息缓冲区;即,可以从装置D移除在测试会话之后在装置D的内核消息缓冲区中剩余的一个或者多个消息。
在框392中,可以使用方法302(例如,由计算装置300执行的)来将装置D的分区还原至已知软件配置。例如,可以将分区列表(诸如“boot”、“radio”、“recovery”、“modem”、“modemst1”、“modemst2”、“cache”、“system”、和“userdata”)提供给计算装置300和/或(多个)其它计算装置作为分区列表L。可以使用逐字节存储技术来复制列表L中的一些分区(诸如,引导、无线电、恢复、调制解调器、modemst1、和modemst2分区);而可以通过逐文件存储技术来复制其它(或者剩余的)分区。上面在图3A的计算装置300和方法302的上下文中讨论了逐字节和逐文件存储技术。
在一些实施例中,方法380可以由计算装置(诸如,计算装置200、300、或者800)执行。计算装置可以包括下面在图8A的上下文中讨论的计算装置800(包括但不限于,一个或者多个处理器803和数据存储装置,诸如,数据存储装置804)的一些或者全部方面。数据存储装置可以存储计算机可读指令,诸如,计算装置800的计算机可读指令806。例如,计算装置300的数据存储装置可以存储计算机可执行指令,该计算机可执行指令在由计算装置300的一个或者多个处理器执行时可以使计算装置300至少执行方法380的特征。在一些实施例中,计算装置通过与装置D通信地耦合并且将一个或者多个命令发送至装置D来执行方法380的一部分或者全部。然后,在接收到(多个)命令时,装置D可以执行命令以执行框382、384、386、388、390、和/或392的过程。
在其它实施例中,可以使用软件指令(诸如,包含可以由计算装置(诸如,但不限于,计算装置200和/或300)解释和/或执行的指令的一个或者多个脚本)来执行方法202、280、302、和/或380的一部分或者全部,以执行(多个)脚本的指令。表1示出了用与“sh”外壳脚本语言相关的伪代码编写的示例脚本。表1的示例脚本可以用于至少执行方法202和/或302的一部分。
表1中列出的示例脚本可以制作和还原特定装置的分区的快照;例如,方法202、280、302、和/或380的装置D,其中,快照可以存储已知软件配置的软件和/或数据。同样,示例脚本可以将特定装置的(已知)软件配置保存为一个或者多个快照并且将特定装置还原至使用一个或者多个快照存储的已知软件配置。在下面的脚本中,将特定装置称为“装置D”并且假设为在脚本开始执行之前通信地耦合至执行脚本的装置(例如,计算装置200或者300)。
在表1的特定示例中,可以针对可以存储软件配置的软件和/或数据的三个分区中的一些或者全部获取快照并且还原快照,即,数据、系统、和引导分区。在表1中示出的示例脚本中,逐文件地复制数据和系统分区,并且逐字节地复制引导分区。而且,在/data和/system处分别挂载(使用文件路径可访问)数据和系统分区,并且可以经由“/boot”文件路径访问引导分区。在其它示例中,可以使用更多、更少、和/或不同的分区来存储已知软件配置的软件和/或数据。在又一示例中,可以逐文件地和/或逐字节地复制更多、更少、和/或不同的分区。用于保存和检索分区的快照的其它存储技术也是可能的;例如,可以压缩/解压缩一个或者多个快照的一部分或者全部,可以对一个或者多个快照的一部分或者全部进行加密/解密,可以将一个或者多个快照的一部分或者全部存储在一个或者多个数据库中和/或从一个或者多个数据库检索一个或者多个快照的一部分或者全部。
Figure BDA0001505809200000311
Figure BDA0001505809200000321
Figure BDA0001505809200000331
Figure BDA0001505809200000341
Figure BDA0001505809200000351
Figure BDA0001505809200000361
Figure BDA0001505809200000371
Figure BDA0001505809200000381
Figure BDA0001505809200000391
Figure BDA0001505809200000401
Figure BDA0001505809200000411
Figure BDA0001505809200000421
表1
在表1中,用粗体示出脚本的示例函数名称。从上面所示的脚本的顶部开始,使用函数可以用于提供关于如何调用脚本的信息。重启函数可以用于远程地重启装置;例如,方法280或者方法380的装置D。reboot_recovery函数可以用于在恢复模式下远程地重启装置;例如,方法280或者方法380的装置D。make_sc_script函数可以用于生成在该函数中命名为“$script”的另一脚本。当稍后执行所生成的脚本时,所生成的脚本可以用于经由执行一个或者多个“chcon”命令将安全场境还原至一个或者多个文件。
make_image_directory函数可以用于在执行脚本的装置(例如,计算装置200、计算装置300)上创建映像目录(文件夹)。映像目录可以存储与装置D的已知软件配置相关的快照和/或其它信息。snapshot_byte4byte函数可以用于创建装置D的分区(例如,用于表1中的脚本的引导分区)的逐字节副本,并且将该逐字节副本发送至执行脚本的装置。例如,命令(诸如,“dd”命令)可以用于对装置D上的分区进行逐字节复制并且将该副本保存在指定文件中。一旦保存,可以将指定文件从装置D发送至执行脚本的装置。
snapshot_filesystem函数可以用于创建分区(例如,用于表1中的脚本的系统和数据分区)的逐文件副本,并且将逐文件副本发送至执行脚本的装置。例如,命令(诸如,“tar”命令)可以用于创建存储装置D的分区中的一些或者全部文件的档案副本的文件。一旦创建,可以将档案副本从装置D发送至执行脚本的装置。快照功能可以用于创建装置D的一个或者多个分区的副本并且将副本保存到执行脚本的装置的映像目录中。表1示出快照功能调用make_image_directory以创建存储快照的文件的目录,并且然后,调用snapshot_byte4byte和snapshot_filesystem函数(若需要)以在所创建的目录中制作一个或者多个分区的副本。即,快照功能可以用于制作已知软件配置的副本,其中,将已知软件配置的软件和数据存储在作为参数提供给快照功能的一个或者多个分区中。
restore_byte4byte函数可以用于使用逐字节副本来还原分区;例如,还原如表1的脚本中所指示的引导分区。例如,命令(诸如,“dd”命令)可以用于将存储在指定文件中的数据逐字节地复制到指定分区,其中,指定文件最初可以存储在执行脚本的装置上,并且在执行“dd”命令之前将指定文件复制到装置D。restore_filesystem函数可以用于使用逐文件副本来还原分区;例如,还原如表1的脚本中所指示的系统和数据分区。例如,命令(诸如,“tar”命令)可以用于将在指定文件中存档的文件复制到分区,其中,将文件存档的指定文件最初存储在执行脚本的装置上,并且在执行“tar”命令之前将指定文件复制到装置D。还原功能可以用于将数据从存储在映像目录中的文件复制到一个或者多个分区。表1示出还原功能调用restore_byte4byte和restore_filesystem函数(若需要)以将数据从所存储的文件复制到一个或者多个分区。即,还原功能可以用于将已知软件配置的软件和数据的副本还原至装置的一个或者多个分区,其中,一个或者多个分区作为参数提供给还原功能。浏览功能可以用于检查快照文件。
基于提供给脚本的命令行选项,主函数可以用于协调或者驱动示例脚本的各种函数。脚本的最后一行——main“$@”——利用提供给脚本的命令行选项来调用主函数。可以在表1中找到关于示例脚本中的功能的附加信息。
图4、图5、和图6描绘了场景400的各个方面。场景400包含:在提供移动测试作为服务的测试设施处请求测试会话、引导测试会话、以及将参与测试会话的装置测试后会话还原至已知软件配置。
图4描绘了根据示例实施例的计算装置100a的用户界面420。计算装置100a可以包括上面在图1的上下文中讨论的计算装置100的一些或者所有上述特征。在一些实施例中,可以使用计算装置100a和/或用户界面420来执行上面在图1的上下文中讨论的方法102的一部分或者全部。
具体地,计算装置100a可以包括下面在图8A的上下文中讨论的计算装置800(包括但不限于,用户界面模块(诸如,用户界面模块801)、一个或者多个处理器803、和数据存储装置,诸如,数据存储装置804)的一些或者全部方面。计算装置100a的数据存储装置可以存储计算机可读指令,诸如下面在图8A的上下文中讨论的计算装置800的计算机可读指令806。计算装置100a的计算机可读指令可以在由计算装置100a的一个或者多个处理器执行时使计算装置100a执行用户界面420的至少本文描述的功能。而且,计算装置100a的用户界面模块可以包括配置为提供用户界面420的软件和/或硬件。例如,用户界面模块可以包括显示器、触摸屏幕、和/或其它输入装置、以及用于提供用户界面420的硬件和/或软件。
在场景400期间,计算装置100a的用户界面420可以用于在提供移动测试作为服务的测试设施处请求测试会话。图4示出了用户界面420是用于“测试会话请求”的界面,并且包括用于检查、更新、删除、和/或插入测试者数据430的区域、支付/财务数据440、待测软件数据450、所请求的测试配置数据460、以及所请求的测试安排数据470。在其它示例中,可以使用用户界面420来检查、更新、删除、和/或插入更多、更少、和/或不同的数据。
可以使用测试者数据430来检查、更新、删除、和/或插入关于测试者和/或请求进行测试会话的测试实体的数据。在场景400中,并且如图4所示,对于各个测试者和/或测试实体,测试者数据430可以包括名称信息432和组织信息434,其中,组织信息434可以指示与使用名称信息430命名的测试者相关联的组织或者其它实体的名称。在图4中示出的示例中,如果测试会话请求被批准,则在所请求的测试会话处将存在使用与使用组织信息434命名的“AAAA软件测试公司”相关联的命名信息432命名的一个测试者“Jill Doe”。用户界面420包括用于将(多个)测试者添加至测试会话请求的按钮436。在一些示例中,请求进行测试会话的所有测试者将与相同的实体相关联,而在其它示例中,测试者可以与两个或者更多个实体相关联。
可以提供比测试者数据430所指示的更多、更少、和/或不同的测试者数据;例如,职业头衔/职位、员工编号、联系信息,诸如,电子邮件、电话、和/或物理地址信息、关于测试者的证书的信息(例如,教育证书、就业信息)。在一些实施例中,一些或者所有测试者数据430可以由计算装置(诸如,计算装置100)用来至少执行方法102的一部分;例如,方法102的框120的过程。
可以使用支付/财务数据440来检查、更新、删除、和/或插入与进行测试会话的请求相关的财务信息。在场景400中,并且如图4所示,支付/财务数据440可以包括支付类型信息442、信用卡号信息444、有效期限信息446、以及发卡单位信息448。支付类型信息442可以指定用于进行测试会话的支付方法;例如,信用卡、支票、从银行账户直接提款、具有提供作为服务的测试设施和/或移动测试的实体的账号。在图4中示出的示例中,支付类型信息442指示将使用信用卡来支付所请求的测试会话。在图4中针对场景400示出的示例中,在相应的信用卡号信息444和有效期限信息446、和发卡单位信息448中未示出具体的信用卡号、有效期限、或者发卡单位信息。
在使用支付类型信息442来选择其它支付方法的其它场景中,信用卡号信息444、有效期限信息446、和发卡单位信息448中的一些或者全部可以相应地改变;例如,如果支付类型信息442指示将使用银行账户提款来支付所请求的测试会话,则信用卡号信息444可以变成银行账户信息,可以将有效期限信息446禁用为不使用并且经由用户界面420进行指示(例如,有效期限信息446可以变灰),并且发卡单位信息448可以变成银行名称信息。支付方法和相关信息的许多其它示例也是可能的。
可以提供比支付/财务数据440所指示的更多、更少、和/或不同的支付/财务数据;例如,附加财务参考/信息、关于支票的收款人的信息、财务交易信息(例如,电汇信息)、所请求的测试会话的实际和估计成本。在一些实施例中,一些或者所有支付/财务数据440可以由计算装置(诸如,计算装置100)用来至少执行方法102的一部分;例如,方法102的框130的过程。
可以使用待测软件数据450来在所请求的测试会话期间检查、更新、删除、和/或插入关于待测试的软件的数据。在场景400中,并且如图4所示,测试者数据450可以包括若干软件包数据452。在场景400中,软件包可以包括一个或者多个软件应用和/或其它软件以及安装工具和/或数据,以准备好在所请求的测试会话期间在装置上使用/测试的软件。可以提供比待测软件数据450所指示的更多、更少、和/或不同的待测软件数据;例如,用于写入待测软件的(多种)软件语言、由待测软件访问/使用的库。
然后,针对在用软件包数据452的数量指示的所请求的测试会话期间要测试的各个软件包,路径名数据454可以指示路径或者其它信息以定位待测试的软件包的副本。针对场景400,如用设置为“1”的软件包数据452的数量所指示的那样,要对一个软件包进行测试,并且待测试的软件包的路径名尚未由路径名数据454指定。为了帮助指定待测试的软件包的路径名,可以按压或者选择选择按钮456,在该选择时,可以呈现文件对话或者其它用户界面控件以允许用户界面420的用户来选择包含来自文件系统的软件包的文件。可以提供比待测软件数据450所指示的更多、更少、和/或不同的待测软件;例如,包名称、提供包的日期、指示软件包在测试时可以改变的控件。在一些实施例中,一些或者所有待测软件数据450可以由计算装置(诸如,计算装置100)用来至少执行方法102的一部分;例如,方法102的框140的过程。
可以使用所请求的测试配置数据460来检查、更新、删除、和/或插入选择用于测试会话的一个或者多个计算装置和一个或者多个对应软件版本的数据。在场景400中,并且如图4所示,四个移动计算装置(“装置1”、“装置2”、“装置3”、和“装置4”)在用于进行移动测试作为服务的测试设施处可用。选择控件462a、464a、466a、和468a(在图4中示出为复选框)可以用于分别选择处于用于所请求的测试会话的测试配置的装置1、装置2、装置3、和装置4。在场景400中,分别用“X”示出了选择控件462a和468a,以指示相应的装置(装置1和装置4)被选择为测试会话的测试配置的一部分。可以提供比所请求的测试配置数据460所指示的更多、更少、和/或不同的所请求的测试配置数据;例如,关于测试设施的其它所请求的条件的数据(温度、环境声级、除了计算装置之外的其它设备)、在多个测试设施可用的条件下的(多个)所请求的测试设施位置。
用户界面420可以配置为请求关于选择为所请求的测试配置的一部分的装置的附加信息。例如,当选择控件462a针对所请求的测试配置选择装置1时,可以更新用户界面420来提供软件选择控件462b以在所请求的测试会话开始时选择要安装在装置1上的所请求的软件版本。相似地,当软件选择控件468a针对所请求的测试配置选择装置4时,用户界面420可以提供软件选择控件486b来在所请求的测试会话开始时选择要安装在装置4上的所请求的软件版本。在场景400中,并且如图4所示,可以使用相应的软件选择控件462b、468b来请求在所请求的测试会话开始时将相应的软件版本“版本1.1”、“版本2.1”分别安装在相应的装置(装置1、装置4)上。
信息按钮462a、464c、466c、468c可以在被选择/按压时提供关于相应的装置(装置1、装置2、装置3、和/或装置4)的附加数据。附加数据可以包括,但不限于,装置类型(制造商和/或型号)信息、关于装置的处理器、传感器、和/或其它硬件部件的与硬件相关的信息(例如,数量、功能、装置类型信息、时钟速度、功率使用、和/或其它信息)、关于由装置提供的存储器的数量、速度、和/或其它信息、以及装置通信信息(例如,带宽信息、由装置使用的通信协议)。在一些情况下,所请求的测试配置数据469可以用于帮助为所请求的测试会话建立测试设施;例如,通过指定在所请求的测试会话期间要使用哪些装置和相应的软件版本。
可以使用所请求的测试安排数据470来检查、更新、删除、和/或插入与安排所请求的测试会话相关的数据。在场景400中,并且如图4所示,所请求的测试安排数据470可以包括所请求的测试日期信息472和所请求的测试持续时间信息474。可以提供比测试安排数据470所指示的更多、更少、和/或不同的所请求的测试安排数据;例如,备份次数和/或日期、多天和/或多持续时间的测试会话的指定、对周期性(例如,每周、每两周、每月、每季度、每年)测试会话的请求。图4示出了尚未指定所请求的测试日期信息472,以mm/dd/yyyy格式提供所请求的测试日期信息472,并且示出了已经使用所请求的测试持续时间信息474选择了“2小时”的持续时间。
可以使用所请求的测试配置数据460和/或所请求的测试安排数据470来为特定测试会话确定测试设施的可用性,其中,特定测试会话可以包含指定装置、软件配置、日期、和/或持续时间的使用。在一些情况下,一旦已经建立了所请求的特定测试会话的测试设施的可用性,可以使用所请求的测试配置数据460和/或所请求的测试安排数据470来安排测试会话。测试会话请求的数据的许多其它使用也是可能的。
用户界面420还包括提交按钮和退出按钮482。提交按钮480在被选择时可以用于发送测试会话请求的数据以便进行评估和批准;例如,使用计算装置100和/或100a和/或使用方法102的一些或者所有技术来批准。退出按钮482可以用于关闭用户界面420,而不提交测试会话请求,即,使用用户界面420来停止请求测试会话。
场景400继续进行使用用户界面420做出的、被批准和安排的测试会话请求。图5示出了根据示例实施例的测试设施500中的场景400的示例测试会话。测试会话包含来自使用所请求的装置1和4(在测试设施500中,示出为相应装置520和522)来测试应用的AAAA软件测试公司的测试者510。测试设施500还具有显示器,该显示器指示示例测试会话正在由AAAA软件测试公司进行、指示测试会话的开始时间是下午3:00、测试会话的结束时间是下午5:00、以及当前时间是下午4:32;即,测试者510距测试会话还剩大约28分钟。场景400继续进行图5中描绘的测试会话,该测试会话在下午5:00完成,并且测试者510离开测试设施。场景400在完成图5中描绘的测试会话之后继续进行将测试设施500的装置1和4还原至相应的已知软件配置。
图6描绘了根据示例实施例的计算装置300a的用户界面620。计算装置300a可以包括上面在图3A的上下文中讨论的计算装置300的一些或者所有上述特征。在一些实施例中,计算装置300a和/或用户界面620可以用于执行上面在图3A的上下文中讨论的和/或上面在图3B的上下文中讨论的方法302的一部分或者全部。
具体地,计算装置300a可以包括下面在图8A的上下文中讨论的计算装置800(包括但不限于,用户界面模块(诸如,用户界面模块801)、一个或者多个处理器803、和数据存储装置,诸如,数据存储装置804)的一些或者全部方面。计算装置300a的数据存储装置可以存储计算机可读指令,诸如下面在图8A的上下文中讨论的计算装置800的计算机可读指令806。计算装置300a的计算机可读指令可以在由计算装置300a的一个或者多个处理器执行时使计算装置300a执行用户界面620的至少本文描述的功能。而且,计算装置300a的用户界面模块可以包括配置为提供用户界面620的软件和/或硬件;例如,用户界面模块可以包括显示器、触摸屏幕、和/或其它输入装置、以及用于提供用户界面620的硬件和/或软件。
在场景600期间,用户界面620配置为在图5中描绘的测试会话之后将测试设施500中的计算装置还原至已知软件环境。图6示出了“测试会话清理应用”的用户界面620并且包括用于检查、更新、删除、和/或插入用于下一个测试配置630的数据的区域以及用于检查测试清理应用的进程的清理进程窗口640。在其它示例中,可以使用用户界面620来检查、更新、删除、和/或插入更多、更少、和/或不同的数据。
用于下一个测试配置630的数据可以用于检查、更新、删除、和/或插入选择一个或者多个计算装置和一个或者多个对应软件版本以便在测试会话(例如,测试会话500)之后进行还原的数据。在场景400中,并且如图6所示,四个移动计算装置(“装置1”、“装置2”、“装置3”、和“装置4”)在用于进行移动测试作为服务的测试设施处可用。选择控件632a、634a、636a、和638a(在图6中示出为复选框)可以用于分别选择装置1、装置2、装置3、和装置4以便在测试会话之后进行还原。在场景400中,分别用“X”示出了选择控件632a和638a,以指示相应的装置(装置1和装置4)被选择为在测试会话之后进行还原。
用户界面620可以配置为提供关于选择为在测试会话之后进行还原的装置的附加信息。例如,当选择控件632a针对所请求的测试配置选择装置1时,可以更新用户界面620以提供软件选择控件632b来选择在测试会话之后要安装在装置1上的所请求的软件版本,并且因此,基于用软件选择控件632b指示的所请求的软件版本将装置1还原至已知软件配置。相似地,当软件选择控件638a针对所请求的测试配置选择装置4时,用户界面620可以提供软件选择控件638b来选择要安装在装置4上的所请求的软件版本,以选择在测试会话之后要安装在装置4上的所请求的软件版本。在场景400中,并且如图6所示,基于在测试会话之后安装在相应装置上的软件版本“版本2.1”,可以使用相应的软件选择控件632b、638b来指示相应装置(装置1、装置4)的已知软件配置。
可以提供比下一个测试配置数据630所指示的更多、更少、和/或不同的所请求的测试配置数据;例如,关于装置所处的(多个)测试设施位置的数据、用于装置还原的安排信息(例如,还原时间和/或数据信息)。在一些实施例中,一旦测试会话被批准,可以填写一些或者所有下一个测试配置数据630,以基于选择为图4中示出的测试配置数据460的装置来还原在被批准的测试会话期间使用的装置;例如,由于经由测试配置数据460选择了装置1和4,因此可以填写下一个测试配置数据630以在测试会话500完成之后选择装置1和4进行还原。作为另一示例,如果在测试会话500之后的测试会话被批准,则用于下一个测试配置数据630的装置和软件版本可以用随后批准的测试会话的测试配置数据460来填写。
用户界面420还包括开始按钮680、停止按钮682、和退出按钮684。提交按钮480在被选择时可以用于发起用于还原使用下一个测试配置数据630选择的装置的过程;例如,用于还原装置的过程可以包括使用计算装置300和/或300a、和/或使用方法300、方法380、和/或表1的与还原装置相关的脚本的各个方面的一些或者所有技术。停止按钮682可以用于暂停和/或停止用于在测试会话之后还原装置的过程。退出按钮684可以用于关闭用户界面620。
在一些实施例中,停止按钮682可以暂停用于还原装置的过程;例如,以等待装置上电或者使其可用于进行还原。在这些实施例中,停止按钮682可以改变为“继续”按钮,该按钮在被选择时可以在先前暂停用于还原装置的过程的时间点重新开始用于还原装置的过程。在其它实施例中,停止按钮682可以立即停止(例如,终止)用于还原装置的过程。在又一实施例中,可以提供暂停/进行和停止控件作为用户界面620的一部分。
在场景400中,已经选择了开始按钮680以在测试会话500之后还原装置1和4,并且如清除进度窗口640所指示的,用于还原装置1和4的过程已经开始。清除进程窗口640示出了用于还原装置的过程已经针对装置1和4开始。然后,对于装置1,禁用通信(例如,执行方法380的框382),移除应用(例如,执行方法380的框384),移除应用-特定数据(例如,执行方法380的框386)、移除调试数据(例如,执行方法380的框388)、以及清理装置1的内核消息缓冲区(例如,执行方法380的框390)。然后,清除进程窗口640示出了基于“版本2.1”将至少一个/boot分区和/data分区还原至已知软件配置,使用逐字节复制技术来还原/boot分区和使用逐文件复制技术来还原/data分区(例如,执行方法380和/或方法302的框392)。
清除进程窗口640示出了在将装置1还原至已知软件环境之后,通过与装置禁用通信来针对装置4开始用于还原装置的过程。在基于所请求的“版本2.1”软件版本将装置4还原至已知软件环境之后,可以完成场景400。
示例数据网络
图7描绘了根据示例实施例的具有配置为经由网络706与可编程装置704a、704b、704c、704d、704e、和704f进行通信的服务器装置708、710的分布式计算架构700。网络706可以与LAN、广域网(WAN)、企业内联网、公共互联网、或者配置为提供网络计算装置之间的通信路径的任何其它类型的网络对应。网络706还可以与一个或者多个LAN、WAN、企业内联网、和/或公共互联网的组合对应。
尽管图7示出了6个可编程装置,但分布式计算架构700可以为更多或者更少的可编程装置服务。而且,可编程装置704a、704b、704c、704d、704e、和704f(或者任何附加的可编程装置)可以是任何种类的计算装置,诸如,普通的膝上型计算机、台式计算机、可穿戴计算装置、移动计算装置、头戴式装置、网络终端、无线通信装置(例如,智能电话或者手机)等。在一些实施例(诸如用可编程装置704a、704b、704c、和704f指示的)中,可编程装置可以直接连接至网络706。在其它实施例(诸如用可编程装置704d和704e指示的)中,可编程装置可以经由相关联的计算装置(诸如,可编程装置)间接连接至网络706。在该示例中,可编程装置704c可以充当相关联的计算装置以在可编程装置704d和704e与网络706之间传递电子通信。在又一实施例(在图7中未示出)中,可编程装置可以直接或者间接连接至网络706。
服务装置708、710可以配置为执行一个或者多个服务,如由可编程装置704a至704f所请求的。例如,服务器装置708和/或710可以将内容提供给可编程装置704a至704f。内容可以包括,但不限于,网页、超文本、脚本、二进制数据,诸如,编译软件、图像、音频、和/或视频。内容可以包括压缩和/或未压缩的内容。内容可以是加密的和/或非加密的。其它类型的内容也是可能的。
作为另一示例,服务器装置708和/或710可以向可编程装置704a至704f提供对用于数据库、搜索、计算、图形、音频、视频、万维网/互联网利用、和/或其它功能的软件的访问。服务器装置的许多其它示例也是可能的。
计算装置架构
图8A是根据示例实施例的计算装置800(例如,系统)的框图。具体地,图8A中示出的计算装置800可以配置为执行与计算装置100、100a、200、300、300a、方法102、202、280、302、380、900、用户界面420、620、测试设施500、装置520、522、场景400、网络706、服务器装置708、710、一个或者多个测试会话、以及可编程装置704a、704b、704c、704d、和704f相关的一个或者多个功能。
计算装置(诸如,计算装置800)可以是或者包括自动执行计算的任何机器,并且示例包括,但不限于,台式计算机、膝上型计算机、平板、移动电话、智能电话、手表、智能手表、头戴设备、以及HMD(诸如,智能眼镜)。移动计算装置是包括移动电源(诸如,电池)和/或配置为容易传输的任何计算装置,示例包括,但不限于,膝上型计算机、平板、移动电话、智能电话、手表、智能手表、头戴设备、车载信息娱乐系统、以及HMD。不可移动计算装置是并非移动计算装置的计算装置,示例包括,但不限于,台式计算机、机架式计算机/服务器、大型计算机、家庭娱乐系统、智能恒温器、以及家用计算机。可穿戴计算装置是配置为容易由人或者动物运输和/或携带的计算装置,示例包括,但不限于,移动电话、智能电话、手表、智能手表、头戴设备、以及HMD。
计算装置800可以包括用户界面模块801、网络通信接口模块802、一个或者多个处理器803、以及数据存储装置804,可以经由系统总线、网络、或者其它连接机构805将所有这些部件链接在一起。
用户界面模块801可以操作以向外部用户输入/输出装置发送数据和/或从外部用户输入/输出装置接收数据。例如,用户界面模块801可以配置为向用户输入装置(诸如,键盘、小键盘、触摸屏、计算机鼠标、轨迹球、操纵杆、照相机、语音识别模块、和/或其它相似的装置)发送数据和/或从用户输入装置(诸如,键盘、小键盘、触摸屏、计算机鼠标、轨迹球、操纵杆、照相机、语音识别模块、和/或其它相似的装置)接收数据。用户界面模块801还可以配置为将输出提供给用户显示装置,诸如,一个或者多个阴极射线管(CRT)、液晶显示器(LCD)、发光二极管(LED)、使用数字光处理(DLP)技术、打印机、灯泡、和/或其它相似的装置的显示器。用户界面模块801还可以配置为生成(多个)可听输出,诸如,扬声器、扬声器插座、音频输出端口、音频输出装置、耳机、和/或其它相似的装置。在一些实施例中,用户界面模块801可以配置为执行用户界面420和/或用户界面620的本文描述的功能中的一些或者全部功能。
网络通信接口模块802可以包括可配置为经由网络(诸如,图7中示出的网络706)进行通信的一个或者多个无线接口807和/或一个或者多个有线接口808。无线接口807可以包括一个或者多个短距离和/或广域无线发射机、接收器、和/或收发器,诸如,BluetoothTM收发器、ZigBeeTM收发器、IEEE 802.11/Wi-Fi收发器、WiMAX收发器、蜂窝、和/或可配置为经由无线网络进行通信的其它相似类型的无线收发器。有线接口808可以包括一个或者多个有线发射机、接收器、和/或收发器,诸如,以太网收发器、通用串行总线(USB)收发器、或者可配置为经由双绞线、同轴电缆、光纤链路、或者与有线网络相似的物理连接进行通信的相似的收发器。
在一些实施例中,网络通信接口模块802可以配置为提供可靠的、安全的、和/或认证的通信。对于本文描述的每个通信,可以提供用于确保可靠通信(即,有保证的消息传送)的信息,例如,作为消息报头和/或页脚的一部分(例如,分组/消息排序信息、(多个)封装报头和/或(多个)页脚、大小/时间信息、以及传输验证信息,诸如,CRC和/或奇偶校验值)。例如,可以通过编码或者加密、和/或解密和解码、通过使用一个或者多个加密协议和/或算法(诸如,但不限于,DES、AES、RSA、Diffie-Hellman、和/或DSA)使通信变得安全。除了本文列出的加密协议和/或算法之外,也可以使用其它加密协议和/或算法,以保护通信,并且然后恢复通信。
处理器803可以包括一个或者多个通用处理器和/或一个或者多个专用处理器(例如,中央处理单元、数字信号处理器、图形处理单元、专用集成电路等)。处理器803可以配置为执行包含在数据存储装置804中的计算机可读程序指令806和/或如本文所描述的其它指令。
数据存储装置804可以包括可以由处理器803中的至少一个读取和/或访问的一个或者多个计算机可读存储介质。一个或者多个计算机可读存储介质可以包括易失性和/或非易失性存储部件(诸如,光学存储器、磁性存储器、有机存储器、或者其它存储器或者磁盘存储装置),该易失性和/或非易失性存储部件可以整体地或者部分地与处理器803中的至少一个集成在一起。在一些实施例中,可以使用单个物理装置(例如,一个光学存储器、磁性存储器、有机存储器、或者其它存储器或者磁盘存储单元)来实施数据存储装置804,而在其它实施例中,可以使用两个或者更多个物理装置来实施数据存储装置804。
数据存储装置804可以包括计算机可读程序指令806,并且在一些情况下,可以包括附加数据。在一些实施例中,附加地,数据存储装置804可以包括执行至少本文描述的场景、方法、和技术的一部分和/或执行至少本文描述的装置和网络的功能的一部分所需的存储装置。
在一些实施例中,计算装置800可以包括一个或者多个传感器。(多个)传感器可以配置为测量计算装置800的环境中的状况并且提供关于该环境的数据。数据可以包括,但不限于,关于计算装置800的位置数据、关于计算装置800的速度(包括速度和/或方向的速度)数据、关于计算装置800的加速度数据、以及关于计算装置800的环境的其它数据。一个或者多个传感器可以包括,但不限于,(多个)全球定位系统(GPS)传感器、(多个)位置传感器、(多个)陀螺仪、(多个)加速度计、(多个)磁力计、(多个)照相机、(多个)光传感器、(多个)红外传感器、以及(多个)麦克风。传感器的其它示例也是可能的。
基于云的服务器
图8B描绘了根据示例实施例的布置成基于云的服务器系统的计算集群809a、809b、809c的网络706。服务器装置708和/或710和/或计算集群809a、809b、和/或809c可以表示可以生成和/或利用一个或者多个存储器、引导、和/或使用与映像生成相关的本文描述的技术(例如,算法A1)编写的其它映像的一个或者多个计算装置。具体地,服务器装置708和/或710和/或计算集群809a、809b、和/或809c可以配置为执行至少与算法A1和A2、移动装置102、存储器110、场景100、200、和500、以及方法1100相关的本文描述的功能中的所有或者全部功能。
服务器装置708和/或710的一些或者全部模块/部件可以是基于云的装置,该基于云的装置存储基于云的应用和/或服务的程序逻辑和/或数据。在一些实施例中,服务器装置708和/或710可以位于驻留在单个计算中心中的单个计算装置上。在其它实施例中,服务器装置708和/或710可以包括单个计算中心中的多个计算装置,或者甚至可以包括位于不同地理位置中的多个计算中心中的多个计算装置。例如,图7描绘了驻留在不同的物理位置中的各个服务器装置708和710。
在其它实施例中,可以将与服务器装置708和/或710相关联的软件和数据编码成存储在非暂时性有形计算机可读介质(或者计算机可读存储介质)中并且可由可编程装置804a至804e和/或其它计算装置中的一个或者多个访问的计算机可读信息。在一些实施例中,与服务器装置708和/或710相关联的数据可以存储在单个磁盘驱动器、闪盘驱动器、或者其它有形存储介质上,或者可以实施在多个磁盘驱动器、闪盘驱动器、或者位于一个或者多个不同的地理位置处的其它有形存储介质上。
图8B描绘了根据示例实施例的基于云的服务器系统。在图8B中,服务器装置708和/或710的功能可以分布在三个计算集群809a、809b、和809c中。计算集群809a可以包括由本地集群网络812a连接的一个或者多个计算装置800a、集群存储阵列810a、和集群路由器811a。相似地,计算集群809b可以包括由本地集群网络812b连接的一个或者多个计算装置800b、集群存储阵列810b、和集群路由器811b。同样,计算集群809c可以包括由本地集群网络812c连接的一个或者多个计算装置800c、集群存储阵列810c、和集群路由器811c。
在一些实施例中,计算集群809a、809b、和809c中的每一个可以具有相等数量的计算装置、相等数量的集群存储阵列、以及相同数量的集群路由器。在其它实施例中,然而,各个计算集群可以具有不同数量的计算装置、不同数量的集群存储阵列、以及不同数量的集群路由器。各个计算集群中的计算装置、集群存储阵列、以及集群路由器的数量可以取决于分配给各个计算集群的一个或者多个计算任务。
在计算集群809a中,例如,计算装置800a可以配置为执行服务器装置708和/或710的各种计算任务。在一个实施例中,服务器装置708和/或710的各种功能可以分布在计算装置800a、800b、和800c中的一个或者多个中。相似地,计算集群809b和809c中的计算装置800b和800c可以配置为计算集群809a中的计算装置800a。另一方面,在一些实施例中,计算装置800a、800b、和800c可以配置为执行不同功能。
在一些实施例中,至少部分地基于服务器装置708和/或710的一些或者全部部件/模块的存储和/或处理要求、计算装置800a、800b、和800c的存储和/或处理能力、在各个计算集群中的计算装置之间以及在计算集群本身之间的网络链路的延迟、和/或可以有助于整个系统架构的成本、速度、容错性、弹性、效率、和/或其它设计目标的其它因素将与服务器装置708和/或710相关联的计算任务和所存储的数据分布在计算装置800a、800b、和800c中。
计算集群809a、809b、和809c的集群存储阵列810a、810b、和810c可以是包括磁盘阵列控制器的数据存储阵列,该磁盘阵列控制器配置为管理对硬盘驱动器组的读取和写入访问。单独地或者与其相应的计算装置结合的磁盘阵列控制器还可以配置为管理存储在集群存储阵列中的数据的备份或者冗余副本,以防御磁盘驱动器或者其它集群存储阵列故障和/或防止一个或者多个计算装置访问一个或者多个集群存储阵列的网络故障。
与服务器装置708和/或710的功能可以分布在计算集群809a、809b、和809c的计算装置800a、800b、和800c中的方式相似,这些部件的数据的各种有效部分和/或备份部分可以分布在集群存储阵列810a、810b、和810c中。例如,一些集群存储阵列可以配置为存储服务器装置708和/或710的一个或者多个模块/部件的数据,而其它集群存储阵列可以存储服务器装置708和/或710的其它模块/部件的数据。另外,一些集群存储阵列可以配置为存储在其它集群阵列中存储的数据的备份版本。
计算集群809a、809b、809c中的集群路由器811a、811b、和811c可以包括配置为向计算集群提供内部和外部通信的网络设备。例如,计算集群809a中的集群路由器811a可以包括一个或者多个互联网切换和路由装置,该一个或者多个互联网切换和路由装置配置为经由本地集群网络812a提供(i)计算装置800a与集群存储阵列801a之间的局域网通信,并且经由与网络706的广域网连接813a提供(ii)计算集群809a与计算集群809b和809c之间的广域网通信。集群路由器811b和811c可以包括与集群路由器811a相似的网络设备,并且集群路由器811b和811c可以对计算集群809a和809b执行与集群路由器811对计算集群809a执行的网络功能相似的网络功能。
在一些实施例中,集群路由器811a、811b、和811c的配置可以至少部分地基于计算装置和集群存储阵列的数据通信要求、集群路由器811a、811b、和811c中的网络设备的数据通信能力、本地网络812a、812b、812c的延迟和吞吐量、延迟、吞吐量、和广域网链路813a、813b、和813c的成本、和/或可以有助于调节系统架构的成本、速度、容错性、弹性、效率、和/或其它设计目标的其它因素。
示例操作方法
图9是图示了根据实施例的方法900的流程图。方法900可以由加载计算装置(诸如,但不限于,一个或者多个计算装置800,诸如上面在图8A的上下文中所讨论的)执行。例如,计算装置800的数据存储装置804可以存储计算机可读指令806,该计算机可读指令在由计算装置800的一个或者多个处理器803执行时可以使计算装置800执行方法900的至少本文描述的特征。
方法900从框910中开始,其中,加载计算装置可以接收将测试计算装置还原至包括测试计算装置的多个软件部件的已知软件配置的请求(诸如上面至少在图3A的方法302的框310、图3B的方法380、以及表1的脚本的上下文中讨论的)。
在框920中,在接收到将测试计算装置还原至已知软件配置的请求之后,加载计算装置可以通过至少执行框930、932、和934的过程(诸如上文至少在图3A的方法302的框310、图3B的方法380、以及表1的脚本的上下文中讨论的)将测试计算装置还原至已知软件配置。
在框930中,加载计算装置可以从计算机可读存储装置获取软件映像(诸如上文至少在图3A的方法302的框350、360、362、364、图3B的方法380、以及表1的脚本的上下文中讨论的)。软件映像可以存储已知软件配置的至少一部分,并且软件映像可以包括具有与多个软件部件相关联的一个或者多个安全场境的安全场境数据,其中,一个或者多个安全场境的特定安全场境包括身份、角色、和域,诸如上文至少在方法200的框260、图3A的方法302的框360至364、图3B的方法380、以及表1的脚本的上下文中讨论的。例如,表1的脚本包括“make_sc_script”函数以产生包含命令的安全场境脚本。当执行安全场境脚本时,命令可以为一个或者多个文件和/或软件映像的其它软件部件设置安全场境。该安全场境脚本可以是和/或包含安全场境数据。
在框932中,加载计算装置可以至少将所获取的软件映像的多个软件部件存储到测试计算装置上,诸如上文至少在图3A的方法302的框352和362、图3B的方法380、以及表1的脚本的上下文中讨论的。例如,表1的脚本包括“restore”函数以将关于所获取的软件映像的多个软件部件的所保存的信息存储到测试计算装置上。
在框934中,加载计算装置可以在将多个软件部件存储到测试计算装置上之后,使用与软件映像一起存储的安全场境数据为存储在测试计算装置上的多个软件部件设置一个或者多个安全场境,诸如上面至少在图3A的方法302的框364、图3B的方法380、以及表1的脚本的上下文中讨论的。例如,表1的脚本包括执行上文在框930中讨论的安全场境脚本的“restore_filesystem”函数,其中,安全场境脚本可以为存储在测试计算装置上的多个软件部件设置一个或者多个安全场境。
在一些实施例中,方法900可以进一步包括:通过加载计算装置存储测试计算装置的更新的软件配置的映像作为存储已知软件配置的软件映像,其中,更新的软件配置包括基于对软件配置的一个或者多个设置的一个或者多个选择而更新的测试计算装置的软件配置,诸如上文至少在图2B中描绘的方法280的框286和288的上下文中讨论的。
在其它实施例中,测试计算装置可以包括可划分成多个分区的测试计算机可读存储装置。然后,存储测试计算装置的更新的软件配置的映像作为软件映像包括:通过加载计算装置使用第一存储技术来确定要存储的多个分区中的一个或者多个第一分区;通过加载计算装置使用第一存储技术来存储一个或者多个第一分区作为软件映像的一部分;通过加载计算装置使用第二存储技术来确定多个分区中的一个或者多个第二分区;以及使用第二存储技术来存储一个或者多个存储分区作为软件映像的一部分,诸如上面至少在图3A的方法202的框250和260以及表1的脚本的上下文中讨论的。例如,表1的脚本包括“snapshot”函数以存储关于测试计算装置的多个软件部件的所保存的信息作为一个或者多个快照,其中,使用由表1脚本的“snapshot”函数调用的“snapshot_filesystem”和“snapshot_byte4byte”函数表示的两个示例存储技术来获取快照。在特定实施例中,第一存储技术包括逐字节存储技术,并且第二存储技术包括逐文件复制存储技术,诸如上面至少在表1的脚本的相应“snapshot_byte4byte”和“snapshot_filesystem”函数的上下文中讨论的。
在其它特定实施例中,一个或者多个第二分区中的特定第二分区包括多个文件,该多个文件包括特定文件,并且其中,针对与软件映像的一个或者多个部件相关联的一个或者多个安全场境存储软件映像的安全场境数据包括:确定特定文件的特定安全场境;并且存储特定文件的特定安全场境的数据作为与软件映像一起存储的安全场境数据的至少部分,诸如上面至少在图3A的方法202的框260、262、264以及表1的脚本的上下文中讨论的。例如,表1的脚本包括“make_sc_script”函数以确定安全场境数据并且将安全场境数据保存到安全场境脚本中。在甚至其它特定实施例中,基于软件映像的所存储的安全场境数据来设置软件映像的一个或者多个部件的一个或者多个安全场境可以包括:从与软件映像一起存储的安全场境数据中确定特定文件的特定安全场境,并且通过加载计算装置将特定文件的安全场境设置为特定安全场境。例如,表1的脚本的“restore”函数可以执行上述安全场境脚本来设置特定文件的安全场境。
在又一实施例中,方法900可以包括:尝试进行包括测试计算装置的测试会话,诸如上面至少在计算装置100、200、方法102、202、280、用户界面420、场景440、以及图1、2A、2B、和4的上下文中讨论的。在特定实施例中,尝试进行测试会话可以包括:通过加载计算装置确定在测试会话期间要测试的一个或者多个软件实体;通过加载计算装置确定一个或者多个软件实体是否为可疑软件实体;并且在确定一个或者多个软件实体是可疑软件实体之后,加载计算装置确定要避免进行测试会话,诸如上面至少在方法102的框140和150以及图1中描绘的计算装置100的上下文中讨论的。
在甚至其它实施例中,方法900可以包括:进行包括测试计算装置的测试会话;在进行测试会话之后,通过加载计算装置确定是否要将测试计算装置还原至已知软件配置;并且在确定要将测试计算装置还原至已知软件配置之后,加载计算装置:从测试计算装置移除在测试会话期间存储在其上的一个或者多个软件应用;从测试计算装置移除在测试会话期间存储在其上的一个或者多个应用数据文件;以及从测试计算装置移除在测试会话期间存储在其上的一个或者多个调试日志文件,诸如上面至少在图3B中描绘的方法102的框382、384、386、和388以及图6中描绘的场景400的计算装置300a和用户界面620的上下文中讨论的。
在再一实施例中,方法900可以包括:进行包括测试计算装置的测试会话;在进行测试会话之后,通过加载计算装置确定是否要将测试计算装置还原至已知软件配置;并且在确定要将测试计算装置还原至已知软件配置之后,通过加载计算装置清理测试计算装置的内核消息缓冲区,诸如上面至少在图3B中描绘的方法102的框382、390以及图6中描绘的场景400的计算装置300a和用户界面620的上下文中讨论的。
以上详细说明参照附图描述了所公开的系统、装置、和方法的各种特征和功能。在附图中,除非上下文另有指出,否则类似的符号通常表示类似的部件。在详细描述、附图、和权利要求书中描述的说明性实施例不意味着是限制性的。在不脱离本文提出的主题的精神或者范围的情况下,可以利用其它实施例,并且可以进行其它改变。容易理解的是,可以按照各种不同的配置(本文对所有的不同配置进行了明确地预期)来布置、替换、组合、分离、和设计本公开的方面(如本文一般性描述的和在附图中图示的)。
针对示意图中的和如本文讨论的梯形图、场景、和流程图中的任何一个或者全部,各个框和/或通信可以表示根据示例实施例的信息的处理和/或信息的传输。替代实施例包括在这些示例实施例的范围内。例如,在这些替代实施例中,可以按照与示出或者讨论的顺序之外的顺序(包括按照大体上同时或者相反的顺序,这取决于涉及的功能)来执行被描述为框、传输、通信、请求、响应、和/或消息的功能。进一步地,可以结合本文所讨论的梯形图、场景、和流程图中的任何一个使用更多或者更少的框和/或功能,并且这些梯形图、场景、和流程图可以部分地或者整体地彼此结合。
表示信息的处理的框可以与可以配置为执行本文描述的方法或者技术的特定逻辑功能的电路系统对应。可替代地或者另外,表示信息的处理的框可以与模块、片段、或者程序代码的一部分对应,并且可以包括相关数据或者其它数据。程序代码可以包括可由处理器执行的一个或者多个指令,以便实施方法或者技术中的特定逻辑功能或者动作。可以将程序代码和/或相关数据存储在任何类型的计算机可读介质(诸如,存储装置,包括磁盘驱动器、硬盘驱动器、或者其它存储介质)上。
计算机可读介质还可以包括非暂时性计算机可读介质,诸如,在短时间段内存储数据的非暂时性计算机可读介质,比如,寄存器存储器、处理器高速缓存、以及随机存取存储器(RAM)。计算机可读介质还可以包括在较长时间段内存储程序代码和/或数据的非暂时性计算机可读介质,诸如,例如,辅助长期存储装置或者持久长期存储装置,比如,只读存储器(ROM)、光盘或者磁盘、压缩光盘只读存储器(CD-ROM)。计算机可读介质还可以是任何其它易失性存储系统或者非易失性存储系统。例如,可以将计算机可读介质视为计算机可读存储介质或者有形存储装置。
此外,表示一个或者多个信息传输的框可以与在相同物理装置中的软件模块和/或硬件模块之间的信息传输对应。然而,其它信息传输可以在不同物理装置中的软件模块和/或硬件模块之间。
虽然本文已经公开了各种方面和实施例,但对本领域的技术人员而言,其它方面和实施例将是显而易见的。本文所公开的各种方面和实施例是为了进行说明,而不旨在进行限制,真实范围用以下权利要求书指示。

Claims (20)

1.一种用于测试安全的方法,所述方法包括:
由加载计算装置接收将测试计算装置还原至包括用于所述测试计算装置的多个软件部件的已知软件配置的请求,其中所述测试计算装置包括可划分成多个分区的测试计算机可读存储装置;以及
在接收到将所述测试计算装置还原至所述已知软件配置的所述请求之后,至少通过以下操作将所述测试计算装置还原至所述已知软件配置:
由所述加载计算装置从计算机可读存储装置获取软件映像,所述软件映像存储所述已知软件配置的至少一部分,其中,所述软件映像包括具有与所述多个软件部件相关联的一个或者多个安全场境的安全场境数据,以及其中,所述一个或者多个安全场境中的特定安全场境包括身份、角色、和域,
由所述加载计算装置通过至少以下操作来至少将所获取的软件映像的所述多个软件部件存储到所述测试计算装置上:
由所述加载计算装置使用第一存储技术来确定要存储的所述多个分区中的一个或者多个第一分区,所述第一存储技术包括逐字节存储技术;
由所述加载计算装置使用所述第一存储技术来存储所述一个或者多个第一分区作为所述软件映像的一部分;
由所述加载计算装置使用第二存储技术来确定要存储的所述多个分区中的一个或者多个第二分区,所述第二存储技术包括逐文件存储技术;以及
使用所述第二存储技术来存储所述一个或者多个存储分区作为所述软件映像的一部分,以及
在将所述多个软件部件存储到所述测试计算装置上之后,使用与所述软件映像一起存储的所述安全场境数据,为存储在所述测试计算装置上的所述多个软件部件设置一个或者多个安全场境。
2.根据权利要求1所述的方法,所述方法进一步包括:
由所述加载计算装置存储所述测试计算装置的更新的软件配置的映像作为存储所述已知软件配置的所述软件映像,其中,所述更新的软件配置包括基于用于所述软件配置的一个或者多个设置的一个或者多个选择而更新的所述测试计算装置的软件配置。
3.根据权利要求1所述的方法,进一步包括:
至少禁用与所述测试计算装置的无线通信。
4.根据权利要求1所述的方法,进一步包括:
在接收到将所述测试计算装置还原至所述已知软件配置的所述请求之后,移除在所述测试计算装置上安装的一个或者多个应用。
5.根据权利要求1所述的方法,其中,所述一个或者多个第二分区中的特定第二分区包括多个文件,所述多个文件包括特定文件,并且其中,针对与所述软件映像的一个或者多个部件相关联的一个或者多个安全场境存储所述软件映像的所述安全场境数据包括:
确定用于所述特定文件的特定安全场境;以及
存储用于所述特定文件的所述特定安全场境的数据作为与所述软件映像一起存储的安全场境数据的至少部分。
6.根据权利要求5所述的方法,其中,基于所述软件映像的所存储的安全场境数据来设置所述软件映像的所述一个或者多个部件的所述一个或者多个安全场境:
从与所述软件映像一起存储的所述安全场境数据中确定所述特定文件的所述特定安全场境;以及
由所述加载计算装置将所述特定文件的安全场境设置为所述特定安全场境。
7.根据权利要求1所述的方法,所述方法进一步包括:
尝试进行包括所述测试计算装置的测试会话。
8.根据权利要求7所述的方法,其中,尝试进行所述测试会话包括:
由所述加载计算装置确定在所述测试会话期间要测试的一个或者多个软件实体;
由所述加载计算装置确定所述一个或者多个软件实体是否为可疑软件实体;以及
在确定所述一个或者多个软件实体是可疑软件实体之后,所述加载计算装置确定要避免进行所述测试会话。
9.根据权利要求1所述的方法,所述方法进一步包括:
进行包括所述测试计算装置的测试会话;
在进行所述测试会话之后,由所述加载计算装置确定是否要将所述测试计算装置还原至所述已知软件配置;以及
在确定要将所述测试计算装置还原至所述已知软件配置之后,所述加载计算装置:
从所述测试计算装置移除在所述测试会话期间存储在其上的一个或者多个软件应用,
从所述测试计算装置移除在所述测试会话期间存储在其上的一个或者多个应用数据文件,以及
从所述测试计算装置移除在所述测试会话期间存储在其上的一个或者多个调试日志文件。
10.根据权利要求1所述的方法,所述方法进一步包括:
进行包括所述测试计算装置的测试会话;
在进行所述测试会话之后,由所述加载计算装置确定是否要将所述测试计算装置还原至所述已知软件配置;以及
在确定要将所述测试计算装置还原至所述已知软件配置之后,由所述加载计算装置清理所述测试计算装置的内核消息缓冲区。
11.一种计算装置,所述计算装置包括:
一个或者多个处理器;以及
数据存储装置,所述数据存储装置配置为至少存储软件映像和可执行指令,其中,所述可执行指令在由所述一个或者多个处理器执行时使所述计算装置执行功能,所述功能包括:
接收将测试计算装置还原至包括所述测试计算装置的多个软件部件的已知软件配置的请求,其中所述测试计算装置包括可划分成多个分区的测试计算机可读存储装置,以及
在接收到将所述测试计算装置还原至所述已知软件配置的所述请求之后,至少通过以下操作将所述测试计算装置还原至所述已知软件配置:
从所述数据存储装置获取所述软件映像,所述软件映像存储所述已知软件配置,其中,所述软件映像包括具有与所述多个软件部件相关联的一个或者多个安全场境的安全场境数据,以及其中,所述一个或者多个安全场境中的特定安全场境包括身份、角色、和域,
通过至少以下操作来至少将所获取的软件映像的所述多个软件部件存储到所述测试计算装置上:
由加载计算装置使用第一存储技术来确定要存储的所述多个分区中的一个或者多个第一分区,所述第一存储技术包括逐字节存储技术;
由所述加载计算装置使用所述第一存储技术来存储所述一个或者多个第一分区作为所述软件映像的一部分;
由所述加载计算装置使用第二存储技术来确定要存储的所述多个分区中的一个或者多个第二分区,所述第二存储技术包括逐文件存储技术;以及
使用所述第二存储技术来存储所述一个或者多个存储分区作为所述软件映像的一部分,以及
在将所述多个软件部件存储到所述测试计算装置上之后,使用与所述软件映像一起存储的所述安全场境数据为存储在所述测试计算装置上的所述多个软件部件设置一个或者多个安全场境。
12.根据权利要求11所述的计算装置,其中,所述功能进一步包括:
存储所述测试计算装置的更新的软件配置的映像作为存储所述已知软件配置的所述软件映像,其中,所述更新的软件配置包括基于对用于所述软件配置的一个或者多个设置的一个或者多个选择而更新的所述测试计算装置的软件配置。
13.根据权利要求11所述的计算装置,进一步包括:
至少禁用与所述测试计算装置的无线通信。
14.根据权利要求11所述的计算装置,其中,所述一个或者多个第二分区中的特定第二分区包括多个文件,所述多个文件包括特定文件,并且其中,针对与所述软件映像的一个或者多个部件相关联的一个或者多个安全场境存储所述软件映像的所述安全场境数据包括:
确定用于所述特定文件的特定安全场境;以及
存储用于所述特定文件的所述特定安全场境的数据作为与所述软件映像一起存储的安全场境数据的至少部分。
15.根据权利要求14所述的计算装置,其中,基于所述软件映像的所存储的安全场境数据来设置所述软件映像的所述一个或者多个部件的所述一个或者多个安全场境:
从与所述软件映像一起存储的所述安全场境数据中确定所述特定文件的所述特定安全场境;以及
将所述特定文件的安全场境设置为所述特定安全场境。
16.根据权利要求11所述的计算装置,其中,所述功能进一步包括:
至少通过以下操作来尝试进行包括所述测试计算装置的测试会话:
确定在所述测试会话期间要测试的一个或者多个软件实体;
确定所述一个或者多个软件实体是否为可疑软件实体;以及
在确定所述一个或者多个软件实体是可疑软件实体之后,确定避免进行所述测试会话。
17.根据权利要求11所述的计算装置,其中,所述功能进一步包括:
进行包括所述测试计算装置的测试会话;
在进行所述测试会话之后,确定是否要将所述测试计算装置还原至所述已知软件配置;以及
在确定要将所述测试计算装置还原至所述已知软件配置之后:
从所述测试计算装置移除在所述测试会话期间存储在其上的一个或者多个软件应用,
从所述测试计算装置移除在所述测试会话期间存储在其上的一个或者多个应用数据文件,以及
从所述测试计算装置移除在所述测试会话期间存储在其上的一个或者多个调试日志文件。
18.根据权利要求11所述的计算装置,其中,所述功能进一步包括:
进行包括所述测试计算装置的测试会话;
在进行所述测试会话之后,确定是否要将所述测试计算装置还原至所述已知软件配置;以及
在确定要将所述测试计算装置还原至所述已知软件配置之后,清理所述测试计算装置的内核消息缓冲区。
19.一种用于测试安全的产品,所述产品包括存储有指令的有形计算机可读存储介质,所述指令响应于由计算装置的一个或者多个处理器执行而使所述计算装置执行功能,所述功能包括:
接收将测试计算装置还原至包括所述测试计算装置的多个软件部件的已知软件配置的请求,其中所述测试计算装置包括可划分成多个分区的测试计算机可读存储装置;以及
在接收到将所述测试计算装置还原至所述已知软件配置的所述请求之后,至少通过以下操作将所述测试计算装置还原至所述已知软件配置:
从计算机可读存储装置获取软件映像,所述软件映像存储所述已知软件配置,其中,所述软件映像包括具有与所述多个软件部件相关联的一个或者多个安全场境的安全场境数据,以及其中,所述一个或者多个安全场境中的特定安全场境包括身份、角色、和域,
通过至少以下操作来至少将所获取的软件映像的所述多个软件部件存储到所述测试计算装置上:
由加载计算装置使用第一存储技术来确定要存储的所述多个分区中的一个或者多个第一分区,所述第一存储技术包括逐字节存储技术;
由所述加载计算装置使用所述第一存储技术来存储所述一个或者多个第一分区作为所述软件映像的一部分;
由所述加载计算装置使用第二存储技术来确定要存储的所述多个分区中的一个或者多个第二分区,所述第二存储技术包括逐文件存储技术;以及
使用所述第二存储技术来存储所述一个或者多个存储分区作为所述软件映像的一部分,以及
在将所述多个软件部件存储到所述测试计算装置上之后,使用与所述软件映像一起存储的所述安全场境数据,为存储在所述测试计算装置上的所述多个软件部件设置一个或者多个安全场境。
20.根据权利要求19所述的产品,其中,所述功能进一步包括:
存储所述测试计算装置的更新的软件配置的映像作为存储所述已知软件配置的所述软件映像,其中,所述更新的软件配置包括基于对所述软件配置的一个或者多个设置的一个或者多个选择而更新的所述测试计算装置的软件配置。
CN201680034522.0A 2015-10-30 2016-09-23 在测试设施中的移动计算装置安全的方法和设备 Active CN107710215B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/928,961 US9864655B2 (en) 2015-10-30 2015-10-30 Methods and apparatus for mobile computing device security in testing facilities
US14/928,961 2015-10-30
PCT/US2016/053574 WO2017074624A1 (en) 2015-10-30 2016-09-23 Methods and apparatus for mobile computing device security in testing facilities

Publications (2)

Publication Number Publication Date
CN107710215A CN107710215A (zh) 2018-02-16
CN107710215B true CN107710215B (zh) 2020-12-15

Family

ID=57104200

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680034522.0A Active CN107710215B (zh) 2015-10-30 2016-09-23 在测试设施中的移动计算装置安全的方法和设备

Country Status (4)

Country Link
US (1) US9864655B2 (zh)
EP (1) EP3369030B1 (zh)
CN (1) CN107710215B (zh)
WO (1) WO2017074624A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106971103B (zh) * 2016-02-25 2018-12-14 三星半导体(中国)研究开发有限公司 在电子终端中管理应用程序权限的方法
US10387656B2 (en) * 2016-03-21 2019-08-20 Checkmarx Ltd. Integrated interactive application security testing
DE102016224256A1 (de) * 2016-12-06 2018-06-07 Bayerische Motoren Werke Aktiengesellschaft Telefonie-Steuergerät, Fortbewegungsmittel und Verfahren zum Betreiben eines Mobilfunk-Moduls für ein Fortbewegungsmittel
EP3711279A1 (en) 2017-11-15 2020-09-23 XM Cyber Ltd. Selectively choosing between actual-attack and simulation/evaluation for validating a vulnerability of a network node during execution of a penetration testing campaign
US10791137B2 (en) * 2018-03-14 2020-09-29 Synack, Inc. Risk assessment and remediation
US10769174B2 (en) * 2018-05-31 2020-09-08 International Business Machines Corporation Site-consolidated disaster-recovery with synchronous-to-asynchronous traffic conversion
US10776394B2 (en) 2018-05-31 2020-09-15 International Business Machines Corporation Synchronous site-consolidated data backup with synchronous-to-asynchronous traffic conversion
US10776327B2 (en) * 2018-08-29 2020-09-15 Seagate Technology Llc Storage device manufacturing and associated block chain generation thereof
WO2020121078A1 (en) * 2018-12-13 2020-06-18 Xm Cyber Ltd. Systems and methods for dynamic removal of agents from nodes of penetration testing systems
US11283827B2 (en) 2019-02-28 2022-03-22 Xm Cyber Ltd. Lateral movement strategy during penetration testing of a networked system
US11206281B2 (en) 2019-05-08 2021-12-21 Xm Cyber Ltd. Validating the use of user credentials in a penetration testing campaign
US10880326B1 (en) 2019-08-01 2020-12-29 Xm Cyber Ltd. Systems and methods for determining an opportunity for node poisoning in a penetration testing campaign, based on actual network traffic
US11205041B2 (en) 2019-08-15 2021-12-21 Anil Kumar Web element rediscovery system and method
US11005878B1 (en) 2019-11-07 2021-05-11 Xm Cyber Ltd. Cooperation between reconnaissance agents in penetration testing campaigns
US11575700B2 (en) 2020-01-27 2023-02-07 Xm Cyber Ltd. Systems and methods for displaying an attack vector available to an attacker of a networked system
US11582256B2 (en) 2020-04-06 2023-02-14 Xm Cyber Ltd. Determining multiple ways for compromising a network node in a penetration testing campaign
CN111901095B (zh) * 2020-07-23 2021-04-30 上海世麦智能科技有限公司 一种基于硬件加密的安全启动方法及系统

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4953084A (en) 1987-11-16 1990-08-28 Hewlett-Packard Company Method and apparatus using variable ranges to support symbolic debugging of optimized code
US6151701A (en) 1997-09-30 2000-11-21 Ahpah Software, Inc. Method for reconstructing debugging information for a decompiled executable file
US6135650A (en) 1995-12-22 2000-10-24 Sun Microsystems, Inc. Method and system for wrapper routine optimization
US6145122A (en) 1998-04-27 2000-11-07 Motorola, Inc. Development interface for a data processor
US7117131B2 (en) 1998-05-26 2006-10-03 Definiens Ag Method for characterizing a complex system
GB9825102D0 (en) 1998-11-16 1999-01-13 Insignia Solutions Plc Computer system
US7020697B1 (en) 1999-10-01 2006-03-28 Accenture Llp Architectures for netcentric computing systems
US6598221B1 (en) 2000-04-13 2003-07-22 Koninklijke Philips Electronics N.V. Assembly code performance evaluation apparatus and method
US6829733B2 (en) 2001-05-07 2004-12-07 National Instruments Corporation System and method for graphically detecting differences between test executive sequence files
US20030221184A1 (en) 2002-05-22 2003-11-27 Gunjal Atul Narayan Template-based application development system
US7051238B2 (en) 2002-07-30 2006-05-23 Hewlett-Packard Development Company, L.P. Method and system for using machine-architecture support to distinguish function and routine return values
US7219338B2 (en) 2003-03-25 2007-05-15 Microsoft Corporation Multi-language compilation
US7418697B2 (en) 2003-07-25 2008-08-26 Microsoft Corporation Method and system for fast application debugging
US20050273776A1 (en) 2004-06-08 2005-12-08 Intel Corporation Assembler supporting pseudo registers to resolve return address ambiguity
US20050278707A1 (en) 2004-06-09 2005-12-15 Intel Corporation Method and system providing virtual resource usage information
US7870540B2 (en) 2004-07-09 2011-01-11 Microsoft Corporation Dynamic object validation
US20060123233A1 (en) 2004-12-08 2006-06-08 Aaron Jeffrey A Methods, systems and computer program products for providing customized levels of security
US7603712B2 (en) 2005-04-21 2009-10-13 Microsoft Corporation Protecting a computer that provides a Web service from malware
US20070288644A1 (en) 2006-06-07 2007-12-13 Cesar Augusto Rojas Systems and methods for developing and running applications in a web-based computing environment
JP2009544012A (ja) * 2006-07-10 2009-12-10 アステリオン・インコーポレイテッド 試験システムで処理を実行するシステムおよび方法
US7805707B2 (en) 2006-07-21 2010-09-28 Novell, Inc. System and method for preparing runtime checks
US8817295B2 (en) * 2006-08-31 2014-08-26 Brother Kogyo Kabushiki Kaisha Communication system and printer therefor
US7676503B2 (en) 2006-11-27 2010-03-09 Microsoft Corporation Hybrid computer restore using network service
US20130276061A1 (en) 2007-09-05 2013-10-17 Gopi Krishna Chebiyyam System, method, and computer program product for preventing access to data with respect to a data access attempt associated with a remote data sharing session
GB2454263A (en) 2007-11-05 2009-05-06 Picochip Designs Ltd Generating debug information from low level program code
JP4909877B2 (ja) 2007-11-29 2012-04-04 株式会社東芝 デバッグ装置及びデバッグ方法
US8307456B2 (en) 2008-02-28 2012-11-06 Red Hat, Inc. Systems and methods for a secure guest account
US20090307763A1 (en) * 2008-06-05 2009-12-10 Fiberlink Communications Corporation Automated Test Management System and Method
US8479166B2 (en) 2008-08-25 2013-07-02 International Business Machines Corporation Detecting locking discipline violations on shared resources
US8826443B1 (en) 2008-09-18 2014-09-02 Symantec Corporation Selective removal of protected content from web requests sent to an interactive website
US8533844B2 (en) 2008-10-21 2013-09-10 Lookout, Inc. System and method for security data collection and analysis
WO2010050777A2 (en) 2008-10-31 2010-05-06 Samsung Electronics Co., Ltd. Method and system for synchronizing attributes among electronic devices
US8291261B2 (en) 2008-11-05 2012-10-16 Vulcan Technologies Llc Lightweight application-level runtime state save-and-restore utility
US8726394B2 (en) 2009-12-15 2014-05-13 Seeker Security Ltd. Method and system of runtime analysis
US9015129B2 (en) 2010-02-09 2015-04-21 Veeam Software Ag Cross-platform object level restoration from image level backups
US8516446B2 (en) 2010-05-21 2013-08-20 Apple Inc. Automated qualification of a binary application program
CN102339219B (zh) 2010-07-20 2016-08-24 甲骨文国际公司 用于支持面向对象脚本工具的系统和方法
US8566648B2 (en) 2011-02-02 2013-10-22 Salesforce, Inc. Automated testing on devices
US8874520B2 (en) 2011-02-11 2014-10-28 Symantec Corporation Processes and methods for client-side fingerprint caching to improve deduplication system backup performance
US20120253745A1 (en) 2011-03-28 2012-10-04 Infosys Technologies Limited System and method for testing performance of mobile application server
KR101281825B1 (ko) 2011-09-07 2013-08-23 주식회사 팬택 클라우드 시스템에서 가상 인터페이스를 이용하는 보안 강화 장치 및 방법
CA2889387C (en) 2011-11-22 2020-03-24 Solano Labs, Inc. System of distributed software quality improvement
US9563544B2 (en) 2012-01-10 2017-02-07 Sap Se Framework for automated testing of mobile apps
US8533836B2 (en) 2012-01-13 2013-09-10 Accessdata Group, Llc Identifying software execution behavior
US8918881B2 (en) 2012-02-24 2014-12-23 Appthority, Inc. Off-device anti-malware protection for mobile devices
US9152784B2 (en) * 2012-04-18 2015-10-06 Mcafee, Inc. Detection and prevention of installation of malicious mobile applications
US8874736B2 (en) 2012-04-23 2014-10-28 Hewlett-Packard Development Company, L.P. Event extractor
US8984097B1 (en) * 2012-05-23 2015-03-17 Symantec Corporation Efficient file replication which preserves the underlying extent structure
US20140020096A1 (en) 2012-07-11 2014-01-16 Clutch Mobile, Inc. System to profile application software
KR101402057B1 (ko) 2012-09-19 2014-06-03 주식회사 이스트시큐리티 위험도 계산을 통한 리패키지 애플리케이션의 분석시스템 및 분석방법
US9459994B2 (en) 2013-02-20 2016-10-04 Kony, Inc. Mobile application testing systems and methods
US20140298462A1 (en) * 2013-03-29 2014-10-02 Sky Socket, Llc Restricted Software Automated Compliance
US9021443B1 (en) 2013-04-12 2015-04-28 Google Inc. Test automation API for host devices
US9934395B2 (en) * 2015-09-11 2018-04-03 International Business Machines Corporation Enabling secure big data analytics in the cloud

Also Published As

Publication number Publication date
US9864655B2 (en) 2018-01-09
WO2017074624A1 (en) 2017-05-04
CN107710215A (zh) 2018-02-16
US20170123925A1 (en) 2017-05-04
EP3369030A1 (en) 2018-09-05
EP3369030B1 (en) 2019-08-07

Similar Documents

Publication Publication Date Title
CN107710215B (zh) 在测试设施中的移动计算装置安全的方法和设备
US11741195B2 (en) Secure deployment of a software package
RU2714607C2 (ru) Двукратная самодиагностика памяти для защиты множества сетевых конечных точек
US9219611B1 (en) Systems and methods for automating cloud-based code-signing services
JP6196393B2 (ja) プリインストールアプリケーションのスキャンを最適化するためのシステム及び方法
US9471469B2 (en) Software automation and regression management systems and methods
US9813443B1 (en) Systems and methods for remediating the effects of malware
US12041072B2 (en) Software release tracking and logging
US20170093972A1 (en) Systems and methods for restoring data from opaque data backup streams
US8190757B1 (en) Systems and methods for automatically binding client-side applications with backend services
US9524215B1 (en) Systems and methods for managing virtual machine backups
US10382429B2 (en) Systems and methods for performing secure backup operations
CN112313629B (zh) 备份和恢复验证
CN101436150A (zh) 用于复制数据到辅助存储装置上的方法和系统
US10318272B1 (en) Systems and methods for managing application updates
US9037821B1 (en) Systems and methods for replicating snapshots across backup domains
US9219707B1 (en) Systems and methods for sharing the results of malware scans within networks
US8433895B1 (en) Methods and systems for securely managing multimedia data captured by mobile computing devices
US9146950B1 (en) Systems and methods for determining file identities
US11341270B2 (en) Automatically redacting logs
EP3151154B1 (en) Data access control based on storage validation
US10999310B2 (en) Endpoint security client embedded in storage drive firmware
US9852200B1 (en) Systems and methods for restoring data files
CN114584556B (zh) 文件传输方法和装置
WO2018094268A1 (en) Systems and methods for performing secure backup operations

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