经典的测试开发⾯试题
(整理⾃⽹络)
1、你在测试中发现了⼀个bug,但是开发经理认为这不是⼀个bug,你应该怎样解决?
⾸先,将问题提交到缺陷管理库进⾏备案。
然后,要获取判断的依据和标准:
根绝需求说明书,产品说明、设计⽂档等,确认实际结果是否与计划有不⼀致的地⽅,提供缺陷是都确认的直接依据;
如果没有⽂档依据,根据类似软件的⼀般特性来说明是否存在不⼀致的地⽅,来确认是否是缺陷;
根据⽤户的⼀般使⽤习惯,来确认是否是缺陷;
与设计⼈员,开发⼈员和客户代表等相关⼈员探讨,确认是否是缺陷;
合理论述,客观严谨的向测试经理说明⾃⼰的判断理由;
等待测试经历做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反应,并由上级做出决定
2、给你⼀个⽹站,你如何测试?
⾸先,查需求说明、⽹站设计等相关⽂档,分析测试需求;
制定测试计划,确定测试范围和测试策略,⼀般包括以下及部分,功能性测试、界⾯测试、性能测试、数据库测试、安全性测试、兼容性测试;
设计测试⽤例:
功能测试(包括不限于):
链接测试。链接是否正确跳转,是否存在空页⾯和⽆效页⾯,是否有不正确的出错信息返回
提交功能的测试
多媒体元素是否可以正确加载和显⽰
多语⾔⽀持是否能够正确显⽰选择的语⾔
界⾯测试(包括但不限于):
页⾯是否风格统⼀,美观
页⾯布局是否合理,重点内容和热点内容是否突出
空间是否正常使⽤
对于必须但未安装的控件,是否提供⾃动下载并安装的功能
⽂字检查
性能测试:
压⼒测试
负载测试
强度测试
数据库测试:
具体决定是否需要展开。数据库⼀般需要考虑连结性,对数据的存取操作,数据内容的验证等⽅⾯。
安全性测试:
基本的登陆功能的检查
是否存在溢出错误,导致系统崩溃或者权限泄露
相关开发语⾔的常见安全性问题检查,例如:SQL注⼊
如果需要⾼级的安全性问题,确定获得专业安全公司的帮助,外包测试,或者获取⽀持
兼容性测试,根据需求说明的内容,确定⽀持的平台组合:
浏览器的兼容性
操作系统的兼容性
软件平台的兼容性
数据库的兼容性
开展测试,并记录缺陷,合理的安排调整测试进度,提前获取测试所需的资源,建⽴管理体系(例如:需求变更,风险,配置,测试⽂档,缺陷报告,⼈⼒资源等内容)
定期评审,对测试进⾏评估和总结,调整测试内容
3、在搜索引擎中输⼊汉字就可以解析到对应的域名,请问如何使⽤LoadRunner进⾏测试
建⽴测试计划,确定测试标准和测试范围
设计典型场景的测试⽤例,都改常⽤业务流程和不常⽤的业务流程等
根据测试⽤例,开发⾃动化测试脚本和场景
录制测试脚本:新建⼀个脚本(Web/HTML协议);点击录制按钮,在弹出的对话框的URL中输⼊”about:blank”;在打开的浏览器中进⾏正常操作流程后,结束录制;调试脚本并保存,可能要注意到字符集的关联。
设置测试场景:针对性能设置测试场景,主要判断在正常情况下,系统的平均事务响应时间是否达标;针对压⼒负载设置测试场景,主要判断在长时间处于满负荷或者超出系统承载能⼒的条件下,系统是否会崩溃;执⾏测试,获取测试结果,分析测试结果
4、⽬前主要的测试⽤例⽅法是?
⽩盒测试:路径覆盖、代码⾛查、静态分析
⿊盒测试:边界值分析,等价类划分,错误推测法,因果图,状态图法
5、软件测安全性从哪⼏个⽅⾯测试?
软件安全性测试包括:程序、数据库安全测试
⽤户认证安全的测试要考虑问题:明确区分系统中不同⽤户权限、系统中会不会出现⽤户冲突、系统会不会因⽤户的权限的改变造成混乱、⽤户登陆密码是否是可见、可
复制、是否可以通过绝对途径登陆系统(拷贝⽤户登陆后的链接直接进⼊系统)、⽤户退出系统后是否删除了所有鉴权标记,是否可以使⽤后退键⽽不通过输⼊⼝令进⼊系统、系统⽹络安全的测试要考虑问题、测试采取的防护措施是否正确装配好,有关系统的补丁是否打上、模拟⾮授权攻击,看防护系统是否坚固、采⽤成熟的⽹络漏洞检查⼯具检查系统相关漏洞(即⽤最专业的⿊客攻击⼯具攻击试⼀下,现在最常⽤的是 NBSI 系列和 IPhacker IP )、采⽤各种⽊马检查⼯具检查系统⽊马情况、采⽤各种防外挂⼯具检查系统各组程序的外挂漏洞
数据库安全考虑问题:系统数据是否机密、系统数据的完整性、系统数据可管理性、系统数据的独⽴性、系统数据可备份和恢复能⼒(数据备份是否完整,可否恢复,恢复是否可以完整)
6、什么是测试⽤例?什么是测试脚本?两者关系?
测试⽤例:为实现测试⽽向被测试系统提供的输⼊数据、操作或各种环境设置以及期望结果的⼀个特定的合集
测试脚本:为了进⾏⾃动化测试⽽编写的脚本
关系:测试脚本的编写必须对应相应的测试⽤例
7、简述静态测试、动态测试、⿊盒测试、⽩盒测试、α测试、β测试
静态测试:不运⾏程序本⾝⽽寻程序代码中可能存在的错误或评估程序代码的过程
动态测试:实际运⾏被测程序,输⼊相应的测试实例,检查运⾏结果与预期结果的差异,判定执⾏结果是否符合要求,从⽽检测程序的正确性、可靠性、有效性、并分析系统运⾏效率和健壮性等性能
⿊盒测试:⼀般⽤来确认软件功能的正确性和可操作性,⽬的是检测软件的各个功能是否得以实现,把
北侧程序当作⼀个⿊盒,不考虑其内部结构,在知道该程序的输⼊和输出之间的关系或程序功能的情况下,依靠软件规格说明书来确定测试⽤例和推断测试结果的正确性
⽩盒测试:根据软件内部的逻辑结构分析来进⾏测试,是基于代码的测试,测试⼈员通过阅读程序代码或者通过使⽤开发⼯具中的单步调试来判断软件的质量,⼀般⿊盒测试由项⽬经理在程序员开发中来实现。
α测:由⼀个⽤户在开发环境下进⾏的测试,也可以是公司内部的⽤户在模拟实际操作环境下进⾏的受控测试,Alpha测试不能由程序员或测试员完成
β测试: 软件的多个⽤户在⼀个或多个⽤户的实际使⽤环境下进⾏的测试,开发者通常不在测试现场,Beta测试不能由程序员或测试员完成
8、软件测试分为⼏个阶段,各阶段的测试策略和要求是什么?
和开发过程相对应,测试过程会依次经历单元测试、集成测试、系统测试、验收测试四个主要阶段:
单元测试:单元测试是针对软件设计的最⼩单位––程序模块甚⾄代码段进⾏正确性检验的测试⼯作,通常由开发⼈员进⾏。
集成测试:集成测试是将模块按照设计要求组装起来进⾏测试,主要⽬的是发现与接⼝有关的问题。由于在产品提交到测试部门前,产品开发⼩组都要进⾏联合调试,因此在⼤部分企业中集成测试是由开发⼈员来完成的。
系统测试:系统测试是在集成测试通过后进⾏的,⽬的是充分运⾏系统,验证各⼦系统是否都能正常⼯作并完成设计的要求。它主要由测试部门进⾏,是测试部门最⼤最重要的⼀个测试,对产品的质量有重⼤的影响。
验收测试:验收测试以需求阶段的《需求规格说明书》为验收标准,测试时要求模拟实际⽤户的运⾏环境。对于实际项⽬可以和客户共同进⾏,对于产品来说就是最后⼀次的系统测试。测试内容为对功能模块的全⾯测试,尤其要进⾏⽂档测试。
单元测试测试策略:
⾃顶向下的单元测试策略:⽐孤⽴单元测试的成本⾼很多,不是单元测试的⼀个好的选择。
⾃底向上的单元测试策略:⽐较合理的单元测试策略,但测试周期较长。
孤⽴单元测试策略:最好的单元测试策略。
集成测试的测试策略:
⼤爆炸集成:适应于⼀个维护型项⽬或被测试系统较⼩
⾃顶向下集成:适应于产品控制结构⽐较清晰和稳定;⾼层接⼝变化较⼩;底层接⼝未定义或经常可能被修改;产⼝控制组件具有较⼤的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能⾏为。
⾃底向上集成:适应于底层接⼝⽐较稳定;⾼层接⼝变化⽐较频繁;底层组件较早被完成。
基于进度的集成
优点:具有较⾼的并⾏度;能够有效缩短项⽬的开发进度。
缺点:桩和驱动⼯作量较⼤;有些接⼝测试不充分;有些测试重复和浪费。
系统测试的测试策略:
数据和数据库完整性测试;功能测试;⽤户界⾯测试;性能评测;负载测试;强度测试;容量测试;安全性和访问控制测试;故障转移和恢复测试;配置测试;安装测试;
加密测试;可⽤性测试;版本验证测试;⽂档测试
9、测试⼈员在软件开发过程中的任务是什么?
1、尽可能早的出系统中的Bug;
2、避免软件开发过程中缺陷的出现;
3、衡量软件的品质,保证系统的质量;
4、关注⽤户的需求,并保证系统符合⽤户需求。
总的⽬标是:确保软件的质量。
10、在您以往的⼯作中,⼀条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交⾼质量的软件缺陷(Bug)记录?
⼀条Bug记录最基本应包含:
bug编号;
bug严重级别,优先级;
bug产⽣的模块;
⾸先要有bug摘要,阐述bug⼤体的内容;
bug对应的版本;
bug详细现象描述,包括⼀些截图、录像....等等;
bug出现时的测试环境,产⽣的条件即对应操作步骤;
⾼质量的Bug记录:
1) 通⽤UI要统⼀、准确
缺陷报告的UI要与测试的软件UI保持⼀致,便于查定位。
2) 尽量使⽤业界惯⽤的表达术语和表达⽅法
使⽤业界惯⽤的表达术语和表达⽅法,保证表达准确,体现专业化。
3) 每条缺陷报告只包括⼀个缺陷
每条缺陷报告只包括⼀个缺陷,可以使缺陷修正者迅速定位⼀个缺陷,集中精⼒每次只修正⼀个缺陷。校验者每次只校验⼀个缺陷是否已经正确修正。
4) 不可重现的缺陷也要报告
⾸先缺陷报告必须展⽰重现缺陷的能⼒。不可重现的缺陷要尽⼒重现,若尽⼒之后仍不能重现,仍然要报告此缺陷,但在报告中要注明⽆法再现,缺陷出现的频率。
5) 明确指明缺陷类型
根据缺陷的现象,总结判断缺陷的类型。例如,即功能缺陷、界⾯缺陷、数据缺陷,合理化建议这是最常见的缺陷或缺陷类型,其他形式的缺陷或缺陷也从属于其中某种形式。
6) 明确指明缺陷严重等级和优先等级
时刻明确严重等级和优先等级之间的差别。⾼严重问题可能不值得解决,⼩装饰性问题可能被当作⾼优先级。
7) 描述 (Description) ,简洁、准确,完整,揭⽰缺陷实质,记录缺陷或缺陷出现的位置
描述要准确反映缺陷的本质内容,简短明了。为了便于在软件缺陷管理数据库中寻制定的测试缺陷,包含缺陷发⽣时的⽤户界⾯(UI)是个良好的习惯。例如记录对话框的标题、菜单、按钮等控件的名称。
8) 短⾏之间使⽤⾃动数字序号,使⽤相同的字体、字号、⾏间距
短⾏之间使⽤⾃动数字序号,使⽤相同的字体、字号、⾏间距,可以保证各条记录格式⼀致,做到规范专业。
9) 每⼀个步骤尽量只记录⼀个操作
保证简洁、条理井然,容易重复操作步骤。
10) 确认步骤完整,准确,简短
保证快速准确的重复缺陷,“完整”即没有缺漏,“准确”即步骤正确,“简短”即没有多余的步骤。
11) 根据缺陷,可选择是否进⾏图象捕捉
为了直观的观察缺陷或缺陷现象,通常需要附加缺陷或缺陷出现的界⾯,以图⽚的形式作为附件附着在记录的“附件”部分。为了节省空间,⼜能真实反映缺陷或缺陷本质,可以捕捉缺陷或缺陷产⽣时的全屏幕,活动窗⼝和局部区域。为了迅速定位、修 附加必要的特殊⽂档和个⼈建议和注解
如果打开某个特殊的⽂档⽽产⽣的缺陷或缺陷,则必须附加该⽂档,从⽽可以迅速再现缺陷或缺陷。有时,为了使缺陷或缺陷修正者进⼀步明确缺陷或缺陷的表现,可以附加个⼈的修改建议或注解。
12) 检查拼写和语法缺陷
在提交每条缺陷或缺陷之前,检查拼写和语法,确保内容正确,正确的描述缺陷。
13) 尽量使⽤短语和短句,避免复杂句型句式
软件缺陷管理数据库的⽬的是便于定位缺陷,因此,要求客观的描述操作步骤,不需要修饰性的词汇和复杂的句型,增强可读性。
以上概括了报告测试缺陷的规范要求,随着软件的测试要求不同,测试者经过长期测试,积累了相应的测试经验,将会逐渐养成良好的专业习惯,不断补充新的规范书写要求。此外,经常阅读、学习其他测试⼯程师的测试缺陷报告,结合⾃⼰以前的14) 缺陷描述内容
缺陷描述的内容可以包含缺陷操作步骤,实际结果和期望结果。操作步骤可以⽅便开发⼈员再现缺陷进⾏修正,有些开发的再现缺陷能⼒很差,虽然他明⽩你所指的缺陷,但就是⽆法再现特别是对系统不熟悉的新加⼊开发⼈员,介绍步骤可以⽅便他 11、⿊盒测试和⽩盒测试是软件测试的两种基本⽅法,请分别说明各⾃的优点和缺点!
⿊盒测试
优点:⽐较简单,不需要了解程序内部的代码及实现;与软件的内部实现⽆关;从⽤户⾓度出发,能很容易的知道⽤户会⽤到哪些功能,会遇到哪些问题;基于软件开发⽂
档,所以也能知道软件实现了⽂档中的哪些功能;在做软件⾃动化测试时较为⽅便。
缺点:不可能覆盖所有的代码,覆盖率较低,⼤概只能达到总代码量的30%;⾃动化测试的复⽤性较低。
⽩盒测试
优点:帮助软件测试⼈员增⼤代码的覆盖率,提⾼代码的质量,发现代码中隐藏的问题。
缺点:程序运⾏会有很多不同的路径,不可能测试所有的运⾏路径;测试基于代码,只能测试开发⼈员做的对不对,⽽不能知道设计的正确与否,可能会漏掉⼀些功能需
求;系统庞⼤时,测试开销会⾮常⼤。
12、如何测试⼀个纸杯?
⽤户⽂档:使⽤⼿册是否对杯⼦的⽤法、限制、使⽤条件等有详细描述
功能度:⽤⽔杯装⽔看漏不漏;⽔能不能被喝到
安全性:杯⼦有没有毒或细菌
可靠性:杯⼦从不同⾼度落下的损坏程度
可移植性:杯⼦在不同的地⽅、温度等环境下是否都可以正常使⽤
兼容性:杯⼦是否能够容纳果汁、⽩⽔、酒精、汽油等
易⽤性:杯⼦是否烫⼿、是否有防滑措施、是否⽅便饮⽤
疲劳测试:将杯⼦盛上⽔(案例⼀)放24⼩时检查泄漏时间和情况;盛上汽油(案例⼆)放24⼩时检查泄漏时间和情况等
压⼒测试:⽤根针并在针上⾯不断加重量,看压强多⼤时会穿透
13、测试计划⼯作的⽬的是什么?测试计划⽂档的内容应该包括什么?其中哪些是最重要的?
软件测试计划是指导测试过程的纲领性⽂件:
领导能够根据测试计划进⾏宏观调控,进⾏相应资源配置等
应届生web前端面试题测试⼈员能够了解整个项⽬测试情况以及项⽬测试不同阶段的所要进⾏的⼯作等
便于其他⼈员了解测试⼈员的⼯作内容,进⾏有关配合⼯作
包含了产品概述、测试策略、测试⽅法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项⽬成员,尤其是测试管理
⼈员,可以明确测试任务和测试⽅法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。
测试计划编写6要素(5W1H):
why——为什么要进⾏这些测试;
what—测试哪些⽅⾯,不同阶段的⼯作内容;
when—测试不同阶段的起⽌时间;
where—相应⽂档,缺陷的存放位置,测试环境等;
who—项⽬有关⼈员组成,安排哪些测试⼈员进⾏测试;
how—如何去做,使⽤哪些测试⼯具以及测试⽅法进⾏测试
测试计划和测试详细规格、测试⽤例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的
范围、⽅法和资源配置,⽽测试详细规格、测试⽤例是完成测试任务的具
体战术。所以其中最重要的是测试测试策略和测试⽅法(最好是能先评审)。
14、详细的描述⼀个测试活动完整的过程
(以瀑布模型为例)
项⽬经理通过和客户的交流,完成需求⽂档,由开发⼈员和测试⼈员共同完成需求⽂档的评审,评审的内容包括:需求描述不清楚的地⽅和可能有明显冲突或者⽆法实现的功能
的地⽅。项⽬经理通过综合开发⼈员,测试⼈员以及客户的意见,完成项⽬计划。然后SQA进⼊项⽬,开始进⾏统计和跟踪
开发⼈员根据需求⽂档完成需求分析⽂档,测试⼈员进⾏评审,评审的主要内容包括是否有遗漏或双⽅理解不同的地⽅。测试⼈员完成测试计划⽂档,测试计划包括的内容上⾯
有描述。
测试⼈员根据修改好的需求分析⽂档开始写测试⽤例,同时开发⼈员完成概要设计⽂档,详细设计⽂档。此两份⽂档成为测试⼈员撰写测试⽤例的补充材料。
测试⽤例完成后,测试和开发需要进⾏评审。
测试⼈员搭建环境
开发⼈员提交第⼀个版本,可能存在未完成功能,需要说明。测试⼈员进⾏测试,发现BUG后提交给BugZilla。
开发提交第⼆个版本,包括Bug Fix以及增加了部分功能,测试⼈员进⾏测试。
重复上⾯的⼯作,⼀般是3-4个版本后BUG数量减少,达到出货的要求。
如果有客户反馈的问题,需要测试⼈员协助重现并重新测试。
15、BUG管理⼯具的跟踪过程(⽤BugZilla为例⼦)
测试⼈员发现了BUG,提交到Bugzilla中,状态为new,BUG的接受者为开发接⼝⼈员
开发接⼝将BUG分配给相关的模块的开发⼈员,状态修改为已分配,开发⼈员和测试确认BUG,如果是本⼈的BUG,则设置为接收;如果是别的开发⼈员的问题,则转发出
去,由下⼀个开发⼈员来进⾏此⾏为;如果认为不是问题,则需要⼤家讨论并确认后,拒绝这个BUG,
然后测试⼈员关闭此问题。
如果开发⼈员接受了BUG,并修改好以后,将BUG状态修改为已修复,并告知测试在哪个版本中可以测试。
测试⼈员在新版本中测试,如果发现问题依然存在,则拒绝验证;如果已经修复,则关闭BUG。
16、软件产品质量特性是什么?
功能性:适应性、准确性、互操作性、依从性、安全性。
可靠性:成熟性、容错性、易恢复性。
可使⽤性:易理解性、易学习性、易操作性。
效率:时间特性、资源特性。
可维护性:易分析性、易变更性、稳定性、易测试性。
可移植性:适应性、易安装性、遵循性、易替换性
17、⼀台客户端有三百个客户与三百个客户端有三百个客户对服务器施压,有什么区别?
300个⽤户在⼀个客户端上,会占⽤客户机更多的资源,⽽影响测试的结果。线程之间可能发⽣⼲扰,⽽产⽣⼀些异常。
300个⽤户在⼀个客户端上,需要更⼤的带宽。
IP地址的问题,可能需要使⽤IP Spoof来绕过服务器对于单⼀IP地址最⼤连接数的限制。
所有⽤户在⼀个客户端上,不必考虑分布式管理的问题;⽽⽤户分布在不同的客户端上,需要考虑使⽤控制器来整体调配不同客户机上的⽤户。同时,还需要给予相应的权限配置和防⽕墙设置。
18、试述软件的概念和特点?软件复⽤的含义?构件包括哪些?
软件是计算机系统中与硬件相互依存的另⼀部分,与计算机系统操作有关的计算机程序、规程、规则,以及可能有的⽂件、⽂档及数据。
软件复⽤(SoftWare Reuse)是将已有软件的各种有关知识⽤于建⽴新的软件,以缩减软件开发和维护的花费。软件复⽤是提⾼软件⽣产⼒和质量的⼀种重要技术。早期的软件复⽤主要是代码级复⽤,被复⽤的知识专指程序,后来扩⼤到包括领域知识、开发经验、设计决定、体系结构、需求、设计、代码和⽂档等⼀切有关⽅⾯。
可以被复⽤的软件成分⼀般称作可复⽤构件
6、软件⽣存周期及其模型是什么?
软件⽣存周期(Software life cycle)⼜称为软件⽣命周期,⽣存期。是指从形成开发软件概念起,所开发的软件使⽤以后,直到失去使⽤价值消亡为⽌的整个过程。⼀般来说,整个⽣存周期包括,计划、开发、运⾏(维护)三个时期,每个时期⼜划分为若⼲个阶段,每个阶段有明确的任务。
周期模型(典型的⼏种):
瀑布模型
快速原型模型:快速原型模型允许在阶段对软件的需求进⾏初步⽽⾮完全的分析和定义,快速设计开发出的原型,该原型向⽤户展⽰待开发软件的全部或部分功能和性能;
⽤户对该原型进⾏测试评定,给出具体改进意见以丰富细化;开发⼈员据此对软件进⾏修改完善,直⾄⽤户满意认可之后,进⾏软件的完整实现及测试、维护。
迭代模型:迭代包括产⽣产品发布(稳定、可执⾏的产品版本)的全部开发活动和要使⽤该发布必需的所有其他外围元素。在某种程度上,开发迭代是⼀次完整地经过所有⼯作流程的过程:需求分析、设计、实施和测试⼯作流程。实质上,它类似⼩型的瀑布式项⽬。RUP认为,所有的阶段都可以细分为迭代。每⼀次的迭代都会产⽣⼀个可以发布的产品,这个产品是最终产品的⼀个⼦集。
⽣命周期阶段:
软件计划与可⾏性分析
需求分析
软件设计
编码
软件测试
运⾏与维护
19、什么是软件测试?⽬的和原则?
在规定的条件下对程序进⾏操作,以发现程序错误,衡量软件质量,并对其是否能满⾜设计要求进⾏评估的过程
软件测试的⽬的:
测试是程序的执⾏过程,⽬的在于发现错误
⼀个成功的测试⽤例在于发现⾄今未发现的错误
⼀个成功测试是发现了⾄今未发现的错误的测试
确保产品完成了她所承受或公布的功能,并且⽤户可以访问到的功能都有明确的书⾯说明
确保产品满⾜性能和效率的要求
确保产品是健壮的和适应⽤户环境的
软件测试的原则:
测试⽤例中⼀个必须部分是对预期输出或接过进⾏定义
程序员应避免测试⾃⼰编写的程序
编写软件的组织不应当测试⾃⼰编写的软件
应当彻底检查每个测试的执⾏结果
测试⽤例的编写不仅应当根据有效和预料到的输⼊情况,⽽且也应当根据⽆效和未预料到的输⼊情况
检擦程序是否“未做其应该做的”仅是测试的⼀半,测试的另⼀半是检查程序是否“做了其不应该做的”
应避免测试⽤例⽤后即弃,除⾮软件本⾝就是个⼀次性的软件
计划测试⼯作时不应默许假定不会发现错误
程序某部分存在更多错误的可能性,与该部分已经发现错误的数量成正⽐
软件测试是⼀项极富创造性,极具智⼒的挑战性的⼯作
20、软件质量保证体系是什么国家标准中与质量保证管理相关的⼏个标准是什么?他们的编号和全称是什么?
SQA由⼀套软件⼯程过程和⽅法组成,以保证(软件的)质量。SQA贯穿整个软件开发过程,(它)应包括需求⽂档评审、代码控制、代码评审、变更管理、配置管理、版本管理和软件测试。
保证(SQA-Software Quality Assurance)是建⽴⼀套有计划,有系统的⽅法,来向管理层保证拟定出的标准、步骤、实践和⽅法能够正确地被所有项⽬所采⽤。软件质量保证的⽬的是使对于管理⼈员来说是可见的。它通过对软件产品和活动进⾏评审和审计来验证软件是合乎标准的。软件质量保证组在项⽬开始时就⼀起参与建⽴计划、标准和过程。这些将使软件项⽬满⾜机构⽅针的要求。
27、您认为在测试⼈员同开发⼈员的沟通过程中,如何提⾼沟通的效率和改善沟通的效果?维持测试⼈员同开发团队中其他成员良好的⼈际关系的关键是什么?
尽量⾯对⾯的沟通,其次是能直接通过电话沟通,如果只能通过Email等⾮及时沟通⼯具的话,强调必须对特性的理解深刻以及能表达清楚。
运⽤⼀些测试管理⼯具如TestDirector进⾏管理也是较有效的⽅法,同时要注意在TestDirector中对BUG有准确的描述。
在团队中建⽴测试⼈员与开发⼈员良好沟通中注意以下⼏点:
⼀真诚、⼆是团队精神、三是在专业上有共同语⾔、四是要对事不对⼈,⼯作⾄上
当然也可以通过直接指出⼀些⼩问题,⽽不是进⼊BUG Tracking System来增加对⽅的好感。
28、你对测试最⼤的兴趣在哪⾥?为什么?
回答这个⾯试题,没有固定统⼀的答案,但可能是许多企业都会问到的。提供以下答案供考:
最⼤的兴趣,感觉这是⼀个有挑战性的⼯作;
测试是⼀个经验⾏业,⼯作越久越能感觉到做好测试的难度和乐趣
通过⾃⼰的⼯作,能使软件产品越来越完善,从中体会到乐趣
回答此类问题注意以下⼏个⽅⾯:
尽可能的切合招聘企业的技术路线来表达你的兴趣,例如该企业是数据库应⽤的企业,那么表⽰你的兴趣在数据库的测试,并且希望通过测试提升⾃⼰的数据库掌握能⼒。
表明你做测试的⽬的是为了提升能⼒,也是为了更好的做好测试;提升能⼒不是为了以后转开发或其他的,除⾮⽤⼈企业有这样的安排。
不要过多的表达你的兴趣在招聘企业的范畴这外。⽐如招聘企业是做财务软件的,可是你表现出来的是对游戏软件的兴趣;或招聘是做JAVA开发的,⽽你的兴趣是在C类语⾔程序的开发。
29、你⾃认为测试的优势在哪⾥?
该⾯试也没有固定不变的答案,但可参考以下⼏点,并结合⾃⾝特点:
有韧性、有耐⼼、做事有条理性、喜欢⾯对挑战、有信⼼做好每⼀件事情、较强的沟通能⼒、从以前的经理处都得到了很好的评价表明我做的很好
33、简述你在以前的⼯作中做过哪些事情,⽐较熟悉什么。参考答案如下。
我过去的主要⼯作是系统测试和⾃动化测试。在系统测试中,主要是对BOSS系统的业务逻辑功能,以及软交换系统的Class 5特性进⾏测试。性能测试中,主要是进⾏的压⼒测试,在各个不同数量请求的情况下,获取系统响应时间以及系统资源消耗情况。⾃动化测试主要是通过⾃⼰写脚本以及⼀些第三⽅⼯具的结合来测试软交换的特性测试。
在测试中,我感觉对⽤户需求的完全准确的理解⾮常重要。另外,就是对BUG的管理,要以需求为依据,并不是所有BUG均需要修改。
测试⼯作需要耐⼼和细致,因为在新版本中,虽然多数原来发现的BUG得到了修复,但原来正确的功能也可能变得不正确。因此要注重迭代测试和回归测试。
34、在C/C++中static有什么⽤途?(请⾄少说明两种)
1)在函数体,⼀个被声明为静态的变量在这⼀函数被调⽤过程中维持其值不变。
2) 在模块内(但在函数体外),⼀个被声明为静态的变量可以被模块内所⽤函数访问,但不能被模块外其它函数访问。它是⼀个本地的全局变量。
3) 在模块内,⼀个被声明为静态的函数只可被这⼀模块内的其它函数调⽤。那就是,这个函数被限制在声明它的模块的本地范围内使⽤
35、引⽤与指针有什么区别?
1) 引⽤必须被初始化,指针不必。
2) 引⽤初始化以后不能被改变,指针可以改变所指的对象。
3) 不存在指向空值的引⽤,但是存在指向空值的指针。
36、Internet采⽤哪种⽹络协议?该协议的主要层次结构?Internet物理地址和IP地址转换采⽤什么协议?
TCP/IP协议主要层次结构为:应⽤层/传输层/⽹络层/数链路层。
ARP (Address Resolution Protocol)(地据址解析协议)
37、说说你对集成测试中⾃顶向下集成和⾃底向上集成两个策略的理解,要谈出它们各⾃的优缺点和主要适应于哪种类型测试;
⾃顶向下集成
优点:较早地验证了主要控制和判断点;按深度优先可以⾸先实现和验证⼀个完整的软件功能;功能较早证实,带来信⼼;只需⼀个驱动,减少驱动器开发的费⽤;⽀持故障隔离。
缺点:柱的开发量⼤;底层验证被推迟;底层组件测试不充分。
适应于产品控制结构⽐较清晰和稳定;⾼层接⼝变化较⼩;底层接⼝未定义或经常可能被修改;产⼝控制组件具有较⼤的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能⾏为。
2、⾃底向上集成
优点:对底层组件⾏为较早验证;最初可以并⾏集成,⽐⾃顶向下效率⾼;减少了桩的⼯作量;⽀持故障隔离。
缺点:驱动的开发⼯作量⼤;对⾼层的验证被推迟,设计上的错误不能被及时发现。
适应于底层接⼝⽐较稳定;⾼层接⼝变化⽐较频繁;底层组件较早被完成。
38、软件验收测试包括正式验收测试、alpha测试、beta测试三种测试。
39、系统测试的策略有很多种的,有性能测试、负载测试、强度测试、易⽤性测试、安全测试、配置测试、安装测试、⽂档测试、故障恢复测试、⽤户界⾯测试、恢复测试、分布测试、可⽤性测试。
40、设计系统测试计划需要参考的项⽬⽂档有软件测试计划、软件需求⼯件、和迭代计划
41.通过画因果图来写测试⽤例的步骤为___、___、___、___及把因果图转换为状态图共五个步骤。利⽤因果图⽣成测试⽤例的基本步骤是:
§ 分析软件规格说明描述中,哪些是原因(即输⼊条件或输⼊条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予⼀个标识符。
§ 分析软件规格说明描述中的语义,出原因与结果之间,原因与原因之间对应的是什么关系? 根据这些关系,画出因果图。
§ 由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上⽤⼀些记号标明约束或限制条件。 § 把因果图转换成判定表。
§ 把判定表的每⼀列拿出来作为依据,设计测试⽤例。
43、请说出这些测试最好由那些⼈员完成,测试的是什么?
代码、函数级测试⼀般由⽩盒测试⼈员完成,他们针对每段代码或函数进⾏正确性检验,检查其是否正确的实现了规定的功能。
模块、组件级测试主要依据是程序结构设计测试模块间的集成和调⽤关系,⼀般由测试⼈员完成。
系统测试在于模块测试与单元测试的基础上进⾏测试。了解系统功能与性能,根据测试⽤例进⾏全⾯的测试。
44、设计测试⽤例时应该考虑哪些⽅⾯,即不同的测试⽤例针对那些⽅⾯进⾏测试?
设计测试⽤例时需要注意的是,除了对整体流程及功能注意外,还要注意强度测试、性能测试、压⼒测试、边界值测试、稳定性测试、安全性测试等多⽅⾯。(测试⽤例需要考
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论