软件测试工程师笔试试题
01. 为什么要在一个团队中开展软件测试工作?
因为没有经过测试的软件很难在发布之前知道该软件的质量,就好比ISO质量认证一样,测试同样也需要质量的保证,这个时候就需要在团队中开展软件测试的工作。在测试的过程发现软件中存在的问题,及时让开发人员得知并修改问题,在即将发布时,从测试报告中得出软件的质量情况。
02. 您是否了解以往所工作的企业的软件测试过程?如果了解,请试述在这个过程中都有哪些工作要做?分别由哪些不同的角色来完成这些工作?
我没有工作过,但是对企业的软件测试过程有所了解,一个完整的软件测试过程包括测试计划的制定、人员的确定与分工、测试用例的编写、测试的实施、测试结果分析等
03. 您是否了解以往所工作的企业的软件开发过程?如果了解,请试述一个完整的开发过程需要完成哪些工作?分别由哪些不同的角色来完成这些工作?(对于软件测试部分,可以简述)
一个完整的开发过程包括需求分析、规划、编码、测试等
04. 您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作?
我曾经做过web测试,后台测试,其中包括功能测试,性能测试,用户体验测试。最擅长的是功能测试
05. 您所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性能测试……)
测试类型有:功能测试,性能测试,界面测试。
功能测试在测试工作中占的比例最大,功能测试也叫黑盒测试。是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。 界面测试,界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。而且设计良好的界面能够引导用户自己完成相应的操作,起到向导的作用。同时界面如同人的面孔,具有吸引用户的直接优势。设计合理的界面能给用户带来轻松愉悦的感受和成功的感觉,相反由于界面设计的失败,让用户有挫败感,再实用强大的功能都可能在用户的畏惧与放弃中付诸东流。 区别在于,功能测试关注产品的所有功能上,要考虑到每个细节功能,每个可能存在的功能问题。性能测试主要关注于产品整体的多用户并发下的稳定性和健壮性。界面测试更关注于用户体验上,用户使用该产品的时候是否易用,是否易懂,是否规范(快捷键之类的),是否美观(能否吸引用户的注意力),是否安全(尽量在前台避免用户无意输入无效的数据,当然考虑到体验性,不能
1d
1.1 附件1:ace与GBT19011-2008标准主要差异性分析
太粗鲁的弹出警告)?做某个性能测试的时候,首先它可能是个功能点,首先要保证它的功能是没问题的,然后再考虑该功能点的性能测试
06. 请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。 黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。 软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:1、是否有不正确或遗漏的功能?2、在接口上,输入是否能正确的接受?能否输出正确的结果?3、是否有数据结构错误或外部信息(例如数据文件)访问错误?4、性能上是否能够满足要求?5、是否有初始化或终止性错误?
软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:1、对程序模块的所有独立的执行路径至少测试一遍。2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。3、在循环的边界和运行的界限内执行循环体。4、测试内部数据结构的有效性,等等。
单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。
单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了证明这段代码的行为和我们期望的一致。
集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。
系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。(常见的联调测试)
系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计。
验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。验收测试是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能和性能如同用户所合理期待的那样。
2d
1.1 附件1:ace与GBT19011-2008标准主要差异性分析
07. 测试计划工作的目的是什么?测试计划工作的内容都包括什么?其中哪些是最重要的?
软件测试计划是指导测试过程的纲领性文件,包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。所以其中最重要的是测试测试策略和测试方法(最好是能先评审)
08. 您认为做好测试计划工作的关键是什么?
1.
明确测试的目标,增强测试计划的实用性
编写软件测试计划得重要目的就是使测试过程能够发现更多的软件缺陷,因此软件测试计划的价值取决于它对帮助管理测试项目,并且找出软件潜在的缺陷。因此,软件测试计划中的测试范围必须高度覆盖功能需求,测试方法必须切实可行,测试工具并且具有较高的实用性,便于使用,生成的测试结果直观、准确2.坚持“5W”规则,明确内容与过程“5W”规则指的是“What(做什么)”、“Why(为什么做)”、“When(何时做)”、“Where(在哪里)”、“How(如何做)”。利用“5W”规则创建软件测试计划,可以帮助测试团队理解测试的目的(Why),明确测试的范围和内容(What),确定测试的开始和结束日期(When),指出测试的方法和工具(How),给出测试文档和软件的存放位置(Where)。3.采用评审和更新机制,保证测试计划满足实际需求测试计划写作完成后,如果没有经过评审,直接发送给测试团队,测试计划内容的可能不准确或遗漏测试内容,或者软件需求变更引起测试范围的增减,而测试计划的内容没有及时更新,误导测试执行人员。4.
分别创建测试计划与测试详细规格、测试用例
应把详细的测试技术指标包含到独立创建的测试详细规格文档,把用于指导测试小组执行测试过程的测试用例放到独立创建的测试用例文档或测试用例管理数据库中。测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。
09. 您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。
1.等价类划分 划分等价类:
等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.
2.边界值分析法
边界值分析方法是对等价类划分方法的补充。测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.
使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等
3d
1.1 附件1:ace与GBT19011-2008标准主要差异性分析
于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.
3.错误推测法 基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法. 错误推测方法的基本思想:
列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例.
以前产品测试中曾经发现的错误等,
这些就是经验的总结.
例如, 还有,
在单元测试时曾列出的许多在模块中常见的错误. 输入数据和输出数据为0的情况. 可选择这些情况下的例子作为测试用例.
输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况.
4.因果图方法 前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等.
考虑输入条件之间的相互组合,可能会产生一些新的情况.
但要检查输入条件的组合不是一件容易的事情,
即使把所有输入条件划分成等价类,他们之间的组合情况也相当多.
因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例.
这就需要利用因果图(逻辑模型). 因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.
10. 您认为做好测试用例设计工作的关键是什么?
白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题11. 请以您以往的实际工作为例,
详细的描述一次测试用例设计的完整的过程。
就说我做过的网站功能的测试吧
首先:得到相关文档(需求文档和设计文档),理解需求和设计设计思想后,想好测试策略(测试计划简单点就OK了),考虑到测试环境,测试用例,测试时间等问题。
第二步:设计测试用例,测试策略是:把网站部分的功能点测试完,然后在进行系统测试(另外个模块呢有另一个测试人员负责,可以进行联调测试),网站模块的测试基本是功能测试和界面测试(用户并发的可能性很小,所以不考虑):这次的网站的输入数据呢是使用数据库中的某张表记录,如果表中某一数据记录中新加进来的(还没有被处理的,有个标志位),网站启动后会立刻去刷那张表,得到多条数据,然后在进行处理。处理过程中,会经历3个步骤,网站才算完成了它的任务。有3个步骤呢,就可以分别对
这3个步骤进行测试用例的设计,尽量覆盖到各种输入情况(包括数据库中的数据,用户的输入等),得出了差不多50个用例。界面测试,也就是用户看的到的地方,包括发送的邮件和用户填写资料的页面展示。
第三步:搭建测试环境(为什么这个时候考虑测试环境呢?因为我对网站环境已经很熟了,只有有机器能空于下来做该功能测试就可以做了),因为网站本身的环境搭建和其他的系统有点不同,它需要的测试环境比较麻烦,需要web服务器(Apache,tomcat),不过这次需求呢,网站部分只用到了tomcat,所以只要有tomcat即可 第四步:执行测试
12. 您以往的工作中是否曾开展过测试用例的评审工作?如果有,请描述测试用例评审的过程和评审的内容
4d
1.1 附件1:ace与GBT19011-2008标准主要差异性分析
。
13. 您以往是否曾经从事过性能测试工作?如果有,请尽可能的详细描述您以往的性能测试工作的完整过程。
是的,曾经做过网站方面的性能测试,虽然做的时间并不久,也是基于兴趣自己尝试着做。 性能测试类型包括负载测试,强度测试,容量测试等
负载测试:负载测试是一种性能测试指数据在超负荷环境中运行,程序是否能够承担。 强度测试:强度测试是一种性能测试,他在系统资源特别低的情况下软件系统运行情况 容量测试:确定系统可处理同时在线的最大用户数
在网站流量逐渐加大的情况下,开始考虑做性能测试了,首先要写好性能测试计划,根据运营数据得出流量最大的页面(如果是第一次的话,一般是首页,下载页,个人帐户页流量最大,而且以某种百分比),Web服务器指标指标:*
Avg
Rps:
平均每秒钟响应次数=总请求时间 / 秒数;* Successful Rounds:成功的请求;* Failed Rounds :失败的请求;* Successful Hits :成功的点击次数;* Failed Hits :失败的点击次数;* Hits Per Second :每秒点击次数;* Successful Hits Per Second :每秒成功的点击次数;* Failed Hits Per Second :每秒失败的点击次数;* Attempted Connections :尝试链接数;
14. 您在从事性能测试工作时,是否使用过一些测试工具?如果有,请试述该工具的工作原理,并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的。
有,loadrunner,原理图如下:
工作原理:
代理(Proxy)是客户端和服务器端之间的中介人,LoadRunner就是通过代理方式截获客户端和服务器之间交互的数据流。 1、虚拟用户脚本生成器通过代理方式接收客户端发送的数据包,记录并将其转发给服务器端;接收到从服务器端返回的数据流,记录并返回给客户端。
这样服务器端和客户端都以为在一个真实运行环境中,虚拟脚本生成器能通过这种方式截获数据流;虚拟用户脚本生成器在截获数据流后对其进行了协议层上的处理,最终用脚本函数将数据流交互过程体现为我们容易看懂的脚本语句。
5d
1.1 附件1:ace与GBT19011-2008标准主要差异性分析
2、压力生成器则是根据脚本内容,产生实际的负载,扮演产生负载的角色。
3、用户代理是运行在负载机上的进程,该进程与产生负载压力的进程或是线程协作,接受调度系统的命令,调度产生负载压力的进程或线程。
4、压力调度是根据用户的场景要求,设置各种不同脚本的虚拟用户数量,设置同步点等。 5、监控系统则可以对数据库、应用服务器、服务器的主要性能计数器进行监控。 6、压力结果分析工具是辅助测试结果分析。
15. 您认为性能测试工作的目的是什么?做好性能测试工作的关键是什么?
目的是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统的目的。包括以下几个方面
一.评估系统的能力,测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策。 二.识别体系中的弱点:受控的负荷可以被增加到一个极端的水平,并突破它,从而修复体系的瓶颈或薄弱的地方。 三.系统调优:重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。
检测软件中的问题:长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序中的隐含的问题或冲突。
四.验证稳定性(resilience)可靠性(reliability):在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法。
关键点:
1、整体工作计划
一个提纲携领的工作执行详细说明,必须是实施层面的。大至阶段划分,小到重装机器,是为性能测试工作的指导书 2、性能测试需求调研
一项工作,总有目的,需求调研即是解决这个问题。要在了解系统架构的前提下,确定测试目标。如:高峰期并发1000,交易平均响应时间不超过10S。但这种目标存在问题,因为并发1000是绝对并发还是按照业务人员操作习惯的并发不确定,所以,最好的测试目标是直接确定到系统TPS,而这种需求,是必须来源于实际生产中的数据,其它的,都属于拍脑袋的范畴。确定TPS有一定的策略,如八二原则等等。 3、测试数据
测试数据包括基础数据和脚本数据,都有可能成为测试任务的风险点。性能测试中,基础数据可以大部分为垃圾数据。脚本数据可以通过直接撰写SQL语句来挑选。 4、脚本编写
也是我的一个弱项,技术层面上的问题比较多,有一些特殊的系统,做起来脚本中的关联相当的困难 5、系统调优
这个我认为是性能测试中最重要的事情。性能测试包括两个层面,性能验证和性能调优。性能调优需要调优者具备多方面的能力,包括操作系统、中间件、数据库、网络、存储等等,目前我还没有碰到过一个对如此多方面均有所涉猎的人,所以说,一个全面的系统调优专家不存在,存在的只有领域专家,如何把相关领域专家更好的结合到性能测试中,是一个测试经理需要做的事情 6、测试报告撰写
测试报告,是反映本次测试成果的最直接和直观的输出物。一个好的测试报告,必须能够反映出测试过程中所有的问题和解决措施,必须能够结合所有的测试数据,体现出系统的性能瓶颈和调优建议。它应该包括:背景、过程review、结果分析、调优建议,甚至包括容量规划。
16. 在您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?
记录的内容为:发现了哪些bug、解决了哪些bug、遗留的bug对软件的影响
answer2:缺陷名词/描述/缺陷等级/严重程度/发现模块/发现步骤和过程/是否可以重现 提交高质量的Bug记录的方法: 1.用统一的Bug管理系统
2.在执行完一个测试用例并且通过时,应向Bug管理系统提交一个Bug报告
3.Bug报告必须清晰描述Bug产生的环境,产生Bug的用例、Bug产生的条件、具体详细的BUG现象,当前被测的软件版本,测试员人的建义等内容,以便BUG处理人员能重视现象BUG,能有效的找出现象BUG的原因BUG并进行修正。 4.BUG提交以“轮”为单位,也就是每个具体的BUG必须属于具体的被测软件产品版本。
6d
1.1 附件1:ace与GBT19011-2008标准主要差异性分析
5.每个提交的BUG经过处理或修正后放在下一个被测版本中进行回归测试,测试通过后,此BUG才会转换为CLOSE状态,结束此BUG的生命周期,否则,此BUG会处于相应的生存状态,直到最终处理完成后转为CLOSE状态。
6.BUG生命周期中各BUG处理过程必须有详细准确的处理记录,在BUG管理系统中能详细的看到此BUG的生命历程。
17. 您以往所从事的软件测试工作中,是否使用了一些工具来进行软件缺陷(Bug)的管理?如果有,请结合该工具描述软件缺陷(Bug)跟踪管理的流程。
使用过BugFree等免费工具18. 您以往是否曾经从事过单元测试和集成测试?如果有,请谈一下这些工作的实际开展情况。
19. 您如何看待软件过程改进?在您曾经工作过的企业中,是否有一些需要改进的东西呢?您期望的理想的测试人员的工作环境是怎样的?
将先进的经验或思想固化到过程中,通过过程改进和能力提高来改进软件质量。20. 您以往工作过的企业中,是否开展了软件配置管理工作?您能否描述一下这项工作的开展情况和您对这项工作的认识?
21. 您是否熟悉一些主流的软件工程方法论和思想,如RUP、CMM、CMMI、XP、PSP、TSP。如果熟悉,您是否可以谈一下对这些方法论和思想的认识?
22. 您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员良好的人际关系的关键是什么? 对事不对人,一切以公司利益、客户为重
23. 在您以往的测试工作中,最让您感到不满意或者不堪回首的事情是什么?您是如何来对待这些事情的?
24. 在即将完成这次笔试前,您是否愿意谈一些自己在以往的学习和工作中获得的工作经验和心得体会?(可以包括软件测试、过程改进、软件开发或者与此无关的其他方面)
软件测试工程师笔试试题 2
判断题(每题1分,12 分,正确的√,错误的╳) 1.软件测试的目的是尽可能多的找出软件的缺陷。(错)
软件测试的目的就是为了发现软件中的缺陷,从这个意义上面说上面的这个论断是正确的。不少人会认为软件测试可以保证软件的质量,其实这个观点是错误,测试只是软件质量控制中的一个角色,其活动并不能达成软件质量保证的效果。所以不要认为一个公司里面如果有了软件测试人员,产品的质量就会好起来。2.Beta 测试是验收测试的一种。(错)
Beat测试和验收测试是两种不同的测试。验收测试的目的是为了以发现”未实现的需求”为目的,以评估”适合使用”为目标,该类测试的不是以发现缺陷为主要目的。beta测试是一模拟真实的使用环境从而发现缺陷的一种测试。所以两者之间的是非包容关系。3.验
收测试是由最终用户来实施的。(错)
验收测试也可由软件生产的企业内部人员来实施,例如产品经理。当软件以项目的形式出现,那么验收测试由最终用户来实施的情况是比较常见的。但是对于产品形式的软件,生产企业内部的验收测试会更多。4.项目立项前测试人员不需要提交任何工件。
(对?)
应该说这道题目没有明确的答案,在项目立项前测试人员是不是要把一些准备工作以工件的形式给记录下来是完全取决于该企业的软件开发过程的要求。同时不同企业,立项前要达成的一些必要条件也是大相径庭的。应该说这一题目出的不是很好。5.单元测
试能发现约80%的软件缺陷。(对?)
同样这一题目也没有标准答案。因为该数据的来源和其统计的方法,样本都没有一个工业标准。这样出来的数据同样不具有权威性。这里我可以说一个简单的例子,在用ASP,php这类脚本语言开发网页的时候是根本没有复杂的单元测试。那么这样的数字应用在网站开发上面是否有意义,还是值得商榷的。
6.代码评审是检查源代码是否达到模块设计的要求。(对)
7d
1.1 附件1:ace与GBT19011-2008标准主要差异性分析
代码审查是一种静态技术,从这个意义上说代码复查是需要和其他的一些动态测试技术配合才能检查代码是否符合设计的要求7.自
底向上集成需要测试员编写驱动程序。(?)
桩程序与驱动程序的概念问题
8.负载测试是验证要检验的系统的能力最高能达到什么程度。(错) 9.测试人员要坚持原则,缺陷未修复完坚决不予通过。(错)
缺陷是否修复是需要听取测试人员的意见,但测试人员的意见非决定性。所以还是要看一个企业赋予测试人员有多大的权力。(视具体情况而定,如果缺陷对系统的使用功能、性能不够成不利影响,在时间等因素的条件下,可以考虑予以通过)10.代码评审员
一般由测试员担任。(错)
如果测试员有这个水平,那么当然是可以参加的。不过大多数的企业不会让普通的测试人员参与代码的评审。
11.我们可以人为的使得软件不存在配置问题。(错) 12.集成测试计划在需求分析阶段末提交。(错)
集成测试计划在开发人员完成软件集成计划之后就可以开始进行了。所以在需求分析阶段之后提交是不现实的事情,应该在软件的设计阶段后,编码前。 二、不定项选择题(每题2 分,10分)
1.软件验收测试的合格通过准则是:(ABCD)
A. 软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。 B. 所有测试项没有残余一级、二级和三级错误。
C. 立项审批表、需求分析文档、设计文档和编码实现一致。 D. 验收测试工件齐全。
2.软件测试计划评审会需要哪些人员参加?(ABCD) A.项目经理 B.SQA 负责人 C.配置负责人 D.测试组 3.下列关于alpha 测试的描述中正确的是:(AD)
A.alpha 测试需要用户代表参加 B.alpha 测试不需要用户代表参加 C.alpha 测试是系统测试的一种 D.alpha 测试是验收测试的一种
名词解释: Alpha和Beta测试简介
1、大型通用软件,在正式发布前,通常需要执行Alpha和Beta测试,目的是从实际终端用户的使用角度,对软件的功能和性能进行测试,以发现可能只有最终用户才能发现的错误。
2、Alpha测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由程序员或测试员完成。Alpha测试发现的错误,可以在测试现场立刻反馈给开发人员,由开发人员及时分析和处理。目的是评价软件产品的功能、可使用性、可靠性、性能和支持。尤其注重产品的界面和特色。Alpha测试可以从软件产品编码结束之后开始,或在模块(子系统)测试完成后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。有关的手册(草稿)等应该在Alpha测试前准备好。
3、Beta测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。因而,Beta测试是在开发者无法控制的环境下进行的软件现场应用。在Beta测试中,由用户记下遇到的所有问题,包括真实的以及主管认定的,定期向开发者报告,开发者在综合用户的报告后,做出修改,最后将软件产品交付给全体用户使用。Beta测试着重于产品的支持性,包括文档、客户培训和支持产品的生产能力。只有当Alpha测试达到一定的可靠程度后,才能开始Beta测试。由于Beta测试的主要目标是测试可支持性,所以Beta测试应该尽可能由主持产品发行的人员来管理。 从游戏角度上看,alpha可以理解为内测,beta是公测和全面的公开测试。
4.测试设计员的职责有:(BC)
A.制定测试计划 B.设计测试用例 C.设计测试过程、脚本 D.评估测试活动 5.软件实施活动的进入准则是:(ABC) A.需求工件已经被基线化 B.详细设计工件已经被基线化 C.构架工件已经被基线化 D.项目阶段成果已经被基线化
8d
1.1 附件1:ace与GBT19011-2008标准主要差异性分析
三、填空题(每空1分,24 分) 1.软件验收测试包括哪三种类型?
正式验收测试,alpha测试,beta测试。2.系统测试的策略(15种)
功能测试,性能测试,可靠性测试,负载测试,易用性测试,强度测试,安全测试,配置测试,安装测试,卸载测试,文挡测试,故障恢复测试,界面测试,容量测试,兼容性测试,分布测试,可用性测试3.设计系统测试计划需要参考的项目文档有? 软件测试计划,软件需求工件和迭代计划4.对面向过程的系统采用的集成策略有哪两种? 自顶向下,自底向上两种
5.通过画因果图来写测试用例的步骤为、、、及把因果图转 换为状态图共五个步骤。
(1)分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。(2)分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系? 根据这些关系,画出因果图。(3)由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。(4)把因果图转换成判定表。(5)把判定表的每一列拿出来作为依据,设计测试用例。
四、简答题(共37分)
1. 阶段评审与同行评审的区别。(4 分)
同行评审目的:发现小规模工作产品的错误,只要是找错误;
阶段评审目的:评审模块阶段作品的正确性可行性及完整性同行评审人数:3-7人人员必须经过同行评审会议的培训,由SQA指导阶段评审人数:5人左右评审人必须是专家具有系统评审资格同行评审内容:内容小一般文档 < 40页, 代码 < 500行阶段评审内容: 内容多,主要看重点同行评审时间:一小部分工作产品完成阶段评审时间: 通常是设置在关键路径的时间点上!2 . 什么是软件测试。
(3 分)
为了发现程序中的错误而执行程序的过程3 . 简述集成测试的过程。(5 分) 系统集成测试主要包括以下过程: 1. 构建的确认过程。 2. 补丁的确认过程。
3. 系统集成测试测试组提交过程。 4. 测试用例设计过程。 5. 测试代码编写过程。 6. Bug的报告过程。 7. 每周/每两周的构建过程。 8. 点对点的测试过程。
9. 组内培训过程。4 . 怎样做好文档测试?(4 分)
仔细阅读,跟随每个步骤,检查每个图形,尝试每个示例。检查文档的编写是否满足文档编写的目的内容是否齐全,正确内容是否完善标记是否正确5. 白盒测试有几种方法?(6 分)
总体上分为静态方法和动态方法两大类。静态:关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义动态:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。6. 系统测试计划是否需要同行评审,为什么?(4 分) 需要,系统测试计划属于项目阶段性关键文档,因此需要评审。7. Alpha 测试与beta 测试的区别。(4 分)
Alpha测试在系统开发接近完成时对应用系统的测试;测试后仍然会有少量的设计变更。这种测试一般由最终用户或其它人员完成,不能由程序或测试员完成。
Beta测试当开发和测试根本完成时所做的测试,最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其它人员完成,不能由程序员或测试员完成。8 . 比较负载测试、容量测试和强度测试的区别。(6 分)
负载测试:在一定的工作负荷下,系统的负荷及响应时间。强度测试:在一定的负荷条件下,在较长时间跨度内的系统连续运行给系统性能所造成的影响。容量测试:容量测试目的是通过测试预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限值状态下没有出现任何软件故障或还能保持主要功能正常运行。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。容量测试的目的是使系统承受超额的数据容量来发现它是否能够正确处理。容量测试是面向数据的,并且它的目的是显示系统可以处理目标内确定的数据容量。9 . 测试结束的标准是什么?(3 分) 简单答法: 1 所有测试用例执行
9d
1.1 附件1:ace与GBT19011-2008标准主要差异性分析
2 所有缺陷均关闭或者在商定的范围内(要依据组织的能力以及测试的要求来) 测试退出标准(复杂版)
产品的最终发布日期为2007年**月**日。测试退出标准为完成测试需求中列出的所有功能及测试过程中发现缺陷的回归测试。 下面分类阐述: 一:单元测试退出标准
1) 单元测试用例设计已经通过评审 2) 核心代码100%经过Code Review 3) 单元测试功能覆盖率达到100% 4) 单元测试代码行覆盖率不低于80%
5) 所有发现缺陷至少60%都纳入缺陷追踪系统且各级缺陷修复率达到标准 6) 不存在A、B类缺陷 7) C、D、E类缺陷允许存在
8) 按照单元测试用例完成了所有规定单元的测试 9) 软件单元功能与设计一致 二:集成测试退出标准
1) 集成测试用例设计已经通过评审
2) 所有源代码和可执行代码已经建立受控基线,纳入配置管理受控库,不经过审批不能随意更改 3) 按照集成构件计划及增量集成策略完成了整个系统的集成测试 4) 达到了测试计划中关于集成测试所规定的覆盖率的要求 5) 集成工作版本满足设计定义的各项功能、性能要求
6) 在集成测试中发现的错误已经得到修改,各级缺陷修复率达到标准 7) A、B类BUG不能存在
8) C、D类BUG允许存在,但不能超过单元测试总BUG的50%。 9) E类BUG允许存在 三:系统测试退出标准
1) 系统测试用例设计已经通过评审 2) 按照系统测试计划完成了系统测试 3) 系统测试的功能覆盖率达100%
4) 系统的功能和性能满足产品需求规格说明书的要求
5) 在系统测试中发现的错误已经得到修改并且各级缺陷修复率达到标准 6) 系统测试后不存在A、B、C类缺陷 7) D类缺陷允许存在,不超过总缺陷的5%
8) E类缺陷允许存在,不超过总缺陷的10%三、问答题:(共25 分)
1、 项目的集中管理在软件公司的哪一个层面?(2 分) 2、 请描述软件测试活动的生命周期。(8 分)
开始-进行-迭代-结束 3、 什么是测试评估,测试评估的范围是什么?(5 分)
目的 评估测试结果并记录变更请求。 计算并交付测试的主要评测方法。 生成测试评估摘要。 10d
1.1 附件1:ace与GBT19011-2008标准主要差异性分析 步骤 分析测试结果并提交变更请求 评估基于需求的测试覆盖 评估基于代码的测试覆盖 分析缺陷 确定是否达到了测试的完成标准和成功标准 生成测试评估摘要 输入工件: 生成工件: 测试计划 测试评估摘要 测试用例 测试结果
4、 阐述工作版本的定义。(2 分)
工作版本由一个或多个构件(通常为可执行构件)构成,一般都是通过编译和链接源代码的处理过程从其他构件中构建的。(表示:实施模型(顶级包或实施子系统)中的包,构造型为 «build»。)5 、 请画出软件测试活动的流程图。
(8 分)
软件测试工程师笔试试题 3
测试人员考试试卷(考试时间90分钟,满分100分) 姓名:__________部门:__________员工号:__________ 一、 判断题(每题2分,正确的“√”,错误的“╳”) 1 、 好的测试员不懈追求完美。( 对)
11d
UML1.1 附件1:ace与GBT19011-2008标准主要差异性分析
2、 测试程序仅仅按预期方式运行就行了。(错 ) 3、 不存在质量很高但可靠性很差的产品。(错 )
4、 软件测试员可以对产品说明书进行白盒测试。(错 ) 5、 静态白盒测试可以找出遗漏之处和问题。( 对) 6、 总是首先设计白盒测试用例。( 错)
7、 可以发布具有配置缺陷的软件产品。(对 )
8、 所有软件必须进行某种程度的兼容性测试。(对 )
9、 所有软件都有一个用户界面,因此必须测试易用性。(错 ) 10、 测试组负责软件质量。( 错) 二、 简答题
1、 软件的缺陷等级应如何划分?(3 分)
答:影响进度的问题、死机、功能问题、界面问题、建议2、 如果能够执行完美的黑盒测试,还需要进行白盒测试吗?为什么?(5 分)
答:需要,黑盒测试,测试人员完全不考虑程序内部的逻辑结构和内部特征,只依据程序的需求分析规格说明,检查程序的功能是否符合它的功能说明。3、 你认为一个优秀的测试工程师应该具备哪些素质?(3 分)
答:1、具有良好的计算机编程基础 2、具有创新精神和超前意识 3、不懈努力,追求完美 4、具有整体观念,对细节敏感 5、团队合作精神 6、责任心、耐心、细心、信心 7、沟通能力 8、时时保持怀疑态度,并且有缺陷预防的意识4、 产品测试
到什么时候就算是足够了?(2 分)
测试一直贯穿软件的整个生命周期,从需求、设计到编码、实现一直到软件的最终交付用户。并不等于软件的调试。5、 测试计划
的目的是什么?(2 分)
答:用来识别任务、分析风险、规划资源和确定进度。6、 为什么要进行软件测试?软件测试的目的是什么? (5 分)
7、 软件测试应该划分几个阶段?简述各个阶段应重点测试的点?各个阶段的含义?(5 分)
答:单元测试(测最小模块)、集成测试(将模块逐渐递增)、系统测试()、验收测试。8、 如何做一名合格的测试人员?(3 分)
想要成为一名合格的软件测试人员,不仅需要理解和掌握测试理论、标准和规范,根据不同企业的产品特点,要求了解相应的开发软件测试方法,而且还要熟练操作一种甚至多种测试工具。
9、 针对缺陷采取怎样的管理措施?(5 分)
答:提交缺陷报告、分配缺陷报告、处理缺陷报告、返测报告、关闭缺陷报告 三、 专业词语解释(每题2 分) α
测试:
Alpha是用户在开发结束时的测试。针对测试的结果可能还会进行一些小的设计更改。 β测试: Beta测试是用户在开发和测试全部结束后,并且在最终版本发布之前进行的测试。
驱动模块:
驱动模块在大多数场合称为\"主程序\",它接收测试数据并将这些数据传递到被测试模块
桩模块:
集成测试前要为被测模块编制一些模拟其下级模块功能的“替身”模块,以代替被测模块的接口,接受或传递被测模块的数据,这些专供测试用的“假”模块称为被测模块的桩模块。白盒测试: 也称为结构测试、逻辑驱动测试,根据程序的内容来设计测试。
静态测试:
是不运行被测程序本身而寻找程序代码中可能存在的错误或评估程序代码的过程。
四、 选择题(每题2分)
1.下面哪些属于动态分析( BCD)
A. 代码覆盖率 B. 模块功能检查 C. 系统压力测试 D. 程序数据流分析 2.下面哪些属于静态分析( ABC)
A、 代码规则检查 B、 序结构分析 C、 序复杂度分析 D、 内存泄漏 五、 设计题(10分)
在三角形计算中,要求三角型的三个边长:A、B 和C。当三边不可能构成三角形时提示错误,可构成三角
12d
1.1 附件1:ace与GBT19011-2008标准主要差异性分析
形时计算三角形周长。若是等腰三角形打印“等腰三角形”,若是等边三角形,则提示“等边三角形”。画出程 序流程图、控制流程图、找出基本测试路径 ,对此设计一个测试用例。
软件测试工程师笔试试题(五)
1.什么是软件测试,以及软件测试的意义?
狭义:G.J.Myers所给出了测试定义——“程序测试是为了发现错误而执行程序的过程”,实际是一个狭义的概念,因为他认为测试是执行程序的过程,也就是传统意义上的测试——在代码完成后,通过运行程序来发现程序代码或软件系统中错误。
广义:软件测试是贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早地发现在软件产品中所存在的各种问题——与用户需求、预先定义的不一致性。
软件测试通过使用人工和自动手段寻找软件系统中的错误,尽可能地为修正错误提供更多的信息,从而保证软件系统的可用性,最终达到提高软件产品的质量目的。
2、 简要列出bug的几种状态
New—open—fixed---closed
---fixed--reopen ---closed ---reject
3、 黑盒测试的定义,白盒测试的定义
黑盒测试
黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下, 测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试方法主要有等价类划分、边值分析、因—果图、错误推测等,主要用于软件确认测试。 “黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。 白盒测试:
白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒”法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。
4、 “CMM”的含义,分为哪5个等级。
CMM是指“能力成熟度模型”,其英文全称为Capability Maturity Model for Software,英文缩写为SW-CMM,简称CMM。它是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标。
CMM是是一种用于评价软件承包能力并帮助其改善软件质量的方法,侧重于软件开发过程的管理及工程能力的提高与评估。CMM分为五个等级:一级为初始级,二级为可重复级,三级为已定义级,四级为已管理级,五级为优化级。
CMM是由美国卡内基梅隆大学软件工程研究所1987年研制成功的,是目前国际上最流行最实用的软件生产过程标准和软件企业成熟度等级认证标准。目前,我国已有软件企业通过了CMM标准认证。
精品文档word文档可以编辑!谢谢下载!
13d
因篇幅问题不能全部显示,请点此查看更多更全内容