云测试

1,473 阅读11分钟

其实我们经常在想一个东西,就是需要测试的东西如果能自动被测试好,该有多少啊,扔过去未测产品,扔回来的就是测试结果,中间怎么测,我不在乎,我只要这个结果正确就行了。

  当然现实中,我们不太可能达到这个想法,所以退而求其次,我只告诉你需要测哪些地方,但是我不提供任何环境,你自己帮我搞定一切,多少时间内给我结果。这个时候我们需要云的帮助了,那怎么帮助呢?特别简单,只要我们把要做的事情写下来,然后发给云,它就直接可以去做了,当然要做的事情写下来的过程需要有一定的格式,需要云能看懂,这些格式根据要做的事情的不同而不同,举个例子先吧,

  一个软件产品,我们需要测试其负载能力、稳定性、安全性、可适用性等等方面,如果在本地做的话,就会需要大量的硬件资源、软件资源、人力资源与时间资源,而对于云而言,它本身就是建立在网络化、虚拟化的基础上,也就意味着它的背后其实有大量硬件资源、软件资源做支撑。所以我们这个测试,需要做的事情就是把负载测试的脚本、安全性里需要测试的类别(例如SQL注入测试、跨站点脚本问题等等)、测试需要覆盖的硬件系统(比如不同CPU,不同内存)与软件系统(不同操作系统,不同数据库,不同浏览器等等)范围通通发给云,云就会很快给出测试结果。

  为什么能够很快得出结果呢,因为云的力量很大,背后有大量的电脑在帮助工作(理论上,云可以包含着全球所有联网的计算机,让每个计算机都提供一部分性能来帮你做测试,你想想这个性能是多么的强大了,甚至有超级计算机也在帮忙),而一个公司再强大,也没法拥有这么大的资源进行测试。对于测试要求的不同硬件资源和软件资源,云不仅能通过调用旗下不同电脑的资源来帮助测试,也能通过强大的虚拟化技术实现

举个例子:一家IT公司要对软件产品实施自动化测试,传统的方法怎么做呢。首先它会找一台服务器,然后编写或购买自动化测试平台,部署网络,配置专门的自动化测试人员来按测试用例录制脚本;实现过程耗时、耗力、耗资金,且日常使用还需要大量投入:例如设备保管、系统维护,软件升级等;在云测试中,我们借助于云计算平台提供的各种硬件设备、软件系统、测试工具、自动化设计服务等等完成测试。用户只需制定好测试方案,就可以在云测试平台上完成软件的自动化测试,获得完整的测试分析结果。

特性:

计算资源服务化

• 所有计算资源以一种服务的方式提供,用户通过购买服务来使用计算资源,通过服务的方式,将计算机将计算资源封装起来,其技术、架构、运维、建设、升级等都对用户不可见,用户也无须关心

计算资源虚拟化

• 为了让计算资源能够让用户随需使用,根据其使用需求来动态扩展,最好的办法就是讲计算资源虚拟化,通过虚拟化是物理的计算资源柔性化,可以动态延展,随需改变

根据云计算的特征,我们可以看到云测试的特征。

云计算的特征上次刘环同学也说了,大家也能理解。计算资源的服务化和虚拟化。

**“测试资源”**服务化

软件测试本身以统一接口、统一表示方式实现为一种服务,用户通过访问这些服务,实现软件测试,而不用关注“测试”所使用得技术、运行过程、实现方式等。就像老师上次举例子 像自来水一样,打开水龙头就可以使用。

**“测试资源”**虚拟化

云计算的虚拟化实现方式,为云测试的虚拟化提供了较大的便利,测试资源的虚拟化,使得测试资源可以随用户的需求提供,动态延展,随需改变,就像天空中的云一样,万般变化。

云测试优点

在云平台上进行的测试,与传统的测试类似,包括功能测试、性能测试、安全性测试;

测试过程包括测试用例设计、测试问题的提交、测试计划、测试报告以及测试管理等工作。

但是相对于传统的本地测试来说,云计算平台的测试具有本地测试不具有的优越性,云测试主要有以下优点

1.节约成本

每个企业都在追求成本最低和利润最大化。软件测试作为研发生产过程的一部分也有降低成本的要求,即是用最少的机器购买最少的测试软件来完成软件测试工作。利用云测试可实现巨大节省,不需要购买或准备很多的个人电脑,购买和安装各类测试用软件,也不再需要部署复杂的网络。只需要列出测试目的、环境的要求、虚拟机台数、何时间断租用即可,实现按需支付。 例如购买一套自动化测试软件至少花8000元钱,测试中只需要使用2个月,但如果按800元/月租用该软件云测试平台,只需要支付1600元。同时随着企业软件版本和技术的发展,依赖的测试软件或环境亦需要升级换代,又会产生升级和维护费用。而在云测试环境中这些因素都无须企业考虑,交由提供云测试服务的供应商完成即可。

2立即可用

云测试提供一整套测试环境,测试人员利用虚拟桌面等手段登录到该测试环境,就可以立即展开测试。这将软硬件安装、环境配置、环境维护的代价转移给云测试提供者。以现在的虚拟化技术,创建一套新的测试环境只需几个小时。如果测试人员可以接受已创建好的标准测试环境,那么他可以立即登录使用。

3提高效率

用云测试这种方式,极大地减少了测试环境搭建时间,如机器和网络准备、操作系统安装、各种测试工具软件安装等都将节省,只需提前将需要的配置环境告诉云测试服务商,到时间直接使用即可。由于是基于网络上的应用,当测试中遇到软件使用上等问题时,亦可获得云测试服务商远程快速支持,而很少会出现停滞甚至停止测试现象。

便捷服务

云测试不但可以提供完整的测试环境,还可以提供各种便捷的服务。

云测试可以提供还原点将虚拟机重置到指定状态;

在测试执行过程中,能监控各种资源,帮助测试人员发现问题、定位错误;

云测试平台还可以提供专业的专家服务知识,使测试人员能获得专家级的详细测试分析结果。

有句话说,最高级的测试服务是提供专业知识的服务。这些知识可以通过测试用例、测试数据、自动测试服务等形式提供。测试人员可以获得云测试返回的测试结果:一份详细的分析报告和一大堆内存映像文件。

按需提供

测试过程中,不了解测试需求,导致测试资源的极大浪费,而云测试提供了一种按需测试的方式,用户可以灵活按需的部署测试资源、环境,当测试完成后可以释放相关资源。

**目前,**网络上出现许多云测试,都是各个厂商利用原有的工具、产品稍加变化以B/S(浏览器/服务器)的结构的方式展现出来,但在测试资源服务化、测试资源虚拟化等当面,还没有真正的实现,仅仅是被批了一层“云”的外衣。但无论怎样,有总比没有好。

真实模拟:云测试能够更加真实地模拟分布式虚拟用户环境,包括地理位置、浏览器。操作系统、网络宽带等特性,避免模拟用户形式的单一。

加速测试:当测试用例非常庞大或者是反复运行测试时,工作量就会显得非常大。利用“云”可以并发地运行测试用例,加速测试进程

B/S型模式,即浏览器/服务器结构

在云环境中的测试:利用云资源对其他的软件系统进行测试

针对云的测试:涉及云计算内部结构、功能扩展和资源配置等多方面测试问题,测试部署在云环境中的各种云计算软件。

云计算:

ß Lass:基础设施即服务

ß Pass:平台即服务

ß Sass:软件即服务

抽象模型:

Ø 软件测试基础设施及服务**(Iaas):硬件资源:**是把计算、存储、网络以及搭建测试环境所需的一些工具当成服务提供给用户,是用户能够按需获取IT基础设施;

Ø 软件测试开发平台即服务**(Paas)****:测试开发环境、数据库等:**把测试软件的开发、测试和部署环境当做服务,基于互联网提供给用户,为用户提供数据库、操作系统、测试开发环境等;

Ø **软件测试服务(Taas):测试相关工具、系统:**是一种基于互联网提供软件测试服务的应用模式,用户可在线使用各种测试服务,如测试自动设计、自动化功能测试、测试管理等;

Ø 计费认证平台**:**实现用户认证,提供各种服务层面的费用计算,支持多种计费方式;

Ø **运维管理平台:**支持所有资源以及活动的自动监控和管理,使得几个人能轻松地管理数千台的物理设备;

Ø **服务管理平台:**运营云测试服务的平台,可实现从服务请求、监控管理到服务结束的所有活动,是一个自动化的管理系统,可以管理云测试的所有资源及服务。

Ø

云计算有众多优势,不可避免的对云测试带来了极大的冲击与挑战,体现在以下方面:

1**.****数据安全:**用户数据都是基于云环境的,会涉及用户敏感数据的隐私问题;

2**。服务保障:**尽管云服务推崇的是资源和应能的可扩展性、可用性,事实上,比较著名的厂商,亚马逊,谷歌等也出现过由于某些故障(如响应时间长、网络带宽等)导致服务不可用。这大大降低了人们使用云服务的热情。而如何构建这样的一个可用性测试环境显得比以往更为复杂

3**。并发问题**:云服务可以迅捷的低筒测试其他软件所需要的资源和环境,但并不是所有的测试过程和场景都适合云测试框架,其中还需要考虑系统间、测试用例之间的相互依赖关系。

4**.****虚拟化问题:**虚拟化技术提高了资源的利用率,然而并不是所有的测试都支持虚拟化技术;同时,在一台机器上产生的多个虚拟设备存在资源的竞争,所以测试结果可能会与实际有一定的偏差。

Selenium是一个用于Web应用程序测试的工具

真机测试

自动化测试

云测试