软件测试技术面试总结(通用9篇)
1.在51testing你都学到了什么?
a.主要学习了软件测试的知识,包括测试的流程,测试的方法,测试用例,测试计划,及测试管理的工具QUALITY CENTER,自动化测试工具QTP
b.计算机编程的基础知识,包括 C语言,SQL Server,Linux
c.软件工程的知识,包括软件的生命周期,配置管理的知识SVN
2.测试计划包括什么内容?
测试目标,概述,测试对象,测试环境,测试版本,测试开始和结束日期,测试方法概
述,测试通过失败标准,测试挂起恢复标准,工作任务分配,工作量的统计,资源的分
配,应交付的最终工作产品。
3.测试报告包括什么内容?
测试环境,测试版本,测试对象,参与的人员,执行的测试用例,测试用例覆盖的功能
和性能点,bug质量分析,测试最终结果(通过,失败)。
4.缺陷管理流程是什么?
测试人员 new/open bug-测试经理—assign给开发经理—》开发经理asign给开
发人员—resolved 返回给测试人员—》测试人员验证后关闭或者re-open给开发人
员。
5.动/静态测试都包括什么活动?
静态测试,检查和测试时不用实际操作软件,只是静态的浏览和检查。静态测试的活
动包括 需求定义的静态测试,设计文档的静态测试,源代码的静态测试
动态测试,通过运行软件来检查软件的动态行为和运行结果的正确性。动态测试活动
包括 动态检查程序,动态检查输入输出数据。(黑盒子测试基本都是动态测试)
6.测试工作分为哪几个阶段?各阶段的测试重点在哪里?
测试工作分为 单元测试,集成测试,系统测试,验收测试。
单元测试主要是检查内部模块的代码逻辑。集成测试主要检查各个模块组装后的功能
以及模块间的接口是否正确。系统测试主要是把集成好的软件在实际的软硬件的测试
环境下运行,检查运行结果是否符合《需求规格说明书》。验收测试是测试时除了考
虑软件的功能和性能外,还应对软件的可移植性、兼容性、可维护性、错误的恢复功
能等进行确认
7.测试环境包括什么内容?
包括软件环境(os,browser,其他必须的软件),硬件环境(计算机配置,打印机,扫描仪等等),测试数据,测试工具
8.缺陷的严重级别及优先级各有哪些?
优先级别:low, midium, high,very high,urgent.严重级别:极度严重,中等,一般,轻微
9.测试工程师应该具备哪些素质?
技术能力,沟通能力,耐心,细心,怀疑精神,发散思维,幽默感,很强的记忆能力。
10.测试用例包括哪些内容?
用例编号,测试项目,测试标题,用例的重要级别,预置条件,输入条件,操作步骤,预期输出。
11.Bug单包括哪些内容?
缺陷编号,标题,测试项目,严重级别,优先级别,预设条件,复现步骤,实际结果,期望结果
12.B/S和C/S结构的区别?
C/S结构,即Client/Server(客户机/服务器)结构,B/S即浏览器/服务器(browser/server)结构.(1)、硬件环境不同:C/S一般建立在专用的网络上,小范围里的网络环境,局域网之间
再通过专门服务器提供连接和数据交换服务。B/S建立在广域网之上的,不必是专门的网络硬件环境,一般只要有操作系统和浏览器就行。
(2)、对安全要求不同:C/S一般面向相对固定的用户群,对信息安全的控制能力很强。
B/S建立在广域网之上,对安全的控制能力相对弱,面向是不可知的用户群。
(3)、对程序架构不同:C/S程序可以更加注重流程,可以对权限多层次校验,对系统运
行速度可以较少考虑。B/S对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上。
(4)、系统维护不同:C/S程序由于整体性,必须整体考察,处理出现的问题以及系统升
级难,可能是再做一个全新的系统。B/S构件组成方面构件个别的更换,实现系统的无缝升级。系统维护开销减到最小,用户从网上自己下载安装就可以实现升级。
(5)、处理问题不同:C/S程序可以处理用户面固定,并且在相同区域,安全要求高的需
求,与操作系统相关,应该都是相同的系统。B/S建立在广域网上,面向不同的用户群,分散地域,这是C/S无法作到的,与操作系统平台关系最小。
13.TCP/IP协议中三次握手是什么?
第一次握手:建立连接时客户端向服务器发送syn包同时进入syn_send状态,等待服务器确认。
第二次握手:服务器收到syn包,必须确认客户的syn包,同时向客户端发送syn包即syn+ack包,此时服务器进入syn+recv状态。
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
14.黑盒/白盒测试各主要包括什么测试方法?
黑盒子测试:等价类划分法,边界值法,错误推测法,因果图法,判定表法。
白盒测试:条件判定法,语句覆盖法,判定覆盖法,判定条件覆盖法,路径覆盖法。
15.简单介绍下进销存系统的业务流。
进销存主要用于中小型物品流通企业,例如超市,卖场。用于物品的进购,销售,调度,库存,盘点的流程管理。
16.在进销存系统测试中你负责哪些模块以及在测试中用例设计是如何进行的?
系统实现的模块包括:入库管理,库存管理,出库管理,统计报表,会员管理,系统设置,账务管理。
我主要负责 入库管理模块,测试用例的设计方法主要是等价类,边界值,错误推测法。
17.现在主流的OS及浏览器都有哪些?他们的区别是?
OS: WINDOWS,LINUX,MAC
BROWSER: IE,FIREFOX,OPERA,SAFari 区别:内核不同,速度,性能
18.测试工作结束的标准时什么?
所有的功能点都测试通过并符合需求规格说明书;性能,易用性,等符合用户的要求 所有的bug已经关闭并回归测试通过
19.解释内存溢出及内存泄露
内存溢出就是运行软件时的内存远远超出了你主机内安装的内存所承受大小,就叫内存溢出。
内存泄露指的是当以前分配的一片内存不再需要使用或无法访问时,但是却并没有释放它,那么对于该进程来说,会因此导致总可用内存的减少,这时就出现了内存泄漏
20.Web测试的测试点包括哪些?
界面测试:导航,图形,视频,音频,内容,表格,整体界面测试
功能测试:业务流程测试,链接测试,并发测试,session测试,cookie测试,url访问测试
性能测试:负载,容量,压力
兼容性测试:浏览器,插件
关键词:软件技术,产学融合,人才培养模式,JAVA
校企融合、工学互动,是高职院校办学方向和人才培养模式的科学定位。要深刻剖析校企深度融合人才培养模式的含义,梳理校企融合与工学互动的关系,从培养目标、课程体系、教学方法、教学实施、考核评价、师资建设等方面对校企融合、工学互动人才培养模式的构成要素进行研究,使我们的软件专业真正做到“产学融合”。
1本人在教学改革中主要从事的工作
作为课题组的一员,首先我深入研究了“产学融合”人才培养模式,所谓“产学融合”人才培养模式,是将软件开发过程中典型工作任务提炼、加工成适合教学的任务,依据完成工作任务需要的职业能力序化课程。为此,我们课题组下企业进行了深的调研,去了哈尔滨的海康软件公司、哈尔滨的博成瑞达软件公司,还试听了今日图灵、达内软件培训机构的金牌讲师的JAVA课,回来我们课题组坐下来深入思考和激烈讨论,在此基础上修订人才培养方案,找到软件技术专业的准确的定位点,即我们的专业培养什么岗位人的问题,这个十分重要。接着我们对软件专业的课程进行进一步序化,安排软件专业课程的前后关系和课程的实施内容,进行教学设计和课程考核方案。
2软件技术专业相关课程中教学心得
我主要讲授《Java程序设计》课程,学生都是高考300左右分的学生,高中的时候没有养成好的学习习惯,来到大学就更想放松,学习的自动性较差,一次学习的时间30分以上就喊累。针对这样的一群学生,要认真分析学生的心理特征,选择适合的学习方法,经过几轮的教学实践, 我认为讲授门课程要以认知心理学为依据,即研究认知及行为背后之心智处理(包括思维、 决定、推理和一些动机和情感的程度)的心理,包括了广泛的研究领域,旨在研究记忆、注意、感知、知识表征、 推理、创造力,及问题解决的运作。也就是说这本课程授课要学生学会了才能继续后面的知识,我采用的模式的任务驱动教学法,在授课的过程中先给学生一个涉及本节课的教学任务,叫他们用以前学习的内容试着完成,之后讲授本节的知识点, 知识点设计不要太难,太多,讲解知识点的时候要从不同的角度来讲解此知识点, 讲解知识点的时候举例要接地气,举生活中的熟悉例子,这样学生学习起来感觉自然,不吃力。下一步就是布置一些综合练习进行训练,对知识点进行巩固,做到熟能生巧。这样一个知识点就讲解完成了。 学生都掌握了,才能继续下一个知识点的内容教学,这样一个一个知识点的学习, 学生就能学到这本领。上面属于教学设计的范畴,要求授课教师要有多年的教学实践经历,下很多功夫在课程的设计上。除此之外,要有严格的考核和激励制度做为保障,这样学生才能学习好本课程。
3本人撰写的课程标准和过程考核方案名称及课程目标
作为课题的参与实施人,我牵头制定了《Java程序设计》《FLASH动画设计》的课程标准。以上课程标准制定,都是基于人才培养方案,培养拥护党的基本路线, 具有良好的职业道德和法制观念,适应IT行业需要的,掌握国内外主流的软件开发平台和程序设计语言、具备计算机软件开发、网站建设、网站测试与维护的职业能力,面向软件行业从事软件开发、网站建设、软件测试、软件销售、网站维护及数据库管理工作的技术技能型人才。是课题组成员深入企业调研,深入思考、讨论的结果。课程标准实际上是授课教师进行授课的时候的指导性文件,这里涉及到了具体培养什么样人才,对每一个任务有知识目标、能力目标、素质目标,它们是一个递进梯队,是下一步教师授课进行教学设计的的指导性文件。课程标准中是具体涉及到教学实施,要考虑好每个任务设置什么内容,在有的就是没任务之间的关联关系, 有的是平行的,有的递进的。做课程标准的所有任务不能各自独立,要保证它们是一个独立统一的整体,是为一个最终目标服务的。
4本人完成的相关课程的教学设计
要讲好一本课程,必须对此课程深入的研究,做到全局和局部都要研究,全局就是我们说的课程设计,局部就是单元设计,好的教学设计,能使老师教的轻松愉快,学生学的高兴顺畅,反正老师和学生都很难受,学习效果不佳。所以说教学设计非常重要。教学设计是指教师依据教育教学原理,教学艺术原理,为了达到教学目标,根据学生认知结构,对教学过程、教学内容、教学组织形式、教学方法和需要使用的教学手段进行的策略。此过程是一个系统,包括学法、教师、资源、学习方法、 条件、情景等要素。教学设计就是要创设这样一个系统,并利用系统的科学方法来解决教学中的问题。教学设计是从学习者的学习目标为出发点,确定学习者的需求和教学中需要解决的问题,并提出满足学习者需求和解决问题的方法和步骤。教学设计需要以现代教学理论和学习理论为依据,转变传统的备课观,体现教育主体和学习主体的相互作用。
5通过本次教学改革项目的工作,本人收获是什么,存在哪些不足,应该如何改进
通过本次教学改革项目,“产学融合” 培养模式为课堂注入了生机与活力,给学生更加自由的学习空间,体现了以学生为本的理念,教师要自觉地把新的教学模式引入课堂,改变课堂的面貌,使课堂气氛活跃;教学民主;学生的学习热情高涨; 师生关系融洽。才能充分体现素质教育的根本目标。
一切为了学生,全面促进学生的发展是我们教师的责任。实现这些新的观念,就需要教师和学生的积极互动,共同发展,转变学习的方式,提倡自主、合作、 探究的学习方式,倡导学生要富有个性学习。教师不能单纯的讲授,应重视学生的学习态度和学习习惯的养成。学习能力的培养,重视学生全面素质的提高。培养学生的数学意识,合作交流和创新能力
各位领导,大家好,我叫XXX,20XX年毕业于XX城大学,XX年XX月进入XXX公司。参与过三个国网信息化项目的建设和运维工作,分别是国网信息化项目中的营销服务手机客户端项目、应急指挥系统项目和农电子系统-农网工程管理项目。(不用说你来面试什么职位这次面试只针对项目经理。)
罗列几个参与项目,体现出项目时间节点及参与参与的重点工作。参与项目经理面试人员要体现出项目管理相关内容(不需要太多,重点介绍参与国网项目或者最近参与的项目及参与项目管理的时间,其他项目简单介绍或者一语带过就好。要尽量用一句或者两句话重点体现出面试要求中那几个评分点)。
自工作以来,一直从事国网项目的系统实施运维工作,工作过程中积累了较为丰富的电力业务知识和项目管理经验,对电力公司生产管理系统中多个业务模块的需求、实施过程等都较为熟悉,对大型项目有一定的带队经验,所带领的项目团队曾获得江西、新疆、甘肃等电力公司得一致好评。
我的介绍完毕,谢谢各位考官。2.对项目经理的职能的理解。
分析:项目经理的基本职能是负责日常管理工作,包括总体工作协调,相关文档的编写,制定详细的工作计划,确保项目目标的实现,领导项目团队按时、优质地完成工作计划,并与领导及时汇报等。具体的工作职责任包括:
1.与客户沟通,了解项目的整体需求,即时向客户反馈阶段性的成果、搜集记录各省份实施过程中客户提出的合理需求,并向开发组反馈。 制定项目实施计划,合理分配给相应的人员。并跟踪项目的进度,协调项目组成员之间的合作,对项目的进度、质量进行严格把关。 编写项目进展中需要的相关文档,保证项目实施资料的完整和规范。根据各省的实施需要,即使发给他们。 与其它合作单位的协调、沟通;
负责向项目管理组定期(每周)汇报实施进度、当前的主要问题及解决方案
负责小组内部的协调、沟通、管理工作,制订并严格执行项目管理制度,如项目组周报、月报等 强化项目组人才的培养,定期组织成员的进行项目业务以及技术的学习,提高项目组成员的业务水平及工作能力。
3.由于种种原因,项目组的人员变动较大,在工程实施过程中如何处理? 分析:人员的频烦变动,新加入人员由于业务水平,对系统的了解程度不一等,会给项目的建设带来一定的风险。因此,我感觉应从以下三个方面着手,对这种事情进行把控和风险的防范:
首先,做好与项目组内部的人员交流工作,表达对他们工作态度以及能力的认可,将有价值的员工上报给项目组,进行一定的奖励,让工作组成员有归属感,营造一种积极向上的项目氛围,加强团队凝聚力;
其次,重视项目组人员尤其是新人的培训及人才的培养,定期组织成员的进行项目业务以及技术的学习,提高项目组成员的业务水平及工作能力。在人员调动时,把人员变动带来的风险降低到最小;
第三,可根据项目本身的进展情况,必要时向公司主管领导反应,说明人员变动对项目进展带来的影响,减少人员的调动,保障系统实施的顺利进行。4.你认为你的沟通协调能力如何?
分析: 在回答此问题时,可突出本人的自信、乐观、开朗、善于沟通,可举例说明本人在以往的项目中的工作成果及客户的认可度,从侧面反应本人的沟通及协调能力
5.工作中,不同的领导,对同一件事情的处理观点不一致怎么办?
分析:首先项目经理本身应对项目建设方案有一个明确的了解,对不同领导的观点加以分析,协调相关领导开会讨论,以达成共识,会后要形成会议纪要,作为方案实施的依据。
6.会议中属下员工提出不同的观点或对项目经理的观点持否决态度,怎么办?
分析:认真听取员工提出的意见,并进行分析,可在项目组内部进行讨论,有效的、好的提议应采取,不应独断专行。
7.项目组成员抱怨工作太多,怎么处理?
分析:与成员进行较好的沟通交流,保持团队的凝聚力,分析工作较多的原因:比如是否是项目的阶段性,下一阶段就会好了? 员工的工作方式有问题,效率较低了?或安排欠妥,分配给他的工作确实太多等。
总之,给员工鼓劲,协调可调动的资源帮助他一下等等,要让他觉得他的辛苦我们都看到了,认可,对他做出的贡献给予认可,在力所能及的方式给予帮助。但是不能因为抱怨就给他一个香饽饽吃,还是要兼顾公平公正,有理有节的沟通。
8.你管理过多大的团队? 有多少人? 如果给你一个20人的团队,你如何管理,如何建立一个有效的沟通机制?
分析:说明以前带队最多的项目,及项目组沟通机制,如周会、月度例会、周报、月报等,1、建立一个组织体系,指定负责人,明确职责,做好核心人物的动态掌控;
2、制定相关的管理制度,考核制度,定期交流、上报工作进度,进行评优评奖等;
3、加强团队文化的建设,开展项目会议,认真听取成员的建设性意见,加强团队凝聚力,人性化管理等,;
4、采用多种工作交流方式:如聚餐、联谊会、坐谈会等; 9.如何回绝客户提出的要求?
分析: 分析客户的要求与国网要求是否相悖; 建立需求变更机制; 发挥关键用户的作用,让关键用户了解需求及国网的要求,对于最终用户的要求,可通过关键用户去回绝。10.如何避免项目团队中的人才流失?
分析:
1、工作体制上,关键工作岗位实行AB岗制度,如一个管控经理,一个管控副经理
2、注重并加强后备队伍的培养
3、与项目组成员做好沟通交流,了解人员的工作状态,如有变化及时向领导反应,避免因员工离职等对工作产生影响
4、知人善用、合理安排。11.通过周报、月报等,如何分析项目进展的风险?
分析: 通过不定期抽查的方式了解周报月报的真实性,通过周报月报等分析项目进度与总体计划是否相符。
12.项目推广时,对系统功能及横向集成方式,省公司与国网总部的决议不一致怎么办? 分析: 总体原则不能与总部相悖,积极协调:
1、与甲方沟协国网总部的决议,分析国网总部的目标和意图,如甲方不按国网总部的决议来,会产生什么样的影响。
2、如省公司坚持其决议,协调省公司形成方案,由省公司向国网公司汇报,申请国网公司批准。13.用什么方法制定工作计划,如工作计划没有按时完成,怎么办?
分析: 可根据工作期限的要求,结合工作的不同阶段,采用正推、倒推等方法,借鉴其他现场的工作计划来制定工作计划。工作计划可以有主计划及各个分步计划,并实时掌控各分步计划的执行情况,分析风险,如不能按时完成,要根据实际情况来适当调整主计划。
14.在现场工作时,甲方提出的需求,我们是否实现的依据是什么?用什么方式来控制需求变更? 分析:
1、新需求是否影响整体的工作目标的实现,是否与国网公司要求的一致,是否符合国网公司的项目建设原则等。另外,还需考虑新需求实现的成本:包括开发成本、时间成本等
2、需求变更是不可避免的,但不能无止境,因此需要建立一套专门的需求变更管理机制(目前国网的项目一般都有,可结合PMS的需求变更制度说明一下)
3、与甲方共同编制需求方案,并提出完善建议,不要让用户想怎么提就怎么提。15.甲方提出了合同外的功能需求,我们要如何处理?
分析:
1、根据客户的职位及职责,结合其在我们项目建设中作用及影响,另外,结合需求实现的成本,难度多大、耗时多长,对整体工作进度是否会有影响等,进行分析
2、分析其需求是否是可控的,如果实现了他的这个需求,那么会不会带来其他新的要求?
3、与客户积极协调沟通,与总部领导汇报,最好能说服其签订一个新的合同★。16.一个项目实施团队可能是由多家公司的人员组成的,你如何来管理?
分析: 明确职责任分工,合理安排工作,做到公平、公正; 积极沟通交流,防止人员频繁变更。17.对团队中的新员工怎样对待?
分析:开展专题培训,加快新员工的成长; 建立传帮带机制,使新员工在工作中学习; 建立考核机制,提高新员工的学习主动性; 多沟通交流,加强团队凝聚力。
18.你在以前的工作中有何收获,如何运用到供电电压自动采集项目实施中?
分析:可突出沟通协调能力的提高、业务知识水平、文档编写能力、工作进度掌控能力等,举一个简单的例子来说明,如:我对状态监测较熟,有哪些工作与供电电压自动采集项目类似等,总和之前的项目经验体现出你如何能做好本系统的试点推广工作。
关于供电电压自动采集项目的几点问题
1.项目涉及其他部门及厂家,负责人众多,协调难度大,如何处理?
分析 :
1、应当严格执行项目计划,各项目组自行制定计划,并汇报项目进度,及早发现肯能存在的风险,如果确实完不成需要与供应商沟通协调,并与其业务主管部门沟通,请业务主管部门施加压力,督促其完成。
2、建立良好的人员联络机制; 充分利用甲方,建立项目工作小组,将各系统负责人作为成员,由业务主管部门负责联络与协调; 2.实施过程的几个重要环节,简要说明各环节主要工作及注意事项。并说明你认为最主要的一个环节。
分析:在笔试考试答案的基础上侧重点可以在项目管理及如何工作协调上重点说明。假如本系统第一阶段试点验收前有三个月的实施时间,简单介绍下各项工作的时间节点。3.简述供电电压自动采集系统与外系统集成主要有三种方式:
分析: WebService方式、E语言方式、Web页面调用方式。4.到现场实施后你觉得会跟那几个部门及系统有业务往来,你应该怎么去协调。
分析:调度,营销,信通公司(科信)、PMS项目组,采用协调会或者联系函的方式开展工作。5.如果省调部门对系统接入规范确定的数据接入方案有异议,或者应该如何协调。
分析:数据接入方案的来源要解释清楚,由国网公司生产技术部会同营销部、农电工作部、信息通信部、国调中心等相关部门经过多次讨论后制定此方案,最好通过省公司牵头部门协调,内部商讨后按照现有接入方式接入。
一、判断题(每题1分,12 分,正确的√,错误的╳)
1.软件测试的目的是尽可能多的找出软件的缺陷。()
2.Beta 测试是验收测试的一种。()
3.验收测试是由最终用户来实施的。()
4.项目立项前测试人员不需要提交任何工件。()
5.单元测试能发现约80%的软件缺陷。()
6.代码评审是检查源代码是否达到模块设计的要求。()
7.自底向上集成需要测试员编写驱动程序。()
8.负载测试是验证要检验的系统的能力最高能达到什么程度。()
9.测试人员要坚持原则,缺陷未修复完坚决不予通过。()
10.代码评审员一般由测试员担任。()1
11.我们可以人为的使得软件不存在配置问题。()
12.集成测试计划在需求分析阶段末提交。()
二、不定项选择题(每题2 分,10分)
1.软件验收测试的合格通过准则是:()
A.软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。
B.所有测试项没有残余一级、二级和三级错误。
C.立项审批表、需求分析文档、设计文档和编码实现一致。
D.验收测试工件齐全。
2.软件测试计划评审会需要哪些人员参加?()
A.项目经理
B.SQA 负责人
C.配置负责人
D.测试组
3.下列关于alpha 测试的描述中正确的是:()
A.alpha 测试需要用户代表参加
B.alpha 测试不需要用户代表参加
C.alpha 测试是系统测试的一种
D.alpha 测试是验收测试的一种
4.测试设计员的职责有:()
A.制定测试计划
B.设计测试用例
C.设计测试过程、脚本
D.评估测试活动
5.软件实施活动的进入准则是:()
A.需求工件已经被基线化
B.详细设计工件已经被基线化
C.构架工件已经被基线化
D.项目阶段成果已经被基线化
三、填空题(每空1分,24 分)
1.软件验收测试包括(正式验收测试)、(非正式验收测试和Alpha测试)、(Beta测试)三种类型。
2.系统测试的策略有功能测试、(性能测试)、(负载测试)、(压力测试)、易用性测试、(容量测试)、(强度测试)、(兼容性测试又称)、(本地化测试)、(BVT测试)、(裸机测试)、(安全性测试)、()、(容错性测试)、(恢复测试)、()等15 种方法。
3.设计系统测试计划需要参考的项目文档有(需求规格说明书)、()和迭代计划。
4.对面向过程的系统采用的集成策略有()、()两种。
5.通过画因果图来写测试用例的步骤为、、、及把因果图转换为状态图共五个步骤。
四、简答题(共37分)
1.阶段评审与同行评审的区别。(4 分).什么是软件测试。(3 分)
答:通过人工或自动化手段对系统进行测试,目的是为了验证系统是否满足预定功能或者是为了弄清楚实际结果与预期结果之间的差别。.简述集成测试的过程。(5 分)
答:将通过单元测试的单元模块按照设计要求组合起来再进行测试。重点检查程序接口处是否有问题。
过程:首先进行集成测试的测试计划测试设计测试开发测试用例执行测试评估,并且进行全程的缺陷跟踪。.怎样做好文档测试?(4 分)
答:文档测试要注意一下几点:文档的读者群、文档的术语、文档的正确性、文档的完整性、文档的一致性、文档的易用性、样例与示例、文档的语言
5.白盒测试有那几种方法?(6 分)
答:白盒测试方法分为:静态测试和动态测试
静态测试方法:①编码标准与准则②走查③审查④评审
动态测试方法:①语句覆盖②判定覆盖③条件覆盖④判定-条件覆盖⑤条件组合覆盖⑥路径覆盖
⑦条件组合+路径覆盖
6.系统测试计划是否需要同行评审,为什么?(4 分)
答:系统测试计划需要进行同行评审,因为如果对一个系统长时间进行测试可能会出现测试疲劳甚至出现
对系统的免疫现象,因此可以进行同行评审,减少对相同系统的疲劳测试。
7. Alpha 测试与beta 测试的区别。(4 分).比较负载测试、容量测试和强度测试的区别。(6 分). 测试结束的标准是什么?(3 分)
一、判断题
1.软件测试的目的是尽可能多的找出软件的缺陷。(√)
2.Beta 测试是验收测试的一种。(√)
3.验收测试是由最终用户来实施的。(√)
4.项目立项前测试人员不需要提交任何工件。(╳)
5.单元测试能发现约80%的软件缺陷。(√)
6.代码评审是检查源代码是否达到模块设计的要求。(√)
7.自底向上集成需要测试员编写驱动程序。(√)
8.负载测试是验证要检验的系统的能力最高能达到什么程度。(√)
9.测试人员要坚持原则,缺陷未修复完坚决不予通过。(√)
10.代码评审员一般由测试员担任。(╳)
11.我们可以人为的使得软件不存在配置问题。(√)
12.集成测试计划在需求分析阶段末提交。(╳)
二、不定项选择题(每题2 分,10分)
1.软件验收测试的合格通过准则是:()
A.软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。
B.所有测试项没有残余一级、二级和三级错误。
C.立项审批表、需求分析文档、设计文档和编码实现一致。
D.验收测试工件齐全。
2.软件测试计划评审会需要哪些人员参加?()
A.项目经理
B.SQA 负责人
C.配置负责人
D.测试组
3.下列关于alpha 测试的描述中正确的是:()
A.alpha 测试需要用户代表参加
B.alpha 测试不需要用户代表参加
C.alpha 测试是系统测试的一种
D.alpha 测试是验收测试的一种
4.测试设计员的职责有:()
A.制定测试计划
B.设计测试用例
C.设计测试过程、脚本
D.评估测试活动
5.软件实施活动的进入准则是:()
A.需求工件已经被基线化
B.详细设计工件已经被基线化
C.构架工件已经被基线化
D.项目阶段成果已经被基线化
三、填空题(每空1分,24 分)
1.软件验收测试包括:正式验收测试、非正式验收测试和ALPHA、BETA测试
2.系统测试的策略有功能测试、、、、易用性测
试、、、、、、、、、、等15 种方法。
3.设计系统测试计划需要参考的项目文档有、和迭代计划。
4.对面向过程的系统采用的集成策略有、两种。
5.通过画因果图来写测试用例的步骤为、、、及把因果图转
换为状态图共五个步骤。
四、简答题(共37分)
1.阶段评审与同行评审的区别。.什么是软件测试。.简述集成测试的过程。.怎样做好文档测试?
5.白盒测试有那几种方法?
6.系统测试计划是否需要同行评审,为什么?
7. Alpha 测试与beta 测试的区别。.比较负载测试、容量测试和强度测试的区别。.测试结束的标准是什么?
五、设计题
对下面给出的程序控制图,分别以各种不同的测试方法写出最少的测试用例。
姓名:__________部门:__________员工号:__________
一、填空题:
1、软件实施活动的输出工件有、、、。
2、代码评审主要做工作。
3、软件实施活动中集成员的职责是。
4、验证与确认软件实施活动主要有、代码评审、、、、SQA
验证。
5、表明测试已经结束。
6、软件测试的目的是。
7、软件测试主要分为、、、四类测试。
8、软件测试活动有制定测试计划、、、、、、测
试评估、测试结束八个步骤。
9、软件测试活动的输出工件有_、、、、。
10、软件测试角色有、、、。
二、不定项选择题:
1、软件实施活动的进入准则是()
A、需求工件已经被基线化
B、详细设计工件已经被基线化
C、构架工件已经被基线化
D、项目阶段成果已经被基线化
2、下面角色不属于集成计划评审的是()
A、配置经理
B、项目经理
C、测试员
D、编码员
3、软件测试设计活动主要有()
A、工作量分析
B、确定并说明测试用例
C、确立并结构化测试过程
D、复审并评估测试覆盖
4、不属于集成测试步骤的是()
A、制定集成计划
B、执行集成测试
C、记录集成测试结果
D、回归测试
5、属于软件测试活动的输入工件的是()
A、软件工作版本
B、可测试性报告
C、软件需求工件
D、软件项目计划
三、问答题:
1、项目的集中管理在软件公司的哪一个层面?
2、请描述软件测试活动的生命周期。
3、什么是测试评估,测试评估的范围是什么?
1)学习能力:我有较强的科研能力,能熟练的进行Windows2000和LINUX操作,并能使用VB,DELPHI等语言编程。能运用网页三剑客Photoshop软件进行相关工作。
2)实践能力:我的专长是软件开发,我希望能从事这方面的工作经验,并且我曾经发过多个系统,如人事档案管理系统,工资管理系统等等。
3)交际能力:我的性格沉稳,能坐得住,对IT行业的工作,具有非常好的适应能力,而且为人谦和,具有很强的组织和协调能力 ,富有的事业心和责任感使我能够面对任何困难和挑战。
从以上的简单自我介绍,我希望公司能给我一个展示自己能力的机会,让我我可以学以致用,同时我也很欣赏XX公司的企业文化与工作环境。我愿意成为企业一员,为企业的发展贡献自己的一份力量。 我的职业生涯目标是,做一个既懂技术,又懂业务的复合型 人才 。
关键词:软件测试,黑盒测试,白盒测试
0 引言
随着我国软件产业的高速发展, 软件测试的重要性已被软件企业关注, 近91%的国内软件企业已组建测试队伍, 但现阶段软件测试的发展存在严重问题--人才紧缺。在大多数软件企业中, 测试人员的数量不足开发人员数量的五分之一, 平均比在1:8左右, 远远落后于国外先进水平。造成这种稀缺局面的主要原因是我国相关人才的培养尚未形成规模, 测试人才数量无法满足企业的实际需求。本文试图从软件测试的介入时机入手, 对软件测试的相关知识进行分析和讨论。
1 软件测试的介入时机
目前, 国内的软件开发普遍存在“重开发, 轻测试”的现象。而在实际工作中, 一旦经过测试后发现与用户需求不符合, 将会导致大范围的返工和不可预估的项目延伸。原因是软件质量不仅取决于程序本身, 它和编码以前所完成的需求分析以及软件设计工作密切相关。很显然, 表现在程序中的错误, 并不一定是编码引起的, 很可能是详细设计、概要设计阶段, 甚至是需求分析阶段的问题引起的。无数的实践经验也表明, 需求分析阶段带来的缺陷占总缺陷的百分比为54%, 设计阶段带来的缺陷占25%, 编码阶段带来的缺陷仅占15%。如果早期开发中出现的错误不能及时发现和解决, 将带到设计、编码、测试等各阶段, 影响会逐步扩大, 软件缺陷的修复费用将会指数级增长。因此我们可以得出结论, 软件测试一定要尽早地开始介入, 不断地进行测试, 才能尽可能地保证软件的成本及进度在计划范围内。
2 软件测试基本技术
软件测试技术可以归结为两大类:白盒测试和黑盒测试。其中, 白盒测试又可分为静态测试和动态测试:静态测试主要包括代码检查法、静态结构分析法等;动态测试技术主要包括逻辑覆盖、程序插桩、基本路径测试等。黑盒测试一般可分为功能测试和非功能测试:功能测试主要包括等价类划分、边界值分析、因果图法、错误推测、功能图法等, 主要用于软件确认测试;非功能测试主要包括使用性能测试、性能测试、强度测试、兼容性测试、配置测试、安全测试等。[1]
2.1 白盒测试
白盒测试是把测试对象看作一个透明的盒子。测试人员可以很清晰地看到盒子的内部结构。利用白盒测试法进行动态测试时, 需要测试软件产品的内部结构和处理过程。测试人员利用程序的内部逻辑结构和相关信息, 对程序的内部结构和路径进行测试, 检验其是否达到了预期的设计要求。
2.1.1 静态测试
静态测试是一种不通过执行程序而进行测试的技术, 其关键功能是检查软件的表示和描述是否一致, 有没有冲突。它瞄准的是纠正软件系统在描述、表示和规格上的错误。[2]
源代码的语法错误, 一般可以由我们的集成开发环境来做;非语法方面的错误, 只有通过人工检测来判断。人工检测的方法有代码检查法、静态结构分析法等。
代码检查法主要是通过桌面检查, 代码审查和走查方式对以下内容进行检查:变量检查、命名和类型审查、代码逻辑审查、代码的可读性检查和代码结构检查等。
静态结构分析法是指以图形的方式表现程序的内部结构, 如函数调用关系图、函数内部控制流图。通过分析这些图表, 包括控制流分析、数据流分析、接口分析、表达式分析等, 使其便于阅读与理解, 然后可以通过分析这些图表, 检查软件有没有存在缺陷或错误。
2.1.2 动态测试
动态测试需要软件的执行, 当软件系统在模拟的或真实的环境中执行之前、之中和之后, 对软件系统行为的分析是动态测试的主要特点。它显示了一个系统在检查状态下是正确还是不正确。常用的方法有逻辑覆盖、程序插桩、基本路径测试法等。[3]
(1) 逻辑覆盖是以程序内部的逻辑结构为基础的测试技术, 是通过对程序逻辑结构的遍历实现程序的覆盖, 这一方法要求测试人员对程序的逻辑结构有清楚的了解。包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。
语句覆盖:设计足够的测试用例, 使得程序中的每个语句至少执行一次。
判定覆盖:设计足够的测试用例, 使得在语句覆盖的基础上, 程序中每个判定的取“真”分支和取“假”分支至少都执行一次。
条个覆盖:设计足够的测试用例, 在语句覆盖的基础上使得程序判定中的每个条件能获得各种可能的结果。
判定/条件覆盖:设计足够的测试用例, 使得判定中的每个条件都取到各种可能的值, 而且每个判定表达式也都取到各种可能的结果。
条件组合覆盖:设计足够的测试用例, 使得每个判定中的条件的各种可能组合都至少出现一次。
路径覆盖:设计足够的测试用例, 使得每条可能的路径都至少执行一次。
(2) 程序插桩方法是借助往被测程序中插入操作, 来实现测试目的的方法, 即向源程序中添加一些语句, 实现对程序语句的执行、变量的变化等情况进行检查。
(3) 基本路径测试法是在程序控制流图的基础上, 通过分析控制构造的环路复杂性, 导出基本可执行路径集合, 从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的每一条可执行语句至少执行一次。
基本路径测试法的步骤如下:
第一步:导出程序流程图的拓扑结构-流图 (控制流程图)
控制流图是对程序流程图进行简化后得到的, 它更加突出的表示了程序控制流的结构。控制流图中包括两种图形符号:结点和控制流线。
结点由带标号的圆圈表示, 可代表一个或多个语句、一个处理框序列和一个条件判定框 (假设不包含复合条件) 。控制流线由带箭头的弧或线表示。它代表程序中的控制流。
第二步:计算流图G的环路复杂性V (G) , 可用如下三种方法之一来计算环形复杂度。
a.给定控制流图G的环形复杂度—V (G) , 定义为V (G) =E-N+2
其中, E是控制流图中边的数量, N是控制流图中的节点数量。
b.给定控制流图G的环形复杂度—V (G) , 也可定义为V (G) =P+1
其中, P是控制流图G中判定节点的数量。
c.控制流图中区域的数量对应于环形复杂度。
当在控制流图中计算区域的数目时, 控制流图外的区域也应记为一个区域。
第三步:确定只包含独立路径的基本路径集
独立路径是指程序中至少引入了一个新的处理语句集合或一个新条件的程序通路。采用流图的术语, 即独立路径必须至少包含一条在本次定义路径之前不曾用过的边。
我们计算环路复杂性的目的主要是为了得出基本路径集的条数。比如:环路复杂性是5, 那么程序基本集的独立路径就有5条。
第四步:设计测试用例
选择适当的数据, 保证每一条路径可以被测试到。
2.2 黑盒测试
黑盒测试也称数据驱动测试, 在测试时, 把程序看作一个不能打开的黑盒子, 在完全不考虑程序内部结构和内部特性的情况下, 测试者在程序接口进行测试。
在黑盒测试过程中, 只是通过输入数据、进行操作、观察输出结果, 来检查软件系统是否按照需求规格说明书的规定正常使用, 软件是否能适当地接收输入数据而产生正确的输出信息, 并保持外部信息的完整性。
2.2.1 功能测试
功能测试的方法主要有:等价类划分、边界值分析、因果图法、错误推测法、功能图法等。[4]
(1) 等价类划分
等价类划分法是把所有可能的输入数据, 即程序的输入域划分为若干部分 (子集) , 然后从每一个子集中选取少数具有代表性的数据作为测试用例。在该子集合中, 各个输入数据对于揭露程序中的错误都是等效的, 它们具有等价特性, 即每一类的代表性数据在测试中的作用都等价于这一类中的其它数据。因此, 等价类划分法在很大程度上首先缩小了测试人员的测试数据范围, 大大减少了测试的工作量。
采用等价类划分法设计测试用例通常分两步进行。
第一步:确定等价类 (包括有效等价类和无效等价类) , 列出等价类表。
第二步:确定测试用例。具体过程如下:
首先为等价类表中的每一个等价类分别规定一个唯一的编号;然后设计一个新的测试用例, 使它能够尽量覆盖尚未覆盖的有效等价类。重复这个步骤, 直到所有的有效等价类均被测试用例所覆盖;设计一个新的测试用例, 使它仅覆盖一个尚未覆盖的无效等价类。重复这一步骤, 直到所有的无效等价类均被测试用例所覆盖。
(2) 边界值分析
无数的测试实践表明, 大量的故障往往发生在输入定义域或输出值域的边界上, 而不是在其内部。因此, 针对各种边界情况设计测试用例, 通常会取得很好的测试效果。
那么, 如何用边界值分析法设计测试用例呢?首先, 确定边界情况;然后, 选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据。但当边界情况很复杂的时候, 要找出适当的测试用例还需针对问题的输入域、输出域边界, 耐心细致地逐个考虑。
(3) 因果图法
等价类划分法和边界值分析方法都是着重考虑输入条件, 但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了, 但多个输入条件组合起来可能出错的情况却被忽视了。
如果在测试时必须考虑输入条件的各种组合, 则可能的组合数目将是天文数字, 因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计, 这就需要利用因果图 (逻辑模型) 。
因果图法是基于这样的一种思想:一些程序的功能可以用判定表 (或称决策表) 的形式来表示, 并根据输入条件的组合情况规定相应的操作。判定表的基本形式如表1所示。
因果图法的定义:是一种利用图解法分析输入的各种组合情况, 从而设计测试用例的方法, 它适合于检查程序输入条件的各种组合情况。
采用因果图法设计测试用例的步骤如下。
第一步:根据程序规格说明书描述, 分析并确定因 (输入条件) 和果 (输出结果或程序状态的改变) , 画出因果图。
第二步:将得到的因果图转换为判定表。
第三步:为判定表中每一列所表示的情况设计一个测试用例。
(4) 错误推测法
依靠经验和直觉猜测程序中可能存在的各种错误, 从而有针对性地编写检查这些故障的测试用例。该方法一般会让那些很有测试经验的人来做, 可以从类似系统的出错点、前期测试阶段的结果、典型的产生错误的情况以及有关软件的开发方法和实现技术等方面入手去设计测试用例。
在实际测试中, 往往是综合使用各种方法才能有效地提高测试效率和测试覆盖率。
2.2.2 非功能测试
非功能测试主要有:性能测试、兼容性测试、配置测试、安全测试等。[1]
(1) 性能测试通常是验证软件的性能在正常环境和系统条件下重复使用时是否还能满足性能指标, 软件的性能测试是系统测试中难度较大的测试。
软件系统的性能测试包括:系统反应时间、用户反应时间、软件界面反应时间、中央处理器的利用率、检查系统记忆容量在运行程序时有没有流失现象 (或称内存泄露) 等。
(2) 兼容性测试的目的就是检验被测应用对其他应用或者系统的兼容性, 比如在对一个共享资源 (数据、数据文件或者内存) 进行操作时, 检测两个或多个系统需求能否正常工作以及相互交互使用。
在做兼容性测试时, 主要关注当前系统可能运行在哪些不同的操作系统环境下, 可能与哪些数据库进行数据交换, 可能需要哪些软件协同工作, 它们可能的版本有哪些, 是否需要在综合条件下做测试?
(3) 配置测试主要注意三个方面:一是软件安装与卸装过程中系统配置的变化; (修改系统配置, 使其支持该软件的启动和运行) ;二是软件完成安装后, 人为改变配置; (对软件的内部配置数据进行修改) ;三是硬件的不同组合是否与软件兼容。 (内存、硬盘、CPU、网卡等添加或修改带来的影响)
(4) 安全性测试检验在系统中已经存在的系统安全性、保密性措施是否发挥作用, 有无漏洞, 以检查系统对非法侵入的防范能力。由于攻击者没有闯入的标准方法, 因而也没有实施安全性测试的标准方法。在测试过程中, 测试人员扮演非法入侵者, 逐一验证所设立对策的有效性。系统安全设计的准则是:使非法侵入的代价超过被保护信息的价值。
3 软件测试的发展前景
中国的软件测试技术起步较晚, 与国际先进水平相比差距较大, 仍处于起步阶段。但是, 随着我国软件产业的蓬勃发展以及对软件质量的重视, 软件测试也越来越被软件企业所重视, 软件测试正在逐步成为一个新兴的产业。重点体现在以下几个方面:软件测试理论和技术将更加完善, 测试效率将逐渐提高, 更实用的软件测试工具将大量出现, 测试工程师将得到充分的尊重。随着软件规模的逐步扩大, 功能将越来越复杂, 如何进行充分而有效的测试仍然是软件工程领域需要积极探索的问题。
参考文献
[1]佟伟光.软件测试.北京:人民邮电出版社, 2008.5。
[2]朱少民.全程软件测试.北京:电子工业出版社, 2014.1。
[3]曹薇.软件测试.北京:清华大学出版社, 2008.4。
答:1、寻找Bug;
2、避免软件开发过程中的缺陷;
3、衡量软件的品质
4、关注用户的需求,
总的目标是:确保软件的质量。
2、在您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?(初级)(6分)
答:一条Bug记录最基本应包含:编号、Bug所属模块、Bug描述、Bug级别、发现日期、发现人、修改日期、修改人、修改方法、回归结果等等;要有效的发现Bug需参考需求以及详细设计等前期文档设计出高效的测试用例,然后严格执行测试用例,对发现的问题要充分确认肯定,然后再向外发布如此才能提高提交Bug的质量。
3、界面测试题及设计题。请找出下面界面中所存在的问题并分别列出;用黑盒测试的任何一种方法设计出此登陆窗体的测试用例。(中级)(6分)
答:1、窗体的标题栏中为空,没有给出标题。
2、用户名和密码控件的字体不一致并且没有对齐。
3、文本框的大小不一致没有对其。
Well,it’s my pleasure to introduce myself.I’m yangcheng from Hu Bei province and I graduated from Hu Bei University for nationalities last year,.majoring in Information and Computer Secience,As you know,I’ve been working as a software engineer in a small company until September this year,because there’s something important I have to deal with back home.
As far as I’m concerned,before a project can be put into practice,there’s still much work we have to do,learning theories and methods of software test is a key point.Then,the Functional Requirement Specification must be analysed carefully and clearly so that we can design test plans and test cases fluently.Finally,we execute the cases and keep an eye on whether the related modules work well,meanwhile,we should find,track and fix bugs in order to make sure the whole quality of a software can meet customers’need.
1.1 云计算定义
目前关于云计算还没有确切的定义,但是美国国家标准与技术研究院(National Institute of Standards and Technology,NIST的定义[1]是业内认可度较高的:即云计算是一个模型,通过这个模型用户可以方便地运用网络按需访问公共的可配置的计算资源池(网络、服务器、存储设备、应用程序及服务等),这些资源可以被快速地提供并发布,同时可以最小化管理成本、减少用户与服务提供商之间的交互过程。通过云计算,可将所有的软件和硬件化为公共资源池,存储在云服务器上,用户只需在本地客户端通过互联网发送请求信息,远程云服务器就会按需提供资源和服务,并将结果返回到本地。
1.2云计算提供的服务
云计算提供三种服务[2]:基础设施即服务(Iaa S)、云平台即服务(Paa S)、软件即服务(Saa S),其服务模型如图1所示。
图1云平台的服务模型
1) Iaa S(Infrastructure as a Service,基础设施即服务),服务类型主要为大量服务器组成的云端基础设施资源形成的各类虚拟资源池,并提供标准统一的资源服务接口,通过调用这些接口为用户提供云计算特有的强大存储和计算能力等服务。
2)Paa S(Platform as a Service,平台即服务),将开发和运行环境作为一种服务来提供给用户,用户在云计算平台基础上,按照平台规定和要求开发自己的应用程序,也可以托管自己开发和运营的应用到云平台中,为用户提供研发平台。
3)Saa S(Software as a Service,软件即服务),将所有的应用软件都部署在云计算环境中,用户可以按需租用或者订购相应的软件资源,并按照计费标准通过使用数量、次数、时间等方式收取费用,客户只需按需使用。
2 云测试
2.1云测试概念
在本文中我们把在云计算环境上进行的测试称为“云测试”,顾名思义,云测试由测试和云计算两者组成,测试主要是指软件测试。通过将与测试相关的测试工具及测试环境部署在云端,用户在本地便可以进行测试工作。云测试按需服务,并针对使用收费,可以提供比如性能测试、负载测试和Web应用测试,以及在云中托管的测试环境[3]。
2.1测试即服务(Taa S)
由于云计算技术的推动,软件测试技术获得了巨大的发展,受到云测试提供的三种服务模式的影响,云计算在测试领域的应用催生了测试即服务的模式(Test as a Service, Taa S)[4]。测试服务提供商通过云测试平台向用户提供多种测试服务,用户通过制定测试方案,云测试平台按需分配测试资源,为用户返回测试结果。
3 云测试平台原型设计
云测试平台是云计算技术提供测试服务提供的载体,测试提供者将可调用的测试资源部署在服务器上,并向用户提供调用接口,用户通过云测试平台的前端创建测试项目,制订测试计划,上传测试脚本,执行测试过程,查看测试结果等[5]。为了更加深入地研究云测试的理论,我们进行了云测试平台的原型设计。
3.1云测试平台整体架构
在我们的方案中,云测试平台包含三层架构,最底层为Iaa S层,该层中实现了物理资源的虚拟化、云平台的管理和测试框架的管理;中间为Taa S层,该层实现了测试项目管理及测试代码的分析与预处理,并与数据库进行交互,保存上传的测试脚本及测试项目;最上层为用户层,该层面向用户使用,用户通过网络调用云测试平台的服务。整体架构如图2所示。
3.2云测试平台的硬件环境
在搭建云测试平台时为了节省研究成本,保证平台的经济性,我们采用了三台x86 架构的单个服务器作为搭建云测试平台的硬件设备,它们可以满足当前的需要,有必要时可以对硬盘和内存等资源进行动态扩展。其具体配置如表1所示:
在云测试平台中,我们使用三台计算机作为服务器,其中一台作为云测试平台的控制和存储节点,另外两台作为计算节点,在两台计算节点中,一台作为测试过程的控制节点,另一台作为测试过程的执行节点。
3.2云测试平台的软件环境
搭建云测试平台时,首先应当是云环境的选择。由于本文中的云测试平台仅供研究使用,因此我们并没有采用商业云方案,其中一个原因是商业化的云平台和服务的使用需按需支付费用,增加了不必要的成本,另一个重要的原因是,这些云测试平台解决方案的底层设计牢牢把控在提供商手里,并不对外开放,因此对于研究人员来说开源软件显然是更好的选择。一方面,开源软件在使用时无需商业授权,因此可将云计算软件测试的研究和应用实践控制在较低的成本下;另一方面,开源的项目可提供源代码的下载,使研究人员能够深入地进行底层设计架构的研究。
目前使用最多的开源云有Cloud Stack和Open Stack。Cloud Stack前身为商业化产品,并于2011年以超过两亿美金的价格被Ctrix公司收购,随后被捐献给了Apache基金会,变为了开源软件。Open Stack是由Rackspace和NASA主导开发的一个基础云[6],拥有包括HP,IBM,Dell和Redhat等大公司在内的庞大用户群。两者各有优势,它们的比较如表2所示。
由于Cloud Stack曾经为商业软件,已经被证明为可以可靠的用于生产系统,因此我们最终选择了Cloud Stack作为云平台,并采用了KVM作为虚拟化软件。
Cent OS操作系统是Red Hat的非商业化版本,对Cloud Stack的支持度非常好,也是官方推荐的操作系统,因此我们选择Cent OS作为服务器的操作系统,关系数据库我们选择了My SQL。构造云测试平台使用的软件配置如表3所示。
3.3测试工具的选择
首先,在云测试平台上实现的测试应是自动化测试,因此我们选择了自动化测试工具作为云测试平台的测试环境。在开源的测试工具中Junit和Test NG均可作为自动化测试框架[7],相对于Junit只适用于单元测试的劣势,Test NG则可做单元测试到集成测试的所有工作,因此我们选择Test NG作为单元测试到集成测试的自动化测试框架。
其次,测试的过程的并行执行由Selenium框架控制[8]。Selenium是一系列基于Web的自动化测试工具。Selenium体系主要由三个工具构成:Selenium IDE,Selenium RC和Selenium Grid,其中Selenium Grid允许Selenium RC针对大规模的测试用例集或者需要在不同环境中进行测试。通过Selenium Grid,多个Selenium RC实例可以在不同操作系统和浏览器环境中运行。启动时,每一个Selenium RC向Hub注册。当测试用例被分发到Hub时,测试用例将重新被指定到一个可用的Selenium RC上,由RC启动浏览器来执行测试用例。如此,测试用例就可以并行地运行。
3.4云测试平台的搭建
云测试平台整体上包括前台和后台两部分的搭建。前台的主要功能是与用户进行交互,包括用户的注册与登录、项目的增删改查、脚本的增删改查、测试结果的查询与下载,如图2所示。前台环境搭建包括网站设计、数据库设计、项目开发等过程。
后台的主要功能为测试脚本的下载、分发和执行以及测试结果的返回。后台环境搭建主要包括Cloud Stack环境的安装与配置、Selenium框架的集成和调用等过程,云平台搭建完成后可用Cloud Stack自带的管理界面进行虚拟机的添加和删除。前台和后台的交互如图33所示。
4 结束语
随着云计算技术的日益成熟,将会极大地改变人们应用信息的方式,使得软件服务企业的交付模式、研发模式和软件测试方式发生根本性的改变。在全球经济危机的影响下迫于成本压力,市场中有越来越多的企业开始考虑云模式所能带来的价值。目前市场上已经有部分云测试企业以及应用,但是云测试的标准和定义还没有一个统一的规定,云测试还处于稳步发展之中,伴随着云计算的快速发展,必将得到进一步的快速发展期[8]。
摘要:云计算技术的出现给软件测试技术的发展带来了深刻影响,催生了测试即服务(Taa S,Test as a Service)的理念,基于云计算的测试技术也是软件测试领域发展的趋势之一,该文对云计算技术的定义及提供的服务做了介绍,对云测试的概念及云测试提供的服务进行了分析,最后给出了一个搭建云测试平台的方案。
【软件测试技术面试总结】推荐阅读:
软件测试面试汇总10-12
软件测试基础面试题09-12
软件测试类英文面试题11-11
软件测试技术阶段作业07-19
软件测试年中总结06-23
漫谈软件回归测试10-19
软件测试报告范文06-21
软件测试保密协议06-29
软件测试微信07-05
软件测试一般流程09-14