软件测试面试常常提出的问题有那些,需要一些好的答案
展开全部 标准答案的,现在只是以偶的一点理解加上网上的一些内容列举出来供有需要的XDJM们作一下参考:1. 首先一般都是比较老套点的问题:介绍一下你的经历。
HOHO..这个问题我想谁都被问过吧,注意一下重点,不要紧张慢慢说就OK了。
2. 老套话说了就可以马上切入正题了。
根据你的经验说说你对软件测试/质量保证的理解?这个就要仁者见仁、智者见智了,也基本上都是书上的东东,如果能有一些自己独特的想法那就最好啦,呵呵 3. 理解完了那当然就要问一下是不是对软件测试了解啰。
这就轮到问软件测试的流程是什么,你原先的公司又是怎么的流程了?前面个问题也还是书本上的东西,一般介绍软测的书上都有,实际上国内一般的中小公司根本就达不到书上所说的那些个测试规范,测试流程也是如此,没办法,这就是现在我们整个大的测试环境,这个问题照着书上说的办就行了,后面那个知道该怎么做了吧,尽量把原来公司的测试流程言简意赅的表达出来。
4. 接着问题就可以有一大堆了,这些问题很多都是要看自己的测试经验以及对测试的理解来作答了,如:(1) 你对SQA的职责和工作活动(如软件度量)的理解:SQA就是独立于软件开发的项目组,通过对软件开发过程的监控,来保证软件的开发流程按照指定的CMM规程(如果有相应的CMM规程),对于不符合项及时提出建议和改进方案,必要是可以要高层经理汇报以求问题的解决。
通过这样的途径来预防缺陷的引入,从而减少后期软件的维护成本。
SQA主要的工作活动包括制定SQA工作计划,参与阶段产物的评审,进行过程质量、功能配置及物理配置的审计等;对项目开发过程中产生的数据进行度量等等;(2) 说说你对软件配置管理的理解:项目在开发的过程中要用相应的配置管理工具对配置项(包括各个阶段的产物)进行变更控制,配置管理的使用取决于项目规模和复杂性能及风险的水平。
软件的规模越大,配置管理就显得越重要。
还有在配置管理中,有一个很重要的概念,那就是基线,是在一定阶段各个配置项的组合,一个基线就提供了一个正式的标准,随后的工作便基于此标准,并且只有经过授权后才能变更这个标准。
配置管理工具主要有CC,VSS,CVS等,偶只用过CVS,对其它的不熟悉(3) 怎样写测试计划和测试用例:简单点,测试计划里应有详细的测试策略(测试方法等),合理详尽的资源安排等,至于测试用例,那是依赖于需求(包括功能与非功能需求)是否细化到功能点,是否可测试等。
(4) 说说主流的软件工程思想(如CMM,CMMI,RUP,XP,PSP,TSP等)的大致情况以及你对它们的理解:CMM:SW Capability Maturity Model 软件能力成熟度模型,其作用是用于软件过程的改进、评估及软件能力的评鉴 CMMI:Capability Maturity Model Integration 能力成熟度模型集成 CMMI融入了大部分最新的软件管理实践,同时弥补了SW-CMM模型中的缺陷 RUP:rational unified process 是软件工程化过程。
它提供了在开发机构中分派任务和责任的纪律化方法.它的目标是在可预见的日程和预算前提下确保满足最终用户需求的高质量产品,个人认为:它的核心观念是开发的迭代,每个公司可以根据自身的软件开发的流程和待开发项目的特点对RUP进行适当的剪裁,制定出符合自己的软件开发流程。
XP:extreme program,即极限编程的意思,适用于小型团队的软件开发,想上面第三个问题就可以结合原型法采用这样的开发流程。
要明白测试对于xp开发的重要性,强调测试(重点是单元测试)先行的理念。
编程可以明显提高代码的质量,持续集成对于快速定位问题很有好处。
PSP ,TSP 分别是个体软件过程(Personal Software Process),群组软件过程(Team Software Process)大家都知道,CMM只是告诉你怎么做但并没有告诉你如何做,所以PSP/TSP就是告诉你企业在实施CMM的过程中如何做,PSP强调建立个人技能(如何制定计划、控制质量及如何与其他人相互协作等等)而TSP着重于生产并交付高质量的软件产品(如何有效地规划和管理所面临的项目开发任务等等) 总之,单纯实施CMM,永远不能真正做到能力成熟度的升级,只有将实施CMM与实施PSP和TSP有机地结合起来,才能发挥最大的效力。
因此,软件过程框架应该是CMM/PSP/TSP的有机集成。
(5) 对项目管理、白盒测试、单元测试、自动测试、性能测试、压力测试工具的了解程度和实际使用经验。
(其实基本上也就是MI和Rational工具):这个就要看个人的了,没法说了(6) 其它一些具体的技术知识(如各种计算机语言的了解程度、数据库等);5. 还有问一下你是怎样保证软件质量的,也就是说你觉得怎样才能最大限度地保证软件质量?测试并不能够最大限度的保证软件的质量,软件的高质量是开发和设计出来的,而不是测试出来的,它不仅要通过对软件开发流程的监控,使得软件开发的各个阶段都要按照指定的规程进行,通过对各个阶段产物的评审,QA对流程的监控,对功能及配置的审计来达到开发的最优化。
当然测试也是保证软件质量的一个重要方式,是软件质量保证工程的一个重要组成部分。
6....
安全测试架构组成部分以及如何实施的?
谈安全测试架构,首先我们需要对测试架构这个概念有一个了解。
这里的架构不仅仅指一个自动化或者半自动化测试框架,而包含了更多问题。
在软件测试活动中,一个测试架构师要解决什么问题?例如:如何更好的指导开发工程师写出更高效的代码?如何用更快捷高效的办法来设计测试用例?如何提高测试覆盖率?如何完成复杂系统的非功能性(性能、安全性、兼容性、可靠性等)?能否对测试技术的发展趋势做出正确判断?等等一系列问题测试架构就是为解决上述问题而产生的,安全测试架构也是如此。
大体上看可以分为软件系统技术架构和软件测试框架两部分。
第一部分也就是包括需要对安全测试点进行合理的划分、归类,建立用例模型,设计合理的测试结构;从测试工作角度说,需要建立合适的测试管理系统;从技术发展趋势上说,就包括研发新的测试方法,并借助测试工具来实现。
至于说软件测试架构这一部分,其实也就是集成测试环境、测试脚本分层处理等,从安全测试角度来看,更多的是如何将安全测试套件与部分半自动化工具集成起来。
这里我推荐的是以Burpsuite为核心,以sqlmap等半自动化开源测试工具的模式。
现在网上论坛关于安全测试介绍相对较少,相对而言,Besttest网站上关于安全测试的内容,尤其是安全测试自学路线(超链)能给安全测试学习者很大的启发
软件测试工具有哪些?
开源测试管理工具:Bugfree、Bugzilla、TestLink、mantis 开源功能自动化测试工具:Watir、Selenium、MaxQ、WebInject 开源性能自动化测试工具:Jmeter、OpenSTA、DBMonster、TPTEST、Web Application Load Simulator [TestDirector]:企业级测试管理工具,也是业界第一个基于Web的测试管理系统。
[Quality Center]:基于Web的测试管理工具,可以组织和管理应用程序测试流程的所有阶段,包括指定测试需求、计划测试、执行测试和跟踪缺陷。
[QuickTest Professional]:用于创建功能和回归测试。
[LoadRunner]:预测系统行为和性能的负载测试工具。
[其他工具与自动化测试框架]:Rational Functional Tester、Borland Silk系列工具、WinRunner、Robot等。
国内免费软件测试工具有:AutoRunner和TestCenter。
常用的软件测试工具有哪些?
展开全部 1、 说说你们公司测试的一个基本测试流程是什么?答:首先会召开需求分析会议,参加人员有产品、开发和测试,主要是探讨需求主要的一些功能点,完了之后,开发就排期进行开发,我们就根据主管写出来的计划、分配到的任务编写测试用例,写完之后会进行用例评审,有评审修改的就修改整理形成最终的用例版本,之后开发人员版本编译完成后,我们会依据测试用例来执行测试,测试过程中,提交bug,跟踪bug,直至关闭,测试完后编写测试报告。
2、 你们项目主要是做什么的,有些什么功能,业务逻辑是怎样的?答:这个主要就是看公司具体的项目是什么,了解清楚功能模块,对主要功能模块做业务逻辑的一个描述就行。
3、 测试的过程中,还用过一些什么工具吗?答:有就有,没有就没有,一定要如实回答!比如在测试接口或者简单施压的时候用到了 jmeter。
4、 如果简历上写了,MySQL、Linux等,一般会问,掌握的程度怎么样?答:如实回答,对于测试人员来说,mysql基本的增删改查都会,Linux基本命令都会,也会linux环境的项目部署。
5、 你们需求分析会议主要目的是什么?答:讲解此次项目主要是做什么的,达到一个什么样的目的,探讨项目功能点,针对不清楚的及时提问。
6、 如果需求过少,你应该怎么办?答:首先我会有所疑问,然后再问问老大,看看到底是怎么回事,如果确实是需求少,那就进一步的分析这个业务。
如果确定有一些需求。
7、 编写测试用例的时候,会用到什么方法?答:等价类、边界值、错误推测法、场景法等。
接着又问了一个:你觉得你在写用例的时候用到了吗?我的回答是用到了,比如边界值,随便列举一个例子,比如:项目中某个标题输入框,长度是1-16个汉字。
会设计测试用例数据为输入标题为空、标题字数为1、标题字数为2、标题字数为15、标题字数是16、标题字数为178、 会写测试计划吗、包含哪些内容?答:一般说:没有写过,是我们主管写的,但我们会接触这个文档。
大概包含有:目的、背景、测试范围、测试开始结束时间、测试策略、测试人员安排、测试环境、风险评估等等。
...
如何搭建自己的自动化测试框架
展开全部 这段时间一直在为公司内部开发自动化测试框架,简称GTF,因为这个框架现在还属于开发阶段,很多事都是言之过早。
我会持续将我在架构过程中的想法写下来。
供自己和大家一起分享。
这些想法,并不属于我一个人,我工作中的同事们给了我很大的帮助。
今天这一篇主要说明架构方面的考虑。
在现有的提供自动化测试解决方案的产品很多,包括:Robot,TestComplete,WinRunner等等。
我只接触过这些,公司里也进行过很大的尝试,但是结果往往总是不竟如人意。
这中间,排除那些人员方面的原因,也总结这些自动化工具,在使用过程中的不方便的地方:1. 定位控件不方便。
标准控件还好,非标准控件就只能靠很多非正常方法去获取。
而且,控件的识别往往和界面布局相关。
3. 代码维护不方便。
由于在编写过程中,大量的和界面相关的代码,导致最后在需求变更的时候,代码的维护,成为软件测试人员的负担。
针对这些情况,我们经过讨论,何不自己做一个软件测试框架。
当然了,这是基于我们的丰富的知识积累的决策。
大家不需要关心这个决策的情况。
不过,可以多关注一些我们在做的过程中的分析结果。
通过分析流行的软件测试框架,有多种方式:第一、最典型的就是消息驱动,自动化工具通过脚本录制和编写,保存为测试脚本。
在回放的过程中,将这些脚本转换成为Windows消息,发送给我们应用程序的窗体和各种控件。
这种方式的好处在于,自动化工具和应用程序之间能够做到完全的隔离。
但是,由于使用了Windows消息,它也拥有了一个非常致命的缺点。
那就是消息队列的异步性与程序的顺序性之间的矛盾。
很多消息发送给了应用程序,但是应用程序的处理可能已经和消息队列错位了。
有一些关于代码的时间片等待,就是因为这个问题。
另外,就是由于完全的隔离,对于操纵控件数据的能力大大降低。
毕竟,拥有大量数据的控件都不是标准控件。
第二、嵌入式。
TestComplete就是这类工具。
它有支持不同语言的版本。
大概思路,就是在程序编译的时候,注入自己的控件代理。
脚本的回放,直接可以通过代理,操纵到应用程序。
可惜的是,这类软件开发的时候,更多的是考虑平台的兼容性。
对于特有平台上的支持不是十分完美。
特别是对自定义控件(比如Delphi中,除了VCL的标准控件)支持也没有做到最好。
不过,我这里必须承认,TC的内部实现机制可能十分强大,我不能窥探所有。
如果有人清晰,可以指点一二。
针对上面的两种,我们想到的第三种方式:一体式。
这种方式中,通过给程序在打包的过程中,添加额外的框架代码,使得程序自动提供控件的访问方式。
自动化的模块也会作为软件测试程序的一部分运行。
应用程序在执行脚本的时候,自动通过脚本,控制各控件界面的显示和关闭。
它应该是第二种方式的变种。
但是由于是自己实现的,所以在对各类自定义控件支持的都非常好。
针对一开始提出的几个自动化测试的难题,我们提出了,自动封装窗体上所有控件的概念(这些概念后面会详细介绍),对于软件测试人员,只要关心真正的业务操作流程。
而业务流程中涉及到的控件,已经为他们自动提供好。
这样,脚本也自然只成了业务流程的脚本。
其复杂度也就大大降下来了。
如果要推荐2个工具的话,我就推荐泽众软件公司的自动化测试工具AutoRunner和测试管理工具Testcenter,用这2个软件合作可以很好的进行自动化测试与对测试用例进行管理。
软件测试面试常常提出的问题有哪些?
展开全部 1、说下测试的基本流程? 2、你曾做过哪些项目,有些什么功能,什么样的业务逻辑? 3、在测试的过程中,都用到了什么工具? 4、做需求分析会议的目的是什么? 5、如果需求过少,你应该怎么办? 6、编写测试用例的时候,会用到什么方法? 7、会写测试计划吗、包含哪些内容? 问题都是曾经面试时遇到的,如果是做软件的,只要做过这些都是流程内的问题,随意答,就是看你做过没有,做得怎么样。
要是刚从事这个行业,一般就问些学过什么这样的问题。
...
自动化测试工具有哪些
展开全部 一、对于你的问题,首先明确测试类型,然后才能明确自动化测试类型,最后定位哪个类型用哪个方面的自动化测试工具。
1、测试类型可以包括:白盒测试、黑盒测试(功能测试、性能测试)等。
2、不同的测试类型使用的自动化测试方法不同,白盒测试主要针对代码级的单元测试、黑盒测试主要面对功能级和系统级的验证测试。
3、自动化测试,针对白盒测试,一般需要有一定的编程基础,即能够基于功能代码写测试代码,常用的单元测试方面的自动化测试工具很多,上网一搜全是。
4、自动化测试,针对功能测试,有几种情况,基于CLI、API和GUI的测试;基于CLI、API的测试,即应用脚本技术向设备模拟发送CLI命令或者API请求,以达到控制设备的效果。
基于GUI功能测试,即应用传统的界面自动化测试工具(例如:RFT、QTP等)控制界面控件操作的方法,以达到模拟用户操作,这几种方式都需要你有一定的编码基础;基于CLI、API的需要你懂脚本技术(例如:tcl、python、ruby等),RFT需要你懂java或者.net、QTP需要VB等。
5、你说的loadrunner就是性能测试方面的工具,即是测试软件性能、例如多用户操作等性能、也需要写代码,LR脚本支持的语言有:java、c、Visual Basic、vbscrīpt。
默认的脚本生成语言为 C;其实我想说的是,性能测试工具不重要,你需要掌握其性能测试的方法才是更重要的。
二、我感觉你想入门自动化测试,但是从你问的问题来看,有一定盲目性,我简单说一下自动化测试吧。
1、自动化测试,其理念就是应用各种手段模拟人工操作,节省人力测试成本,保证产品测试质量。
2、你想学好自动化软件测试,不是单单靠学习几个自动化工具就能掌握的,但是你可以从工具入手,首先,告诉你自动化测试的基础是: 1)编程技巧,包括高级语言和脚本语言,脚本语言是初期的掌握,可以有,tcl、phython、ruby等而高级语言,要好好学好一门,例如,我是对java为重点。
还有,如果你是对web自动化测试的话,那么jsp、php、HTML、CSS等web语言是必须掌握的。
2)操作系统技巧;因为软件自动化测试是构建在操作系统上的,其技巧需要能善于利用到操作系统的各种技巧,例如:注册表、环境变量、句柄等。
3)数据库知识,要善于利用数据库知识去存储管理。
4)业务知识,这也是重点。
你所在软件行业的软件业务,要知道你的软件的工作方式。
5)质量与流程管理理念。
然后,你的学习步骤: 1)可以从工具入手,根据具体的项目去学习;例如:java软件界面测试(RFT、QTP的java插件等)、web界面测试(QTP、selenium等)、性能测试(RPT、loadrunner等)。
但记住,学习其工具,重点不是简单的使用,而是如何利用工具去扩展。
2)然后,重点学习以上的基础,以编程为重点,其余的结合学习,顺便说一句,其实自动化测试的理念与软件设计模式理念很像,你可以从中有所领悟。
3)之后,再学习去拓建自己的自动化测试框架,何谓框架,一下说不清楚,我给你推荐一下。
注意:如果没有自动化测试方面的实践项目的话,最好先从基础学起,因为基础学好了,自动化测试入门会很快的。
4(至于性能测试,也是一样,可以先从工具入手,但不要局限于工具,性能测试最重要的是环境的构建方法以及对测试结果的分析方法,所以性能测试重点在于分析和实现过程,而不是工具使用过程。
什么是软件自动化测试框架?
展开全部 目前测试工作大多数以手动为主,并不是各个软件公司不想做自动化测试,无奈再没有成熟单位应用的情况下,但靠每个公司自己的摸索,显然比手动测试代价更大,且项目变化频度过快,也对测试框架提出了挑战,到底公司能够下多大的人力,物力来做测试框架的搭建,想必也是困扰了大家许久。
框架这个概念并不是只有在测试里面有,开发同样也有框架的概念。
框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。
前者是从应用方面而后者是从目的方面给出的定义。
可以说,一个框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法,它为构件复用提供了上下文(Context)关系。
因此构件库的大规模重用也需要框架。
构件领域框架方法在很大程度上借鉴了硬件技术发展的成就,它是构件技术、软件体系结构研究和应用软件开发三者发展结合的产物。
在很多情况下,框架通常以构件库的形式出现,但构件库只是框架的一个重要部分。
框架的关键还在于框架内对象间的交互模式和控制流模式。
框架比构件可定制性强。
在某种程度上,将构件和框架看成两个不同但彼此协作的技术或许更好。
框架为构件提供重用的环境,为构件处理错误、交换数据及激活操作提供了标准的方法。
应用框架的概念也很简单。
它并不是包含构件应用程序的小片程序,而是实现了某应用领域通用完备功能(除去特殊应用的部分)的底层服务。
使用这种框架的编程人员可以在一个通用功能已经实现的基础上开始具体的系统开发。
框架提供了所有应用期望的默认行为的类集合。
具体的应用通过重写子类(该子类属于框架的默认行为)或组装对象来支持应用专用的行为。
应用框架强调的是软件的设计重用性和系统的可扩充性,以缩短大型应用软件系统的开发周期,提高开发质量。
与传统的基于类库的面向对象重用技术比较,应用框架更注重于面向专业领域的软件重用。
应用框架具有领域相关性,构件根据框架进行复合而生成可运行的系统。
框架的粒度越大,其中包含的领域知识就更加完整。
框架,即framework.其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。
简单说就是使用别人搭好的舞台,你来做表演。
而且,框架一般是成熟的,不断升级的软件。
同样,测试框架也是如此,每个公司力求的最终结果,就是花少量的资源来尽可能多的完成测试任务,所以测试框架的建立以及框架的重用性方面是最值得探讨的地方,沙龙里面“自动化测试的框架要讲究粒度”和“建立测试框架需要一定的开发能力”这2句话说的非常有道理,你不能苛求测试人员完成所有测试应用框架的建立,这是不现实的,时间、资源都不允许。
所以被测系统的主营业务,核心应用理当成为框架的首选。
本站技术原创栏目文章均为中睿原创或编译,转载请注明:文章来自中睿,本站保留追究责任的权利。
软件测试学习中常遇见哪些问题?
1. 软件测试工程师岗位职责是什么 答:你可以去看看招聘网站上很多公司的招聘公布,都有岗位职责,看起来感觉离你自己还有一段距离。
你可以看看我们公司的网站,上面有很多关于软测方面的视频和资料。
加入我们后,会有视频和资料赠送,每天都会有直播互动答疑帮助你去提升。
相信你肯定可以胜任软测这份工作的。
2. 软件测试工程师需要学习哪些知识 答:如果你想当一个初级测试工程师,建议你学习第一阶段的课程,掌握软件测试基本知识,完全可以胜任;如果你想在这个行业走地更远,想要进一步地提高,建议你学习我们的全部课程。
我想每个人都希望在自己的岗位上走地更远,能有个更好的发展。
所以是希望你能够学完全部的课程,全部的课程包括软件测试基础理论知识,数据库,Java基础,后端技术,移动端测试,web测试,自动化测试,性能测试以及现在越来越普及的接口测试。
你学习完这个课程之后,你的工资不用想肯定很高的,具体你可以去招聘网站上看看。
(举例说明学员找到工作后工资) 3. 自动化测试会使用工具就行了吗 答:什么是自动化测试呢?自动化测试是指软件测试的自动化,软件测试就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。
自动化测试工具也有很多种,像QTP、selenium、winrunner、Rational Robot等,除了录制脚本还要会编写脚本。
QTP的脚本是VB script,简称VB,你也要去学会的。
加入我们的课程都会有老师教你,而且每天都会直播互动答疑。
转载请注明出处51数据库 » 软件测试框架有哪些问题
嗄沫