科学网

 找回密码
  注册

tag 标签: 软件测试

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

软件质量与软件测试相关问题(2)
minekirito 2018-11-17 15:35
以下为本人 软件质量与软件测试课程 的部分关键笔记,有需要的可以借鉴一下 1. 单元测试的原则 对于结构化编程语言,测试的单元一般是函数或子过程。对于面向对象的语言一般选择类作为测试单元。对于图形化软件,一般选择窗口菜单或控件作为一个测试单元 补充:尽量不要干涉原来的代码。其次代码要只是测试某个class里面的一个特定的function。这个function不能太简单,太简单就没有测试的意义;也不能太复杂,不应该牵涉太多其他的class。 2. 单元测试的过程 根据项目计划、详细设计文档编写单元测试计划文档 做单元测试准备 单元测试执行 编写单元测试报告文档 3. 单元测试的主要任务 测试模块的接口、局部数据结构、边界条件、执行路径、出错处理、非合理输入系统异常、调用函数和全局变量定义的一致性、数据定义、使用、循环边界输入边界、重要路径关键路径。 4. 单元测试的测试环境 被测模块、驱动模块和桩模块共同构成了单元测试的环境 5. 单元测试的相关文档 单元测试计划 单元测试用例 单元测试记录 单元测试缺陷跟踪报告 单元测试总结报告 6. 常用的单元测试工具 Junit 对应java Cantata++ 对应C、C++ Testbed 对应 C、C++ Nunit 对应.Net 7. 集成测试的过程 根据项目计划、概要设计文档编写集成测试计划文档 做集成测试准备 集成测试执行 编写集成测试报告文档 8. 集成测试模式 分为非增量模式和增量式模式。 非增量是先分散测试,再集中测试。需要编写的程序多,工作量大。发现错误比较难定位。并行测试模块,充分利用人力,占用时间少。 增量式模式分为自顶向下、自底向上、混合模式。 自顶向下又分为深度优先集成和广度优先集成。 深度优先:优先集成主控路径下的所有模块。 广度优先:把每层从属于上一层的模块集成起来测试。 增量式利用已测过的模块作为部分测试程序,工作量小。发现错误可以及时定位。每次增加模块,会运行全部模块,占用时间长。 9. 系统测试的对象 系统测试是将经过集成测试的软件,作为计算机系统的一个部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统进行的一系列严格有效地测试,以发现软件潜在的问题,保证系统的正常运行。 根本任务是证明被测系统的功能和结构的稳定性,确保软件产品能够被用户或操作者接受。 10. 系统测试的过程 根据项目计划、需求规格说明书编写系统测试计划文档 做系统测试准备 系统测试执行 编写系统测试报告文档 11. 常见的系统测试类型 软件兼容性测试包括哪些内容 安装测试包括哪些内容 功能测试: 起步容易。需要相关行业业务知识背景知识· 性能测试 :主要测试多种正常、峰值以及异常负载条件下系统的响应时间(各项指标)主要使用负载压力测试。在真实环境下检测系统的并发承受力、预见系统负载压力承受力、分析系统瓶颈,优化系统。 接口测试: 接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。 GUI 测试 :GUI 测试是对所有人机交互界面提供的操作和显示界面进行的测试,以检验是否满足用户的需求。 可靠性测试: 可靠性测试也称软件的可靠性评估,指根据软件系统可靠性结构(单元与系统间可靠性关系)、寿命类型和各单元的可靠性试验信息,利用概率统计方法,评估出系统的可靠性特征量。 恢复性测试: 恢复性测试主要检查系统的容错能力。当系统出错时,能否在指定时间间隔内修正错误并重新启动系统。恢复性测试首先要采用各种办法强迫系统失败,然后验证系统是否能尽快恢复。对于自动恢复需验证重新初始化(reinitialization)、检查点(checkpointing mechanisms)、数据恢复(data recovery)和重新启动 (restart)等机制的正确性;对于人工干预的恢复系统,还需估测平均修复时间,确定其是否在可接受的范围内。 边界测试: 就是用来探测和验证代码在处理极端的或偏门的情况时会发生什么边界测试并不仅仅指输入域/输出域的边界,还包括以下内容: 数据结构的边界;状态转换的边界;功能界限的边界或端点。 可安装性测试: 可安装性测试是针对那些用于在目标环境安装软件的安装程序所进行的测试。它可以包括安装操作系统的软件或在客户个人电脑上安装软件产品的安装向导软件。典型的可安装性测试应完成下列目标: ● 使用安装向导或遵照安装手册的步骤(包括执行必需的安装脚本),验证是否可以成功地进行软件安装。其中包括选择相应的选项针对不同的软硬件配置进行安装,以及进行不同程度地安装(如完全安装或部分安装); ● 测试安装软件是否能够正确处理安装过程中所出现的失败(例如:无法安装某些DLL)现象,而不致于使系统处于某个不确定的状态(如软件只安装了一部分或造成错误的系统配置); ● 测试部分(不完全的)安装/卸载能否完成; ● 测试安装向导是否可以成功地识别无效的硬件平台或操作系统配置; ● 衡量是否能够在一定时间内或在一定步骤内完成整个安装过程; ● 验证是否可以成功地进行软件降级或卸载; 容量测试: 容量测试的目的是通过测试预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限状态下没有出现任何软件故障或还能保持主要功能正常运行。 敏感性测试: 为了发现在有效输入类中可能引起某种不稳定性或不正常处理的某些数据的组合而进行的测试。 标准符合性测试: 验证软件与相关国家标准或规范(如军用标准、国家标准、行业标准及国际标准)一致性的测试 兼容性测试: 兼容性测试是指测试软件在特定的硬件平台上、不同的应用软件之间、不同的操作系统平台上、不同的网络等环境中是否能够很友好的运行的测试 中文本地化测试 :本地化就是将软件版本语言进行更改,比如将英文的windows改成中文的windows就是本地化。本地化测试的目的是测试特定目标区域设置的软件本地化质量。本地化测试的环境是在本地化的操作系统上安装本地化的软件。 验收测试 :部署软件之前的最后一个测试操作。在软件产品完成了单元测试、集成测试和系统测试之后,产品发布之前所进行的软件测试活动。它是技术测试的最后一个阶段,也称为交付测试。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。 安全性测试 :安全性测试是有关验证应用程序的安全服务和识别潜在安全性缺陷的过程。此节包括一些重要的测试建议,用来验证已创建安全的应用程序。 12. 验收测试的步骤 指定测试计划,测试项,测试策略及验收通过准则,并邀请客户参与计划的评审。 建立测试环境,设计测试用例。 准备测试数据,执行测试用例,记录测试结果。 分析测试结果,根据验收通过准则分析测试结果,作出评价。 提交测试报告。 13. 验收测试常用策略 · 正式验收:系统测试的延续 · 非正式验收或 Alpha 测试(用户再开发环境下进行的测试,由软件开发团队辅助测试) · Beta 测试(用户独立测试,也就是公测)
个人分类: 软件质量保障与测试课程|2578 次阅读|0 个评论
软件质量与软件测试相关问题(1)
minekirito 2018-11-4 14:39
软件质量作业第四次.docx 以下为本人 软件质量与软件测试课程 的部分关键笔记,有需要的可以借鉴一下 1. 软件缺陷的表现形式 软件产品在开发或维护的过程中存在错误。 系统所要实现的某种功能失效或违背。 2. 软件缺陷的等级划分 Critical :不能执行正常工作功能或重要功能。或者危及人身安全。 Major :严重地影响系统要求或基本功能的实现,且没有办法更正。(重新安装或重新启动该软件不属于更正办法) Minor :严重地影响系统要求或基本功能的实现,但存在合理的更正办法。(重新安装或重新启动该软件不属于更正办法) Cosmetic :使操作者不方便或遇到麻烦,但它不影响执行工作功能或重要功能。 Other :其它错误。 3. 软件缺陷的主要状态 Submitted: 已提交的缺陷 Open : 确认“提交的缺陷”,等待处理 Rejected: 拒绝“提交的缺陷”,不需要修复或不是缺陷 Resolved : 缺陷被修复 Closed : 确认被修复的缺陷,将其关闭 4. 软件缺陷产生的原因 首先,在软件开发的过程中,软件缺陷的产生是不可避免的。 从软件本身来看 : 系统结构复杂、对数组的范围考虑不周全、系统崩溃后没有自我修复或备份功能、新技术的采用 从团队工作来看:需求不清晰、开发人员互相理解不一致、没有充分沟通、技术水平参差不齐 从项目管理来看:需求分析、评审、测试质量不高、对客户的需求不是十分清楚、和用户的沟通不彻底、开发周期短、流程不够完善、文档不完善、风险估计不足 5. 软件测试停止依据 软件系统经过单元、集成、系统测试,分别达到单元、集成、系统测试停止标准,并通过验收测试,并已得出验收测试结论。 或者软件项目需暂停或终止时,测试应随之暂停。 6. 软件测试的原则 ①测试能够指出缺陷,但不能证明没有缺陷 ②穷尽测试是不可能的 ③测试尽早介入 ④缺陷具有集群性 80% 的错误是由 20% 的模块引起的 ⑤测试用例需要经常性的评审和修改,以防“抗药性” ⑥如果系统不满足用户需求,寻找,修改也没有任何帮助 ⑦测试活动依赖于测试内容 ⑧避免测试自己的软件 开发与测试尽量分开在两个环境下 ⑨必须检查每个实际输出结果 ⑩注意保留测试设计和说明文档,并注意测试设计的可重用性 7.5w1h what 什么类型测试 目的是什么 测试环境是什么 Why 为什么要测试 Who 参与者是谁 谁来执行 When 什么时候测试 Where 测试哪部分 到哪部分结束 How 如何测试 如何组织人员 风险 进度 质量 8. 软件测试的组成阶段 测试计划 →设计测试用例→执行测试用例→总结 9. 软件测试用例的组成元素 用例 ID ; 用例名称; 测试目的; 测试级别; 参考信息; 测试环境; 前提条件; 测试步骤; 预期结果; 设计人员 10. 软件用例的编写原则 系统性。对系统业务流程要完整说明整个系统的业务需求、系统由几个子系统组成以及它们之间的关系;对模块业务流程要说明子系统内部功能、重点功能以及它们之间的关系 Oslash; 连贯性。对系统业务流程要说明各个子系统之间是如何连接在一起,若需要接口,各子系统之间是否有正确的接口,若是依靠页面链接,则页面的链接是否正确;对模块业务流程要说明同级模块以及上下级模块是如何构成一个子系统,其内部功能接口是否连贯 Oslash; 全面性。应尽可能覆盖各种路径、尽可能覆盖各个业务点,并要考虑跨年、跨月的数据以及大数据量并发测试的准备 正确性。输入界面后的数据应与测试文档所记录的数据一致,而预期结果也应与测试数据发生的业务吻合 符合正常业务规则。测试数据要符合用户实际工作中的业务流程,同时也要兼顾各种业务的变化以及当前该业务行业的法律、法规 人名、地名、电话号码等应具有模拟功能,符合一般的命名惯例;不允许出现与知名人士、小说中人物名等雷同情况。 可操作性。测试用例中要写清楚测试的操作步骤,以及不同的操作步骤相对应的测试结果 11. 软件测试用例的评价标准 应该制订统一的模板、根据项目实际情况编写测试案例编写手册、用例编写要步骤明确,输入输出要素清晰,并且与需求和缺陷相对应、应严格根据需求规格说明书及测试需求功能分析点进行,要求覆盖全部需求功能点、最后注重用例的可复用性 12.V 模型 v 模型的重点就是当一个软件开发的时候,研发人员和测试人员需要同时工作,测试在软件做需求分析的同时就会有测试用例的跟踪,这样,可以尽快找出程序错误和需求偏离,从而更高效的提高程序质量,最大可能的减少成本,同时满足用户的实际软件需求。 13. 静态测试的方法 文档评审、代码走查:开发者讲解,不做现场修改 代码审查(严格版的代码走查) 技术评审 14. 技术评审的流程 ①申请评审:联系协调者确认入口准则 ②评审计划:选择审查者指定评审计划,准备评审包,设置目标 ③启动会议 ④评审准备:(提前一天) ⑤小组评审会议:记录发现的问题,由协调者推动会议 ⑥返工:修改目标文档 ⑦跟踪:验证返工 ⑧结束
个人分类: 软件质量保障与测试课程|2670 次阅读|0 个评论
软件测试中为什么需要使用类似于EasyMock这样的Mock工具?
mordekai 2016-5-11 14:43
在单元测试中,为了集中测试目标模块A,常常需要模拟(Mock)A所用到的方法或类。例如,已知2016年5月11日是周三,我们建立一个名为 calcWeek 的模块,用于计算任意输入的 x年x月x日 是星期几,那么,我们首先要计算 x年x月x日 - 2016年5月11日 = ?天. 首先,这需要判断 x年x月x日 是否为 闰年 ,我们需要专门写一个函数 isLeapYear 来完成此项功能。假定 isLeapYear 还没有完成,我们又需要测试 calcWeek 模块的主题功能,这时就可以简单地mock一个 isLeapYear ,比如,令其直接返回True。这样看起来,Mock一个函数并非困难的事情,那么,为什么还需要大费周折地建立像EasyMock这样的工具箱呢? 其实,理由很简单,如果被测试的模块 calcWeek 是一个黑盒呢?在这个黑盒中, calcWeek 认为 isLeapYear 在包a.b.c的类 My Year 中,也就是它import了包 a.b.c,这样,我们随意Mock的 isLeapYear 肯定就不会被调用,除非我们把 isLeapYear 的Mock实现直接放入 包 a.b.c的类 My Year 中,但这又把测试代码和被测试代码混在了一起 。 所以,简单Mock一个对象或方法是很简单的,但让我们所Mock的对象和方法按照被测试模块既定的调用方式被调用才是困难的,而后者,就是EasyMock这样的工具箱做的事情,其真正核心的功能是:拦截那些尚未实现或不期望被真实调用的对象和方法,并为其设置预定义的行为。例如: IMocksControl control = EasyMock.createControl(); MyYear mock_MyYear = control.createMock( a.b.c. MyYear .class ); mock_ My Year.isLeapYear(); // 模拟调用 expectLastCall().andStubReturn(True); // 拦截返回值,将其设置为我们所预期的返回值
个人分类: 教学与研究|6207 次阅读|0 个评论
国内学术会议的进步(150427)
热度 14 ymin 2015-4-27 08:35
国内学术会议的进步( 150427 ) 闵应骅 承朋友的邀请与陪伴, 4/17-20 参加了在南京召开的第六届软件测试学术会议。这一辈子不知道参加过多少国际、国内学术会议,总的感觉是国内学术会议进步了,很高兴。大家的注意力在实际应用,而不是想方设法发表几篇 SCI 论文。 软件测试是在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。 软件测试用人工操作或者软件自动运行的方式来检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。最早倡议和研究软件测试的人可以分为两类。一类是原来搞硬件测试的人。硬件测试从电路板、集成电路到系统,搞了几十年,可以说有硬件就有了测试。软件测试研究刚开始的时候,也和硬件测试一样,提出了一些故障模型,面向故障模型产生测试。但后来发现,软件很难提出比较统一的故障模型,常常只能覆盖很少一部分软件故障;第二类是搞软件设计和软件工程的人。他们发现设计出来的软件错误太多,无法保证软件质量。因此,软件测试成为软件工程的一部分。 据中国产业洞察网研究员 调查 ,目前,国内软件测试人才缺口已突破20万,并随着需求的不断攀升而挺向30万大关。据悉,国外成熟软件企业,1个软件开发工程师对应1-2个软件测试工程师,而国内软件企业,平均8个软件开发工程师才对应1个软件测试工程师,比例严重失衡。大约10+年前,IEEE计算机学会推出软件测试工程师认证证书,培训几个月,读规定的几本书,通过考试,就可以授予软件测试工程师资格。不过,我国得到这一资格的好像不多。近几年,中国计算机学会好像也推出了类似的计划。据中国产业洞察网调查数据显示,2012年我国软件产业共实现收入2.47万亿元,同比增长31.5%。 行业内公认的软件测试占软件行 业10%的份额,国 际上认为软件测试在软件开发中所占资金量为 15% 。软件测试已经形成一个产业。容错专委负责人告诉我,目前国内从业人员大约6-10万人。 这次会议由中国计算机学会容错计算专业委员会主办,解放军理工大学承办,到会代表114人。来自52个单位。大部分来自解放军各军种、兵种的软件评测中心。可见军队以及航空航天领域对软件可靠性非常重视。未经评测中心评估和测试的软件不允许使用。这是非常正确的。而民用软件就没有那么在乎了。有的软件连设计规范的合理性都大受质疑就推广使用,最后不是不了了之,就是带病强推;大量的移动应用,2014 年 Android 机型增至 18679 , 有的公司只要几天就推出新的APP,有问题靠用户反馈再修改,有的甚至实现这样的功能:发现问题,自动转回原来的版本,用户根本就无法察觉。这是对用户不负责任的行为。这么多的APP程序,怎么保证质量? 软件测试既包括对被测软件进行测试的过程,也包括软件测试工具的开发。目前测试中心用的测试工具主要还是国外进口,或者通过国内公司代销的。国内的大学和科研机构,譬如北京邮电大学,也在开发软件测试工具,而且比国外的某些测试工具还要好。他们希望能与国外类似工具PK一下,用相同的程序进行测试,看谁的工具能发现更多的软件故障。但是,听说国外公司不愿意做这种比较。 这次会议,评测单位参加的人很多,但做学术研究的人来的就比较少。最近,在奥地利召开的软件测试国际会议( 2015 IEEE 8th InternationalConference on Software Testing, Verification and Validation (ICST) , Graz, Austria , 4/13-17 ),参加者有200多人,而来自中国大陆的参加者只有1人。说明什么呢?我国现在对软件测试研究的投入不足。我们国家现在对科研的总投入并不少,但是,许多钱投到有些项目太多,而有些项目却被忽视,或者投错了地方。这是由于科研管理者和院士们究竟知识面有限,无法面面俱到。可能只有广开言路才能解决。
个人分类: 计算机|22156 次阅读|44 个评论
[转载]软件测试课件
zyn96 2015-3-30 19:27
第一部分: 软件需求与设计 若 要建一幢数百万元的房子,房主一定会与建房者详细讨论各种细节,他们都明白完工以后的修改会造成损失,以及变更细节的危害性。软件开发也一样,软件项目中百分之四十至百分之六十的问题都是在需求分析阶段埋下的“祸根”, 致的后果便是开发者开发的与用户所想得到的软件存在着巨大期望差异。 第1章 软件需求 下载: 第1章 软件需求.pdf 教材课件: 第一章 软件测试基本概念 第一章软件测试基本概念.ppt 第二章 测试原理 第二章测试原理.ppt 补充资料: 1. 初级测试工程师面试题 下载: 初级测试工程师面试题.pdf
1037 次阅读|0 个评论
软件最终测试
ws0110 2013-2-12 20:36
最终测试的定义:发现软件的质量水准(可用性),而并不能从根本上保证软件的质量(如同给癌症患者作体检),因为要真正保证软件的质量(可靠性),必须在上游做好阶段性检查和品管工作。 测试人员的心态:让软件无法运作;不轻信和盲从开发人员撰写的操作规程。 测试人员的素质:善于与开发人员和客户沟通,爱钻牛角尖(不放过任何虽不严重但很低级的错误),多疑,洞察力,善于联想,细心,有条不紊。 测试人员的自我保护信念:在把产品交到用户手里之前发现的错误越多越好,否则修改和从新测试它的代价会越大,至少你必须重新建立您可能已经淡忘或删除的测试环境。 最终测试的环境:与产品实际应用的环境尽可能相似。 最终测试的数据:不同种类的的完整数据集。 最终系统测试的范围:最终测试一般按照产品需求说明书或操作手册(同时对用户手册进行测试)来进行,可以画一个二维表格,表格各行表示测试项目,各列表示需求项目。测试完成后确认各行各列都标上1。 最终测试的结果:确保所有的测试项目都关闭,而不是都修复。开发小组负责人可能决定在当前版本中不修复某些缺陷。 撰写最终测试计划:哪怕是最简单的工作流程(可以参考我为共享平台作测试时曾经写过的一个简单的流程)。要决定测试完成的时间并界定测试完成的标准(否则容易会陷入测试上瘾的死循环)。否则可能你的测试永远也无法涵盖系统的全部功能。 发现缺陷的第一反应:系统是否还可能有其它地方有类似的错误和与此缺陷关联的错误(特别是对于已经验证过的功能中)。 缺陷修改后的第一反应:决定应该做哪些回归测试或穷举测试(没有自动化测试工具的前提),以防止新的修改会产生新的错误。 最终测试的技巧: 1、按照手册的操作规程来测试安装手册和用户手册;而用不正常的操作来强迫产生一些错误或模拟出一些错误。有条件的话,可以请一些初级用户或用户代表来协助进行最终测试,因为他们会象猴子一样的测试(随意摆弄),从而更能发现实际使用中将会碰到的问题。 2、边测试边记录错误(可以参照我在作共享平台测试时制定的一个错误表,它来源于oracle可以给开发小组负责人增加一列,用于决定是否要在当前版本中修复该错误)。 3、边测试边写测试文件(可以参照rup中的文档模板)。测试文件是对测试结果的证明和结束测试的依据。测试文件以需求说明书或用户手册为依据,但不要机械的照搬。
个人分类: 随心随性|2541 次阅读|0 个评论
测试的尴尬(111024)
热度 4 ymin 2011-10-24 10:33
测试的尴尬(111024) 闵应骅 在“地沟油和食用油分不开吗?(111014)”这个问题提出来以后,彭宁川先生在“用科学的眼光辩证地看待地沟油问题”中给了很专业的回答。使我联想起在硬件和软件的测试中都碰到了这种尴尬的局面。在硬件测试中,几十年来都是面向故障的。也就是说,先有一个故障模型,定义了一些故障。然后去测试被测电路中有没有这些故障。测试的好坏就用能测试多少这样的故障为标准。可是,现在,集成电路远远地比过去规模大,门数多,技术复杂,原来定义的故障模型根本不够用,不能反映集成电路主要的设计和制造缺陷。定义多少故障模型都是不够的,甚至可以说,人们还有许多人们所不知道的故障。软件的情况完全类似。你根本不知道软件可能有一些什么样的故障,当然你也无法模型化。现在的软件测试还有许多是面向故障的,就是说我只检查被测软件中是否有我所关心的故障。可这跟被测软件的质量,几乎根本挂不起钩来。 软件测试中测试者发现两种情况:一种是发现故障特别多;一种是没有发现任何故障。第一种情况说明:不知道还有多少故障没有发现呢?也许这根本是一个不能用的软件;第二种情况并不说明被测软件没问题,而是说明测试过程有问题,不全面。这就构成一个测试的悖论:我们倒是希望测试出许多问题,还是希望测不出问题?所以,测试界把测试看作一个知识获取的过程,即所谓五级无知论。Phillip G. Armour说:软件不是一个产品,而是存储知识的一个媒介。生产一个软件很容易,生产一个可以工作的软件就很难。所以,我们是要从软件中获取知识。 所谓“无知”,原文叫"Ignorance"。就是说,你用一组输入去测试一个软件,如果你能判断这个结果对不对,那就是知识。如果你根本不知道这结果对不对,那也是一种知识。孔子曰:“知之為知之,不知為不知,是知也。”有五级的无知(Order of Ignorance): 0级无知(0OI):你知道你的问题及其答案。譬如说问题1+1=?,答案2。 1级无知(1OI):你知道什么是你不知道的,你有自己的的问题。譬如说,你知道想要解一个方程,但是你不知道它的解;你知道:测试是要找不知道的故障。 2级无知(2OI):你不知道:什么是你不知道的。譬如说,你不知道:你要找一个你所不知道的故障。 3级无知(3OI):你根本没有办法,或者说没有一个过程去解决补充你的相关知识。你没有方法和过程去发现问题。发现问题比找到答案更难。 4级无知(4OI):对这五级无知,全无所知。 把测试看作一个获取知识的过程,你就会集中精力去探索,去获取,而不是去追求这个过程的终结。
个人分类: 计算机|3818 次阅读|12 个评论
[转载]云测试(Cloud Testing)
热度 1 libing 2011-6-1 18:07
随着云计算时代的到来,人们应用信息方式将发生改变,同样也会改变提供软件服务企业的交付模式、研发模式和软件测试方 式。基于云计算技术的软件测试方式即是云测试。在全球经济危机的影响下迫于成本压力,市场中有越来越多的企业开始考虑云 模式所能带来的价值。 一、云计算( Cloud Computing )简介 狭义云计算是指通过网络以按需、易扩展的方式获得所需 IT 基础设施的交付和使用模式。广义云计算是指服务的交付和使用模式,通过网络以按需、易扩展的方式获得所需的服务。这种服务可以是 IT 基础设施、软件、互联网应用相关的,也可以是任意其他的服务。 云计算作为一个新名词,它既不是一项新技术,也不是一个新概念。云的含义绝不仅仅是针对计算,而是 IT 系统建设的一个总体方针和大势所趋。云代表的是一个崭新的 IT 应用时代。 2002 年, IBM 首次提出 On Demand 随需应变,随后 HP 提出了 Utility Computing 效用计算,接着 H3C 提出了 IToIP 。甚至在更早的上个世纪 90 年代中,全球各地就出现过一批以 ASP (应用服务商)、 SSP (存储服务商)为运营模式的商业探索者,他们都是云计算的先驱和实践者。上述概念或商业构想与今天的云计算并没有本质的差异,都是对同一个 IT 发展愿景进行的不同角度表述。 这个愿景就是希望 IT 资源能够有一天像今天使用的电力、自来水一样“即插即用”,不需要关心“电”从何处来, " 电 " 是怎样产生的,运输设备是什么。这些 IT 资源包括网络应用、软件、硬件设施等。 例如一家企业,他需要信息化办公,以往的模式是:企业花费大量资金采购硬件(机房、计算机)、布置复杂的网络、购买操作系统和办公软件、管理软件等、配置专业的 IT 管理人员等,有的设备或软件利用率还很低,实现信息化过程耗时、耗力、耗资金、更耗费社会资源,且日常使用还需要大量投入:例如设备保管、系统维护,软件升级等,而在云时代中企业只需要简单的培训,操作者通过简单的个人终端(显示器,手机等)接入云服务就可以实现系统化、自动化办公和管理需要,享受着更加质优、价廉、节能、环保的云服务。企业无须关心数据存放在哪里、怎么实现,不再采购大量的硬件和软件,不再需要布置复杂网络,这些事情交给提供 " 云服务 " 的公司去完成。企业可以视同它们为躲在 " 云层 " 后面我们看不见的跑来跑去的 " 雨雾 " 一样,只关心落下的 " 雨滴 " 。也可以视同它们是在幕后的从没见过那些导演、化妆师等,我们只关心台上正在演出的这一幕和这熟悉的演员。 二、云测试( Cloud Testing )简介 云测试是基于云计算的一种新型测试方案。服务商提供多种平台,多种浏览器的平台,一般的用户在本地用 Selenium 把自动化测试脚本编写好,然后上传到他们网站,然后就可以在他们的平台上运行 Selenium 脚本了。 三、哪些测试项目可以做云测试   通过云测试的定义我们看出:凡是测试中需要使用的软件工具和环境都可进行云测试,当前适合做云测试的项目或内容大概有:   硬件环境:测试软件在不同应用场景下对硬件环境的要求;   软件环境:操作系统、数据库、浏览器等,测试软件对不同运行平台的适应性;   适应性软件:防火墙及防病毒软件等,测试在安装不同防火墙及防病毒软件时,软件运行可靠性;   功能自动化测试:进行软件自动化测试;   性能测试:进行软件性能和压力测试。 随着云计算技术的发展,为软件测试服务的各种应用亦将得到发展。适合做云测试的项目也将不断增多。 四、云测试的优势 1 、立即可用 云测试提供一整套测试环境,测试人员利用虚拟桌面等手段登录到该测试环境,就可以立即展开测试。这将软硬件安装、环境配置、环境维护的代价转移给云测试提供者(公共云的经营者或私有云的维护团队)。以现在的虚拟化技术,在测试人员指定硬件配置、软件栈(操作系统、中间件、工具软件)、网络拓扑后,创建一套新的测试环境只需几个小时。如果测试人员可以接受已创建好的标准测试环境,那么他可以立即登录。 2 、 装配完备 云测试不但可以提供完整的测试环境,还可以提供许多附加服务。对于测试机,它可以提供还原点,以便测试人员将虚拟机重置到指定状态。对于测试执行,它可以监控被测试程序的一举一动,例如注册表访问、硬盘文件读写、网络访问、系统日志写入、系统资源占用率、内存映像序列化、屏幕录像等。将这些信息与测试用例一起展现出来,可以帮助测试人员发现问题,定位错误。对于大规模的测试,云测试可以提供多台测试客户机,他们从主控机上下载测试用例,执行并汇报测试结果,主控机将结果汇总后报告给测试人员。实际上,这些功能已经被各种工具所实现,云测试平台的任务是整合它们,提供统一、完备的功能。这样,测试人员就可以将精力最大限度地投入到专属的测试领域中,而不是与各种工具搏斗。 3 、 专家服务 最高级的测试服务是提供专业知识的服务。这些知识可以通过测试用例、测试数据、自动测试服务等形式提供。例如,许多应用需要读取文件,云测试可以提供针对文件读取的模糊测试。测试人员将被测试的应用程序提交给云,云将其部署到多台测试机上。在每一台测试上,应用程序要读取海量的文件,每一个文件都是特意构造的攻击文件。一旦栈溢出、堆溢出等问题被发现,立即保存应用程序的内存映像。一段时间后,测试人员将获得云测试返回的测试结果:一份详细的分析报告和一大堆内存映像文件。 4 、节约成本 每个企业都在追求成本最低和利润最大化。软件测试作为研发生产过程的一部分也有降低成本的要求,即使用最少的机器购买最少的测试软件来完成软件测试工作。利用云测试可实现巨大节省,不需要购买或准备很多的个人电脑,购买和安装各类测试用软件,也不再需要部署复杂的网络。只需要列出测试目的、环境的要求、虚拟机台数、何时间断租用即可,实现按需支付。例如购买一套自动化测试软件至少花 8000 元钱,测试中只需要使用 2 个月,但如果按 800 元 / 月租用该软件云测试平台,只需要支付 1600 元。同时随着企业软件版本和技术的发展,依赖的测试软件或环境亦需要升级换代,又会产生升级和维护费用。而在云测试环境中这些因素都无须企业考虑,交由提供云测试服务的供应商完成即可。 5 、提高效率 用云测试这种方式,极大地减少了测试环境搭建时间,如机器和网络准备、操作系统安装、各种测试工具软件安装等都将节省,只需提前将需要的配置环境告之云测试服务商,到时间直接使用即可。由于是基于网络上的应用,当测试中遇到软件使用上等问题时,亦可获得云测试服务商远程快速支持,而很少会出现停滞甚至停止测试现象。  五、云测试服务商 目前有几个提供云测试服务的公司,在此简单介绍一下: 1 、 Cloud Testing 这个公司能提供多种浏览器的平台,一般的用户在本地用 Selenium 把自动化测试脚本编写好,然后上传到他们网站,然后就可以在他们的平台上运行 Selenium 脚本了。该公司优点是:平台和浏览器覆盖得广,按需付费。 Cloud Testing 是一个基于 UI 自动化测试的云测试平台 2 、 keynote keynote 公司发布的 kite 工具,在 http://kite.keynote.com 下载使用。该工具是基于桌面的测试软件,编辑和分析网站性能,给出可视化分析结果,能够提供性能测试标准给整个 web 应用生命周期。该工具拥有独立的浏览器,用户在这个浏览器上录制脚本,然后上传,可以在 keynote 公司不同的可用地点中运行测试,查看结果。 3 、 SOASTA SOASTA 发布的 CloudTest 可以测试任何 Web 应用程序,从功能测试、回归测试、负载测试,性能测试等。该工具基于浏览器运行,并具备较好兼容性。用户可以在任何时间、任何地点,通过计算机的浏览器和互联网就可以开展测试工作。 对于中小型 IT 企业,在软件测试过程中需要模拟出上百万个虚拟用户以进行性能和压力测试,他们的硬件难以提供如此规模的计算能力。此时,他们可以租用测试云服务进行云测试,以获得强大的运算能力。测试云可以大大节省时间和成本,企业可以将更多的精力放在项目管理和提高测试的质量上。通过测试云将服务器、存储、网络和各种平台等基础设施进行虚拟化,为企业组织提供一个共享可用的自动化测试环境交付平台。技术人员可通过一个简单的 WEB 界面就非常容易地进行自动化配置,构建不同的测试模板,为企业配置不同的测试环境,并可根据需要提供随意扩展的数量和类型。同时,还能对每个云测试进行动态的全生命周期的监控管理。当测试发生中断时,能够自动回滚,保证了测试的进度和质量。测试云不只是针对软件平台和服务,对硬件物理产品也支持,以英特尔的 iLab 为例,他同样支持物理产品的验证设计,可以将物理测试设备接入虚拟测试环境,专为硬件级产品测试设计。 当前,以 VMWare 、 Hyper-V 、 Xen 三大主流的虚拟化平台得到了广泛应用。企业构建自己的私有测试云将变得非常容易。据 Gartner 提供的数据显示, 2010 年中国将成为亚太地区最大的软件市场,首次超过 60 亿美元,占全球软件市场总份额的 2.7% 。到 2013 年,软件市场收入将达到 94 亿美元,占全球软件市场总收入的 3.3% 。市场的迅猛发展给云测试提供了广阔市场空间,任何规模的企业都可以建立测试云,尤其是针对提供 IT 产品、服务外包等企业,将能够拥有很好的投资回报率。 据了解,除 Intel 外,国际 IT 巨头 IBM 、 Oracle 等已经开始在自己企业的私有云环境中构建测试云应用。在国内,金山软件、阿里巴巴等都正在利用测试云进行产品开发。市场上也已经出现了测试云产品。 谁赢得时间谁就会占得先机。随着信息化应用的深入,企业业务对 IT 的依赖到了不可或缺的程度。一方面,在激烈的市场竞争中,企业需要不断快速的调整自己的业务模式和组织架构以适应市场,作为支撑企业业务的运营系统需在最短时间内得到调整;谁能快速适应市场谁将占得优势。另一方面,对于提供 IT 产品和服务的企业,谁能在比别人短的周期内提供和推出高质量产品和服务,谁就占市场。
个人分类: 云与服务|4478 次阅读|1 个评论
组建团队,招聘GIS,或熟悉2D/3D及.NET或Java的战友!
丁dot 2011-1-17 15:32
假如生活欺骗了你,不要悲伤、不要难过, 假如技术欺骗了你,不要悲伤、不要难过, 假如知识欺骗了你,不要悲伤、不要难过, 假如GoogleEarth欺骗了你,不要悲伤、不要难过, 因为,信念总会突破乌云的蒙账,理想总会指着心灵的方向, 在这里,一个平台跃然眼前,平庸的我不能唱独角戏,为此 我需要更多的人在这平台上光芒绽放, 我可以和你一起并肩作战, 不只为那不断缩水的人民币, 不只为那绚烂多彩的GDP, 只为能亲手造出渗透我们心血的GIS, 你,愿意来秀一下你的魅力吗? 登台门票很简单: 熟悉GIS开发,有2D/3D开发经验,懂软件测试,如果对.NET,Java 精通,那可以做主角,我跑龙套; 如果都没有,那至少要懂一些计算机编程的知识外加强烈无敌的求知欲望和坚韧不拔的品格操守; 出身不需211或985,年龄不限32以下,在如此学历泛滥的现状,本科及以上还是必须的。 如果有意,发Mail至dyb@sa.buaa.edu.cn 工作地点? 北京 北京哪里? 目前在东直门地铁出口 薪酬? 与付出成严格的正相关特性。
3580 次阅读|0 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-23 16:32

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部