总是很难忘记生活的点点滴滴, 脑海中总是闪过好多的曾经, 美好的回忆, 但成长中却让我们失去了很多, 很想在忙碌的生活中淡淡忘记; 不曾放低的东西却始终让我忘记不了, 但我还要在忙碌的生活中继续生活!

软件测试面试问答大全(2)

上一篇 / 下一篇  2008-10-09 15:26:31 / 个人分类:测试知识

11.您在从事性能测试工作时,是否使用过一些测试工具?如果有,请试述该工具的工作原理,并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的。

  目前市场上的性能测试的工具种类很多,可以简单的划分为以下几种:负载压力测试工具、资源监控工具、故障定位工具以及调优工具。

主流负载性能测试工具

负载性能测试工具的原理通常是通过录制、回放脚本、模拟多用户同时访问被测试系统,制造负载,产生并记录各种性能指标,生成分析结果,从而完成性能测试的任务。

       主流的负载性能测试工具有:

        QA LoadCompuware公司的QALoad是客户/服务器系统、企业资源配置(ERP)和电子商务应用的自动化负载测试工具。QALoadQACenter性能版的一部分,它通过可重复的、真实的测试能够彻底地度量应用的可扩展性和性能。QACenter汇集完整的跨企业的自动测试产品,专为提高软件质量而设计。QACenter可以在整个开发生命周期、跨越多种平台、自动执行测试任务。

        SilkPerformer:一种在工业领域最高级的企业级负载测试工具。它可以模仿成千上万的用户在多协议和多计算的环境下工作。不管企业电子商务应用的规模大小及其复杂性,通过SilkPerformer,均可以在部署前预测它的性能。可视的用户化界面、实时的性能监控和强大的管理报告可以帮助我们迅速的解决问题,例如加快产品投入市场的时间,通过最小的测试周期保证系统的可靠性,优化性能和确保应用的可扩充性。

        LoadRunner:一种较高规模适应性的,自动负载测试工具,它能预测系统行为,优化性能。LoadRunner强调的是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的确认和查找问题。此外,LoadRunner能支持最宽范的协议和技术,为您的特殊环境,量身定做地提供解决方案。

        WebRunner:是RadView公司推出的一个性能测试和分析工具,它让web应用程序开发者自动执行压力测试;webload通过模拟真实用户的操作,生成压力负载来测试web的性能,用户创建的是基于javascrīpt的测试脚本,称为议程agenda,用它来模拟客户的行为,通过执行该脚本来衡量web应用程序在真实环境下的性能。

免费测试工具:

        OpenSTA:开源项目,功能强大,自定义功能设置完备,但设置通过scrīpt来完成。必须学习scrīpt编写

        WASWeb Application Stress Tool):微软的工具,输出结果是纯文本的。

主流商用负载性能工具的比较图如下:

属性

LoadRunner

QALoad

WebLoad

出品公司

HP(Mercury)

Compuware

Radview

价格

昂贵

较贵

一般

安装配置的复杂性

简单

简单

一般

操作性

较复杂

简单

简单

支持测试对象

各种中间件/数据库/应用服务器的性能监控/企业架构(j2ee和.net)的测试

客户/服务器系统、企业资源配置(ERP)和电子商务应用

Web Application

支持平台

windows,unixlinux

HP-UX, IBM AIX,Sun Solaris, Linux, NT/2k

UnixWindows

支持数据库

DB2,SQLserver,
Orcale,Sybase

ADO, DB2,Oracle,Sybase,
SQLserver,Odbc

ADO,DB2,Oracle,Sybase,
SQLserver,Odbc

支持协议 

web,http(s),soap,streaming,
wap,winsock,xml

http,ssl,soap,xml,
streaming,media

xml,java,ejb,
activex,wap,http,snmp,
real/m$streaming

脚本语言

类似C++

C/C++和VC++

Javascrīpt

自动数据生成

Y

Y

Y

脚本调试

Y

Y

Y

报表定制功能

Y

Y

Y

功能点

创建虚拟用户,创建真实的负载,定位性能问题,分析结果以精确定位问题所在,重复测试保证系统发布的高性能等

预测系统性能、通过重复测试寻找瓶颈问题、从控制中心管理全局负载测试、快速创建仿真的测试、验证应用的可扩展性。

强大的专业网站性能测试,虚拟多用户

虚拟用户上限数量

成千上万

成百上千

理论上无限,不过受机器的限制,同时运行太多影响结果的准确性

公司网址

Http://www.merc-int.com

http://www.compuware-china.com

http://www

 

 

12.您认为性能测试工作的目的是什么?做好性能测试工作的关键是什么?

目的:是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统的目的。

包括以下几个方面

1.评估系统的能力,测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策。

2.识别体系中的弱点:受控的负荷可以被增加到一个极端的水平,并突破它,从而修复体系的瓶颈或薄弱的地方。

3.系统调优:重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。

检测软件中的问题:长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序中的隐含的问题或冲突。

4.验证稳定性(resilience)可靠性(reliability):在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法。

性能测试类型包括负载测试,强度测试,容量测试

负载测试:负载测试是一种性能测试指数据在超负荷环境中运行,程序是否能够承担。

强度测试强度测试是一种性能测试,他在系统资源特别低的情况下软件系统运行情况。

容量测试:确定系统可处理同时在线的最大用户数 

观察指标:

性能测试主要是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。

 

13.在您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?

当在测试过程中出现了测试人员无法解释的事件时,将给出一个问题报告。问题报告中记录该事件的详细情况和以下条目。

问题标识、作者、发布/构建版本号、打开日期、关闭日期、问题作用域、缺陷或补充、

测试环境、缺陷类型、缺陷发现人、缺陷如何发现、缺陷指派给的人、优先级、重要性、状态。

其他用来对测试过程和结果进行交流的测试报告包括测试用例日志、测试日志总结报告、系统总结报告等。测试用例日志记录了将要执行的某个测试类型的测试用例。同时也记录了测试的结果,为测试日志总结报告提供了详细的依据,并为重构测试提供了可能(如果需要的话)。

测试日志总结报告记录了测试人员日志中的测试用例,这些尚未完成或者已经完成的测试用例用于状态报告和度量标准收集。

应该为每个主要的测试事件准备一个系统总结报告。有时系统总结报告也会概述所有的测试。下面列出了通常包含的主要部分:通用信息(描述测试目标、测试环境、参考信息),测试结果和发现(描述每个测试),软件功能和发现,以及分析和测试总结。

 

 

14.您以往所从事的软件测试工作中,是否使用了一些工具来进行软件缺陷(Bug)的管理?如果有,请结合该工具描述软件缺陷(Bug)跟踪管理的流程。

缺陷能够引起软件运行时产生的一种不希望或不可接受的外部行为结果,软件测试过程简单说就是围绕缺陷进行的,对缺陷的跟踪管理一般而言需要达到以下的目标:

      a,确保每个被发现的缺陷都能够被解决;
      b,
这里解决的意思不一定是被修正,也可能是其他处理方式(例如,在下一个版本中修正或是不修正),总之,对每个被发现的BUG的处理方式必须能够在开发组织中达到一致;
      c,
收集缺陷数据并根据缺陷趋势曲线识别测试过程的阶段;决定测试过程是否结束有很多种方式,通过缺陷趋势曲线来确定测试过程是否结束是常用并且较为有效的一种方式;
      d,
收集缺陷数据并在其上进行数据分析,作为组织的过程财富。

     上述的第一条是最受到重视的一点,在谈到缺陷跟踪管理时,一般人都会马上想到这一条,然而对第二和第三条目标却很容易忽视。其实,在一个运行良好的组织中,缺陷数据的收集和分析是很重要的,从缺陷数据中可以得到很多与软件质量相关的数据。

Bug管理的一般流程:

  测试人员提交新的Bug入库,错误状态为New

  高级测试人员验证错误,如果确认是错误,分配给相应的开发人员,设置状态为Open。如果不是错误,则拒绝,设置为Declined状态。

   开发人员查询状态为OpenBug,如果不是错误,则置状态为Declined;如果是Bug则修复并置状态为Fixed。不能解决的Bug,要留下文字说明及保持BugOpen状态。

   对于不能解决和延期解决的Bug,不能由开发人员自己决定,一般要通过某种会议(评审会)通过才能认可。

   测试人员查询状态为FixedBug,然后验证Bug是否已解决,如解决置Bug的状态为

Closed,如没有解决置状态为Reopen

 

15.您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员良好的人际关系的关键是什么?

 

16.在您以往的测试工作中,最让您感到不满意或者不堪回首的事情是什么?您是如何来对待这些事情的?

 

17.在即将完成这次笔试前,您是否愿意谈一些自己在以往的学习和工作中获得的工作经验和心得体会?(可以包括软件测试、过程改进、软件开发或者与此无关的其他方面)

 

18.你对测试最大的兴趣在哪里?为什么?

  最大的兴趣就是测试有难度,有挑战性!做测试越久越能感觉到做好测试有多难。曾经在无忧测试网上看到一篇文章,是关于如何做好一名测试工程师。一共罗列了1112点,有部分是和人的性格有关,有部分需要后天的努力。但除了性格有关的12点我没有把握,其他点我都很有信心做好它。

  刚开始进入测试行业时,对测试的认识是从无忧测试网上了解到的一些资料,当时是冲着做测试需要很多技能才能做的好,虽然入门容易,但做好很难,比开发更难,虽然当时我很想做开发(学校专业课我基本上不缺席,因为我喜欢我的专业),但看到测试比开发更难更有挑战性,想做好测试的意志就更坚定了。

  不到一年半的测试工作中,当时的感动和热情没有减退一点(即使环境问题以及自身经验,技术的不足,做测试的你一定也能理解)。

  我觉得做测试整个过程中有2点让我觉得很有难度(对我来说,有难度的东西我就非常感兴趣),第一是测试用例的设计,因为测试的精华就在测试用例的设计上了,要在版本出来之前,把用例写好,用什么测试方法写?(也就是测试计划或测试策略),如果你刚测试一个新任务时,你得花一定的时间去消化业务需求和技术基础,业务需求很好理解(多和产品经理和开发人员沟通就能达到目的),而技术基础可就没那么简单了,这需要你自觉的学习能力,比如说网站吧,最基本的技术知识你要知道网站内部是怎么运作的的,后台是怎么响应用户请求的?测试环境如何搭建?这些都需要最早的学好。至少在开始测试之前能做好基本的准备,可能会遇到什么难题?需求细节是不是没有确定好?这些问题都能在设计用例的时候发现。

  第二是发现BUG的时候了,这应该是测试人员最基本的任务了,一般按测试用例开始测试就能发现大部分的bug,还有一部分bug需要测试的过程中更了解所测版本的情况获得更多信息,补充测试用例,测试出bug。还有如何发现bug?这就需要在测试用例有效的情况下,通过细心和耐心去发现bug了,每个用例都有可能发现bug,每个地方都有可能出错,所以测试过程中思维要清晰(测试过程数据流及结果都得看仔细了,bug都在里面发现的)。如何描述bug也很有讲究,bug在什么情况下会产生,如果条件变化一点点,就不会有这个bug,以哪些最少的操作步骤就能重现这个bug,这个bug产生的规律是什么?如果你够厉害的话,可以帮开发人员初步定位问题。

 

19.你的测试职业发展是什么?

  测试经验越多,测试能力越高。所以我的职业发展是需要时间累积的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年累积测试经验,按如何做好测试工程师的1112点要求自己,不断的更新自己改正自己,做好测试任务。

 

20.你自认为测试的优势在哪里?

  优势在于我对测试坚定不移的信心和热情,虽然经验还不够,但测试需要的基本技能我有信心在工作中得以发挥。


TAG: 软件测试面试 测试术语 测试技术 测试知识

 

评分:0

我来说两句

Open Toolbar