下面是小编精心整理的软件测试工程师笔试题及答案(共含12篇),仅供参考,大家一起来看看吧。同时,但愿您也能像本文投稿人“错彩缕金”一样,积极向本站投稿分享好文章。
软件测试工程师笔试题及答案
一、基础理论
1、软件测试的结束标准是什么?
2、一套完整的测试应该由哪些阶段组成?分别阐述一下各个阶段,
3、什么是缺陷报告?
4、缺陷报告的作用
5、缺陷报告的要点
6、软件测试缺陷报告的“5C”原则
7、缺陷的二八定理
8、软件测试的流程
9、测试计划的目的是什么?测试计划的内容都包括什么?其中哪些是最重要的?
10、请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。
11、Alpha 测试与beta 测试的区别
答案:
一、基础理论
1、测试计划中所有规定的测试内容和回归测试都已经运行完成
或根据上级主管对测试结果的意见,就可以结束本次测试
2、计划阶段、设计阶段、白盒单元、白盒集成、黑盒单元、黑盒集成、系统测试、回归测试、验收测试
一套完整的测试应该由五个阶段组成:
1)测试计划首先,根据用户需求报告中关于功能要求和性能指标的规格说明书,定义相应的测试需求报告,即制订黑盒测试的最高标准。以后所有的测试工作都将围绕着测试需求来进行,符合测试需求的应用程序即是合格的,反之即是不合格的;同时,还要适当选择测试内容,合理安排测试人员、测试时间及测试资源等。
2)测试设计将测试计划阶段制订的测试需求分解、细化为若干个可执行的测试过程,并为每个测试过程选择适当的测试用例(测试用例选择的好坏将直接影响测试结果的有效性)。
3)测试开发建立可重复使用的自动测试过程。
4)测试执行执行测试开发阶段建立的自动测试过程,并对所发现的缺陷进行跟踪管理,测试执行一般由单元测试、组合测试、集成测试、系统联调及回归测试等步骤组成,测试人员应本着科学负责的态度,一步一个脚印地进行测试。
5)测试评估结合量化的测试覆盖域及缺陷跟踪报告,对于应用软件的质量和开发团队的工作进度及工作效率进行综合评价。
3、缺陷报告是描述软件缺陷现象和重现步骤地集合。软件缺陷报告Software Bug Report (SBR)或软件问题报告Software Problem Report (SPR)
4、缺陷报告是软件测试人员的工作成果之一,体现软件测试的价值
缺陷报告可以把软件存在的缺陷准确的描述出来,便于开发人员修正
缺陷报告可以反映项目/产品当前的质量状态,便于项目整体进度和质量控制
软件测试缺陷报告是软件测试的输出成果之一,可以衡量测试人员的工作能力
5、标题(Title)
简洁、准确、完整、反映缺陷本质、方便查询
前缀 + 标题正文,标题正文采用结果和动作,或者现象和位置的方式表达
步骤(Steps)
可复现、完整、简洁、准确
按数字编号
实际结果(Actual results)
准确、详细描述软件的现象和特征
期望结果(Expected results)
准确、丰富、有理有据
平台(Platforms)
准确
截图(Screenshots)
准确反映缺陷特征
注释(Notes)
关于缺陷的辅助说明
6、内容准确(Correct):
每个组成部分的描述准确,不会引起误解
步骤简洁(Concise):
只包含必不可少的信息,不包括任何多余的`内容
内容清晰(Clear):
每个组成部分的描述清晰,易于理解
结构完整(Complete):
包含复现该缺陷的完整步骤和其他本质信息
风格一致(Consistent):
按照一致的格式书写全部缺陷报告
7、在分析、设计、实现阶段的复审和测试工作能够发现和避免80%的缺陷,而系统测试又能找出其余缺陷中的80%,最后的4%的缺陷可能只有在用户大范围、长时间使用后才会暴露出来,
8、制订测试计划、设计测试用例、实施测试、提交缺陷报告、测试总结 。
9、测试计划的目的:编写软件测试计划的目的是指导测试组成员进行工作和让测试组以外的项目成员了解测试工作的。
测试计划的内容:测试目的和测试项目简介、测试参考文档和测试提交文档、术语和定义、测试策略、确定测试内容、资源、测试进度、测试员的职责与任务分配、项目通过或失败的标准、暂停和重新启动测试的标准、风险和问题等。
最重要的:测试策略、确定测试内容、资源、测试进度、测试员的职责与任务分配、项目通过或失败的标准
10、黑盒测试:把测试对象当成一个黑盒子,测试人员完全不考虑逻辑结构和内部特性,只依据程式的需求说明书来检查程式的功能是否满足它的功能说明。
白盒测试:把测试对象当成一个透明的盒子,允许测试人员利用程序内部逻辑结构及相关信息,设计或选择测试用例,对程式所有逻辑路径进行测试。
单元测试:白盒测试的一种,对软件设计中的单元模块进行测试。
集成测试:在单元测试的基础上,对单元模块之间的连接和组装w进行测试。
系统测试:在所有都考虑的情况下,对系统进行测试
一、判断题 (每题1分,共10分)10题
1、软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。( √ )
2、白盒测试侧重于程序结构,黑盒测试侧重于功能,其中白盒测试需要程序员参与,黑盒测试不需要 (×)
3、单元测试通常应该先进行“人工走查”,再以白盒法为主,辅以黑盒法进行动态测试。( √ )
4、集成测试也叫做组装测试,通常在编码完成的基础上,将所有的程序模块进行有序的、递增的测试( × )
5、系统测试应尽可能在实际运行使用环境下进行( √ )
6、详细设计的目的是为软件结构图中的每一个模块确定使用的算法和块内数据结构,并用某种选定的表达工具给出清晰的描述。 ? ( √ )
7、测试人员在测试过程中发现一处问题,如果问题影响不大,而自己又可以修改,应立即将此问题正确修改,以加快、提高开发的进程。( × )
8、程序、需求规格说明、设计规格说明都是软件测试的对象( √ )
9、第三方测试是在开发方与用户方的测试基础上进行的验证测试 ( × )
10、数据流图和数据字典共同构成系统的逻辑模型。( √ )
二、单选题 (每题2分,共40分)20题
1、软件测试的目的正确的是 ( D )
①测试是为了发现程序中的错误而执行程序的过程;
②好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;
③成功的测试是发现了至今为止尚未发现的错误的测试
④测试并不仅仅是为了找出错误.通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进;
A、① B、①②③ ? C、②③④ ? D、①②③④
2、软件测试的对象包括(? B? )
A.目标程序和相关文档 ? B.源程序、目标程序、数据及相关文档
C.目标程序、操作系统和平台软件 D.源程序和目标程序
3、从是否关心软件内部结构和具体实现的角度划分。( B? )
A、静态测试、动态测试
B、黑盒测试、白盒测试、灰盒测试
C、单元测试、集成测试、确认测试、系统测试、验收测试
D、以上都不对
4、关于软件测试模型,描述正确的是(? C )
A、V模型测试的对象就是程序本身,测试与开发可以同一阶段进行
B、W模型测试的对象是程序,需求、设计等,可以支持迭代的开发模型
C、H模型软件测试过程活动完全独立,贯穿产品整个生命周期,与其他流程并发地进行。
D、X模型是事先计划再进行测试。
5、软件测试按实施组织分,测试应该包括以下的( ?A ?)
① 开发方测试 ?②用户方测试 ?③第三方测试 ?④ 验收测试 ?⑤确认测试
A.①②③ B.③④⑤ ? C.①②④ D.①②③④⑤
6、制定测试计划的步骤:(D)
A、确定项目管理机制 预计测试工作量? 测试计划评审
B、确定测试范围? 确定测试策略? 确定测试标准、预计测试工作量
C、确定测试构架 确定项目管理机制 预计测试工作量? 测试计划评审
D、确定测试范围? 确定测试策略? 确定测试标准? 确定测试构架 确定项目管理机制 预计测试工作量? 测试计划评审
7、为保证测试活动的可控性,必须在软件测试过程中进行软件测试配置管理,一般来说,软件测试配置管理中最基本的活动包括(? A? )
A.配置项标识、配置项控制、配置状态报告、配置审计
B.配置基线确立、配置项控制、配置报告、配置审计
C.配置项标识、配置项变更、配置审计、配置跟踪
D.配置项标识、配置项控制、配置状态报告、配置跟踪
8、某次程序调试没有出现预计的结果,下列( B)不可能是导致出错的原因。
A、变量没有初始化 B、编写的语句书写格式不规范
C、循环控制出错 D、代码输入有误
9、下列关于程序效率的描述错误的是(B? )。
A、提高程序的执行速度可以提高程序的效率
B、降低程序占用的存储空间可以提高程序的效率
C、源程序的效率与详细设计阶段确定的算法的效率无关
D、好的程序设计可以提高效率
10、逻辑路径覆盖法是白盒测试用例的重要设计方法,其中语句覆盖法是较为常用的方法,针对下面的语句段,采用语句覆盖法完成测试用例设计,测试用例见下表,对表中的空缺项(True或者False),正确的选择是( A? )。
语句段:
if (A && (B||C)) x=l;
else x=O;
用例表:
用例1
用例2
A
TRUE
FALSE
B
①
FALSE
C
TRUE
②
A &&(B||C)
③
FALSE
A.①TRUE ②FALSE ③TRUE ? B.①TRUE ②FALSE ③FALSE
C.①FALSE ②FALSE ③TRUE ? D.①TRUE ②TRUE ③FALSE
11、程序设计语言中( D ? )。
A. while 循环语句的执行效率比 do-while 循环语句的执行效率高
B. while 循环语句的循环体执行次数比循环条件的判断次数多 1,而do-while 语句的循环体执行次数比循环条件的判断次数少 1
C. while 语句的循环体执行次数比循环条件的判断次数少 1,而 do-while语句的循环体执行次数比循环条件的判断次数多 1
D. while 语句的循环体执行次数比循环条件的判断次数少 1,而 do-while语句的循环体执行次数等于循环条件的判断次数
12、DB, DBMS 和 DBS 三者间的关系是(? B )
A . DB 包括 DBMS 和 DBS ? B . DBS 包括 DB 和 DBMS
C . DBMS 包括 DBS 和 DB ?D . DBS 与 DB 、DBMS 无关
13.在TCP/IP模型中,应用层包含了所有的高层协议,在下列的一些应用协议中,B是能够实现本地与远程主机之间的文件传输工作。
A telnet B FTP C SNMP D NFS
14、一个局域网中某台主机的IP 地址为176.68.160.12,使用22 位作为网络地址,那么该局域网的子网掩码和,最多可以连接的主机数分别为 (? B )
A、255.255.251.0 1021
B、255.255.252.0 1022
C、255.255.253.0 1023
D、255.255.254.0 1024
15、Linux文件系统的文件都按其作用分门别类地放在相关的目录中,对于外部设备文件,一般应将其放在(? C? )目录中。
A /bin B /etc C /dev D /lib
16、某公司采用的软件开发过程通过了CMM2认证,表明该公司 (? C? ) 。
A. 开发项目成效不稳定,管理混乱
B. 对软件过程和产品质量建立了定量的质量目标
C. 建立了基本的项目级管理制度和规程,可对项目的成本、进度进行跟踪和控制
D. 可集中精力采用新技术新方法,优化软件过程
17、质量管理人员在安排时间进度时,为了能够从全局出发、抓住关键路径、统筹安排、集中力量,从而达到按时或提前完成计划的目标,可以使用( A? )。
A.活动网络图 B.因果图
C.优先矩阵图 D.检查表
18、某公司最近承接了一个大型信息系统项目,项目整体压力较大,对这个项目中的变更,可以使用(? B )等方式提高效率。
①分优先级处理②规范处理③整批处理④分批处理
A.①②③ ? ? B.①②④ ? ? C.②③④ ? ? D.①③④
19、下面哪项工作是制订进度计划的基础:( A? ?)
A、工作分解结构(WBS)
B、网络图
C、甘特图(GANTT)
D、资源平衡(RESOURCE LEVELLING)
20、下面哪一方法通常不会被用来缩短进度? ( D ?)
A. 赶工
B. 变更范围
C. 以并行方式而不是序列方式来实施进行活动
D. 资源平衡
三、填空题? (每空1分,共10分)共10空
1、黑盒测试是功能测试,用黑盒技术设计测试用例有4种方法:(等价类划分)(边界值分析 )( 错误推测 )( 因果图)。
2、实际的逻辑覆盖测试中,一般以条件组合覆盖为主设计测试用例,然后再补充部分用例,以达到 (路径 )覆盖测试标准。
3、集成测试的方法有两种:渐增式测试和(非渐增式测试 )。
4、软件测试过程中需要3类信息:软件配置、(测试配置) 和 ( 测试工具)? 。
5、SCM是一组管理整个软件生存期各阶段中( 变更? )的活动。
6、基线的作用是把各阶段的开发工作划分得更加明确,便于检查与确认阶段成果。因此,基线可以作为项目的一个 ( 检查点)。
四、简答题 (每题5分、共25分)
1、高级测试工程师日常工作职责,及应该遵循规范(5分)
2、请画出软件测试过程V模型,并写出采用V模型存在的问题(5分)
答:1)V模型图
2) 采用V模型存在问题:
①.测试是开发之后的一个阶段。
②.测试的对象就是程序本身。
③ 实际应用中容易导致需求阶段的错误一直到最后系统测试阶段才被发现。
④ 整个软件产品的过程质量保证完全依赖于开发人员的能力和对工作的责任心,而且上一步的结果必须是充分和正确的,如果任何一个环节出了问题,则必将严重的影响整个工程的质量和预期进度。
3、软件测试的原则,这些原则能更好的理解和指导我们做测试工作,请把你所知道的原则详细列出来。(5分)
答:1、测试可以显示缺陷的存在,但不能证明系统不存在缺陷。
2、穷尽测试是不可能的
3、测试的尽早介入(越晚发现一个bug,修改bug成本成倍增加)。
4、第三方或独立的测试团队。
5、测试的标准是用户的需求
6、尽早定义产品的质量标准(测试用例应包括明确的输入和输出,做到有的放矢)
7、用例全面(有效数据、无效数据)
8、及时更新测试用例,减少测试人员形成定势思维(杀虫剂悖论:杀虫剂用得多了,害虫就有免疫力,杀虫剂就发挥不了效力)
9、严格执行测试计划,排除测试的随意性。
10、充分注意测试中的群集现象,80%的错误集中在20%的程序模块中。
11、应当对每一个测试结果做全面检查。
12、妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。
13、测试贯穿于整个生命周期
4、CMM由低至高共分为5个级别是什么?并简述每级基本特征。(5分)
答:CMM由低至高共分为5个级别:初始级、可重复级、定义级、管理级和优化级
CMM五级基本特征:
CMM一级,初始级:个别的,混乱的过程,几乎没有定义过程的规则或步骤;
CMM二级,可重复级:已建立的必要过程准则,但主要过程依赖于个人经验;
CMM三级,定义级:量化的已定义且制度化的过程;
CMM四级,管理级:量化的已质量的过程;
CMM五级,优化级:达到一个持续改善过程。
5、ISO 9001管理八原则是什么?并进行简要描述?(5分)
答:1.以顾客为关注焦点:组织依赖于顾客,因此组织应该理解顾客当前的和未来的需求,从而满足顾客要求并超越其期望。
2. 领导作用:领导者将本组织的宗旨、方向、和内部环境统一起来,并创造使员工能够充分参与实现组织目标的环境。80%质量问题与管理有关,20%与员工有关。
3. 全员参与:各级员工是组织的生存和发展之本,只有他们的充分参与,才能使其才能给组织带来最佳效益。岗位职责包括了全员(从总经理到基层员工)。
4. 过程方法:将相关的资源和活动作为过程进行管理,可以更高效地取得预期结果。
5. 管理的系统方法: ISO9000针对设定的目标,识别、理解并管理一个由相互关联的过程所组成的体系,有助于提高组织的有效性和效率。木水桶的围板原理。
6.持续改进:是组织的一个永恒发展的目标。PDCA循环。
7. 基于事实的决策方法:针对数据和信息的逻辑分析或判断是有效决策的基础。用数据和事实说话。
8. 互利的供方关系:通过互利的关系,增强组织及其供方创造价值的能力。麦当劳管理方式。
五、分析题(每题15分、共1题、共15分)
有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。
1)?分析这一段说明,列出原因和结果
原因:
1.售货机有零钱找
2.投入1元硬币
3.投入5角硬币
4.押下橙汁按钮
5.押下啤酒按钮
结果:
21.售货机〖零钱找完〗灯亮
22.退还1元硬币
23.退还5角硬币
24.送出橙汁饮料
25.送出啤酒饮料
2)画出因果图,如图所示。所有原因结点列在左边,所有结果结点列在右边。建立中间结点,表示处理的中间状态。中间结点:
11. 投入1元硬币且押下饮料按钮
12. 押下〖橙汁〗或〖啤酒〗的按钮
13. 应当找5角零钱并且售货机有零钱找
14. 钱已付清
软件测试工程师(SoftwareTesting Engineer)指理解产品的功能要求,并对其进行测试,检查软件有没有错误,测试软件是否具有稳定,写出相应的测试规范和测试用例的专门工作人员。
请根据您以往的学习和工作经历,结合您的个人经验回答以下问题。您可以尽可能详细和完整的表达出自己的思想,如果书写空间不够,您可以将答案写在题目所在页的背面。如果需要稿纸请同接待人员联系。
01.为什么要在一个团队中开展软件测试工作?
02.您是否了解以往所工作的企业的软件测试过程?如果了解,请试述在这个过程中都有哪些工作要做?分别由哪些不同的角色来完成这些工作?
03.您是否了解以往所工作的企业的软件开发过程?如果了解,请试述一个完整的开发过程需要完成哪些工作?分别由哪些不同的角色来完成这些工作?(对于软件测试部分,可以简述)
04.您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作?
05.您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。
06.您以往的工作中是否曾开展过测试用例的评审工作?如果有,请描述测试用例评审的过程和评审的内容。
07.您在从事性能测试工作时,是否使用过一些测试工具?如果有,请试述该工具的工作原理,并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的。
08.您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?
09.您以往所从事的软件测试工作中,是否使用了一些工具来进行软件缺陷(Bug)的管理?如果有,请结合该工具描述软件缺陷(Bug)跟踪管理的流程。
10.您是否熟悉一些主流的软件工程方法论和思想,如RUP、CMM、CMMI、XP、PSP、TSP。如果熟悉,您是否可以谈一下对这些方法论和思想的认识?
11.您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员良好的人际关系的关键是什么?
12.在即将完成这次笔试前,您是否愿意谈一些自己在以往的学习和工作中获得的工作经验和心得体会?(可以包括软件测试、过程改进、软件开发或者与此无关的其他方面)
01.为什么要在一个团队中开展软件测试工作?
02.您是否了解以往所工作的企业的软件测试过程?如果了解,请试述在这个过程中都有哪些工作要做?分别由哪些不同的角色来完成这些工作?
03.您是否了解以往所工作的企业的软件开发过程?如果了解,请试述一个完整的开发过程需要完成哪些工作?分别由哪些不同的角色来完成这些工作?(对于软件测试部分,可以简述)
04.您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作?
05.您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。
06.您以往的工作中是否曾开展过测试用例的评审工作?如果有,请描述测试用例评审的过程和评审的内容。
07.您在从事性能测试工作时,是否使用过一些测试工具?如果有,请试述该工具的工作原理,并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的。
08.您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?
09.您以往所从事的软件测试工作中,是否使用了一些工具来进行软件缺陷(Bug)的管理?如果有,请结合该工具描述软件缺陷(Bug)跟踪管理的流程。
10.您是否熟悉一些主流的软件工程方法论和思想,如RUP、CMM、CMMI、XP、PSP、TSP。如果熟悉,您是否可以谈一下对这些方法论和思想的认识?
11.您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员良好的人际关系的关键是什么?
12.在即将完成这次笔试前,您是否愿意谈一些自己在以往的学习和工作中获得的工作经验和心得体会?(可以包括软件测试、过程改进、软件开发或者与此无关的其他方面)
,
2、模块、组件级测试。3、系统测试,请说出这些测试最好有那些人员完成,测试的是什么?
14.设计厕所用例时考虑哪些方面,既不同的测试用例针对哪些方面进行测试?
15.如何测试程序向打印机输送打印内容,应该选用哪些破坏性的测试用例?
16.在window下保存一个文本文件时会弹出一个对话框,如何为文件名简历测试用例,等价类应该怎么划分?
17.在sqlserver查询分析器中选择想要使用过的数据库,有哪两种方法?
18.请指出下列句子在select语句中所起的作用,select into from where group by having order by。
19.假设有一个文本框要求输入10个支付的邮政编码,对以该文本框应该怎么划分等价类?
20.有一个软件产品,功能是输入3个边代表三角形的三个边,看是否判断出是什么三角形,请设计测试用例标识处该用例的测试目的?
一、判断题 (每题2分,20)
1、软件测试就是为了验证软件功能实现的是否正确,是否完成既定目标的活动,所以软件测试在软件工程的后期才开始具体的工作。 (初级) ( × )
2、发现错误多的模块,残留在模块中的错误也多。( √ ) (初级)
3、测试人员在测试过程中发现一处问题,如果问题影响不大,而自己又可以修改,应立即将此问题正确修改,以加快、提高开发的进程。( × )(初级)
4、单元测试通常应该先进行“人工走查”,再以白盒法为主,辅以黑盒法进行动态测试。
( √ )(中级)
5、功能测试是系统测试的主要内容,检查系统的功能、性能是否与需求规格说明相同。( √ )(中级)
6、软件质量管理即QM由QA和QC构成,软件测试属于QC的核心工作内容。(√)(高级)
7、软件测试只能发现错误,但不能保证测试后的软件没有错误。(√)
8、软件就是程序。(X)
9、测试只要做到语句覆盖和分支覆盖,就可以发现程序中的所有错误。(X)
10、I18N测试是指对产品做出具有国际性的规划,而L10N测试则是指对软件做出符合本地需求更改工作。(√)【高级】
二、选择题 (每题2分 20 )
1、进行软件质量管理的重要性有:(ABCD)【中级】
A、维护降低成本 B、法律上的要求 C、市场竞争的需要
D、质量标准化的趋势 E、软件工程的需要 F、CMM过程的一部分
G、方便与客户进一步沟通为后期的实施打好基础
2、以测试的形态分测试可以分为:(ABC)【中级】
A、建构性测试 B、系统测试 C、专项测试
D、单元测试 E、组件测试 F、集成测试
3、选出属于黑盒测试方法的选项(ABC)【初级】
A、测试用例覆盖 B、输入覆盖 C、输出覆盖
D、分支覆盖 E、语句覆盖 F、条件覆盖
4、编写测试计划的目的是:(ABC)【中级】
A、使测试工作顺利进行 B、使项目参与人员沟通更舒畅 C、使测试工作更加系统化
D、软件工程以及软件过程的需要 E、软件过程规范化的要求 F、控制软件质量
5、依存关系有4种分别是:(ABCD)【高级】
A、开始-结束 B、开始-开始 C、结束-开始
D、结束-结束 E、开始-实施-结束 F、结束-审核-开始
6、软件质量管理(QM)应有质量保证(QA)和质量控制(QC)组成,下面的选项属于QC得是:(ABC)【高级】
A、测试 B、跟踪 C、监督
D、制定计划 E、需求审查 F、程序代码审查
7、实施缺陷跟踪的目的是:(ABCD)【中级】
A、软件质量无法控制 B、问题无法量化 C、重复问题接连产生
D、解决问题的知识无法保留 E、确保缺陷得到解决 F、使问题形成完整的闭环处理
8、使用软件测试工具的目的:(ABC)【中级】
A、帮助测试寻找问题 B、协助问题的诊断 C、节省测试时间
D、提高Bug的发现率 E、更好的控制缺陷提高软件质量 F、更好的协助开发人员
9、典型的瀑布模型的四个阶段是:(ABCD)【高级】
A、分析 B、设计 C、编码
D、测试 E、需求调研 F、实施
10、PSP是指个人软件过程 ,是一种可用于( A )、( B )和( C )个人软件工作方式的自我改善过程。【高级】
A、控制 B、管理 C、改进
D、高效 E、充分 F、适宜
三、问答题
1、测试人员在软件开发过程中的任务是什么?(初级)(5分)
答:1、寻找Bug;
2、避免软件开发过程中的缺陷;
3、衡量软件的品质;
4、关注用户的需求。
总的目标是:确保软件的质量。
2、在您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?(初级)(6分)
答:一条Bug记录最基本应包含:编号、Bug所属模块、Bug描述、Bug级别、发现日期、发现人、修改日期、修改人、修改方法、回归结果等等;要有效的发现Bug需参考需求以及详细设计等前期文档设计出高效的测试用例,然后严格执行测试用例,对发现的问题要充分确认肯定,然后再向外发布如此才能提高提交Bug的质量。
3、(没有了,不好意思)
4、黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点!(中级)(5分)
答:黑盒测试的优点有:
1)比较简单,不需要了解程序内部的代码及实现;
2)与软件的内部实现无关;
3)从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;
4)基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;
5)在做软件自动化测试时较为方便。
黑盒测试的缺点有:
1)不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;
2)自动化测试的复用性较低。
白盒测试的优点有:
帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。
白盒测试的缺点有:
1)程序运行会有很多不同的路径,不可能测试所有的运行路径;
2)测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;
3)系统庞大时,测试开销会非常大。
5、根据自己的理解回答什么是软件测试,软件测试分为哪几个阶段。(初级)(5分)
答:软件测试是一个为了寻找软件中的错误而运行软件的过程,一个成功的测试是指找到了迄今为止尚未发现的错误的测试。
软件测试一般分为单元测试、集成测试和系统测试。
6、根据自己的理解什么是测试用例和测试规程,设计一个测试用例应当从哪几方面考虑?(中级)(10分)
答:狭义的讲,一个测试用例就是测试人员用以测试被测软件的某个特性或特性组合的一组数据。这组数据可能是从用户处得来的实际的一组数据,也可能是测试人员专门设计出来的测试软件某些功能的一组数据。
测试规程就是详细的对测试用例设计方法、测试方法、测试工具、测试环境和测试数据进行描述的文档,还可以包括能把某个或某一组测试用例应用到被测软件上完成某项测试的一系列的操作步骤。
设计测试用例应当从以下几方面考虑:边界值,等价类划分,有效/无效值等。
7、什么是软件质量保证?软件质量保证人员与开发人员的关系如何?(高级) (10分)
答:软件质量保证就是通过确保软件过程的质量,来保证软件产品的质量。
软件质量保证人员和开发人员之间具有管理上的严格的独立性,两个小组的管理员都不能越权管理另一组,但都可以向更高层的管理者汇报软件开发中的问题
四、设计题
1).输入三个整数,判断三个整数能否构成一个三角形,请用黑盒测试方法中的一种设计出相应的测试用例并详细说明所使用的黑盒测试方法。(中高级) (15分)
。当主动发出SYN连接请求后,等待对方回答(3 A)。这种连接的方法可以防止(4 D),TCP使用的流量控制协议是(5 B)。(1)A.传输层 B.网络层 C会话层 D.应用层(2)A.1 B.2 C.3 D.4(3)A.SYN,ACK B.FIN,ACK C.PSH,ACK D.RST,ACK(4)A.出现半连接 B.无法连接 C.假冒的连接 D.产生错误的.连接(5)A.固定大小的滑动窗口协议 B.可变大小的滑动窗口协议 C.后退N帧ARQ协议 D.选择重发ARQ协议2、下列叙述中,与提高软件可移植性相关的是 D ,A.选择时间效率高的算法B.尽可能减少注释C.选择空间效率高的算法D.尽量用高级语言编写系统中对效率要求不高的部分D软件可移植性是指与软件可从某一环境移植到另一环境的能力有关的一组属性。高级语言具有较好的可移植性,所以可以尽量用高级语言编写系统中对效率要求不高的部分。减少注释、选择时间/空间效率高的算法都不能提高软件的可移植性。3、用边界值分析法,假定1 1.什么是软件测试? 软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序内部结构而精心设计的一批测试用例(即输入数据及其预期的输出结果),并用这些测试用例去运行程序,以发现程序错误的过程。 2.软件测试的目的? 软件测试的目的是想以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患带来的商业风险。 3.需求文档测试: 主要测试需求中是否存在逻辑矛盾以及需求在技术上是否可以实现。 4.设计文档测试 测试设计是否符合全部需求以及设计是否合理 5.白盒测试 又称为逻辑驱动测试,,他是知道产品内部工作过程,可通过测试来检验产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序的每条通路是否都能按预期要求正常工作,而不顾他的功能,白盒测试的主要方法是逻辑驱动、基路测试等,主要用于软件验证。 6.白盒测试的方法有哪几种? 白盒测试也称为结构测试或者逻辑驱动测试,他是想知道程序产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序的每条通路是否都能按预期要求正常工作,而不顾他的功能,白盒测试的主要方法有逻辑驱动测试,基路测试等,主要用于软件验证。“白盒”法是程序穷举路径测试。 对开发语言的支持:白盒测试工具是对源代码进行的测试,测试的主要内容包括词法分析和语法分析、静态错误分析、动态监测等。目前测试工具主要支持的开发语言包括:标准C,C++,Visual C++,Java,Visual J++等。 7.黑盒测试 已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。它意味着测试要在软件测试的接口处进行。这种方法是把测试对象看成一个黑盒子,测试人员完全不考虑程序的逻辑结构和内部特征,只依据程序的需求规格说明书,检查程序的功能是否符合他的功能说明书。因此黑盒测试又叫功能测试或数据驱动测试。 8.如果能够执行完美的黑盒测试,还需要进行白盒测试吗?(白盒与黑盒的区别) 任何工程产品(注意是任何工程产品)都可以使用一下两种方法之一进行测试。 黑盒测试:一直产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。白盒测试:一直产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。 软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员程序内部的逻辑结构和内部特性,只依据程序内部的需求规格说明书,检查程序的功能是否符合他的功能说明书。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误: 1)是否有不正确或者遗漏的功能? 2)在接口上输入是否能正确的接受?能否输出正确的结果? 3)是否有数据结构错误或外部信息(例如数据文件)访问错误? 4)性能上是否能够满足要求? 5)是否有初始化或者终止性错误? 软件的白盒测试是对软件的过程细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,他允许测试人员利用程序内部的逻辑结构以及有关信息,设计或选择测试用例,对程序所有程序路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期状态一致。因此白盒测试主要是相对程序模块进行如下检查: 1)对程序模块的所有独立的执行路径至少测试一遍 2)对所有的逻辑判定,取“真”与取“假”的两种情况至少都测试一遍。 3)在循环的边界和运行的界限内执行循环体。 4)测试内部数据结构的有效性,等等 以上事实说明,软件测试有一个致命的缺陷,即测试的不完全、不彻底性。由于任何程序只能进行少量(相对于穷举的巨大数量而言)的有限的测试,在为发现错误时,不能说明程序没有错误。 9.回归测试 回归测试的目的是在程序有修改的情况下,保证原有功能正常的一种测试策略和方法。说白了就是,我们测试人员在对程序进行测试时发现bug,然后返还程序员修改,程序员修改后发布新的软件包或新的软件补丁包给我们测试人员,我们就要重新对这个程序进行测试,已保证程序在修正了以前的bug的情况下,正常运行,且不会带来新的错误的这样一个过程。一般情况下是不需要进行全面测试的,而是根据修改的情况进行有效的测试。 10.验收测试的两种 Alpha测试:是由用户在开发环境下进行的测试,也可以是在公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试发现的错误,可以在测试现场立刻反馈给开发人员,由开发人员及时分析和处理,目的是评价软件的功能、可使用性、可靠性、性能和支持。尤其注重产品的界面和特色。Alpha测试可以从软件产品编码结束之后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度再开始。有关的手册(草稿)等应该在Alpha测试前准备好。 Bate测试:是软件的多用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Bate测试不能由程序员或测试员完成。因而,Bate测试是在开发者无法控制的环境下进行的软件现场应用。在Bate测试中,由用户记下遇到的所有问题,包括真实的以及主管的认定,定期向开发者报告,开发者在综合用户的报告后,做出修改,最后将软件产品交付给全体用户使用。Bate测试着重于产品的支持性,包括文档、客户培训和支持产品的生产能力。只有Alpha测试达到一定的可靠程度后才能开始Bate测试。由于Bate测试的主要目标是测试可支持性,所以Bate测试应该尽可能由主持产品发行的人员来管理。 11.软件测试的缺陷等级应如何划分 1)致命错误,可能导致本模块以及其他相关模块异常,死机等问题。 2)严重错误,问题局限在本模块,导致模块功能失效或异常退出 3)一般错误,模块功能部分失效 4)建议问题,有问题提出人对测试对象的改进意见 12.软件测试应该划分几个阶段?简述各个阶段应重点测试的点?各阶段的含义? 大体上来说可分为单元测试,集成测试,系统测试,验收测试,每个阶段又分为以下五个步骤:测试计划,测试设计,用例设计,执行结果,测试报告。 初始测试集中在每个模块上,保证源代码的正确性,该阶段成为单元测试,主要用白盒测试的方法。接下来是模块集成和集成以便组成完整的软件包。集成测试集中在证实和程序结构成问题上。主要采用黑盒测试的方法,辅之以白盒测试方法。 软件集成后,需要完成确认和系统测试。确认测试提供软件满足所有的功能、性能需求的最后保证。确认测试仅仅应用黑盒测试的方法。 13.驱动模块和桩模块 驱动模块:大多数场合称为“主程序”,他接收测试数据并将这些数据传递到被测试模块,单元测试一个函数单元时,被测单元本身是不能独立运行的,需要为其传送数据,为此写驱动 驱动模块主要完成以下事情: 1)接收测试输入 2)对输入进行判断 3)将输入传给被测单元,驱动被测单元执行; 4)接受被测单元的执行结果,并对结果进行判定 5)将判断结果作为用例执行结果输出测试报告 桩模块:比如对函数A做单元测试的时候,被测的函数单元下还包括了也函数B,为了更好地定位错误,就要为B写桩,来模拟函数B的功能,保证其正确性。 14.各种测试所针对的问题 1)单元测试:是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。他是软件动态测试的最基本部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。 2)集成测试:是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。 3)系统测试:系统测试是对已经集成好的软件系统进行彻底的测试,已验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务,他被称为测试的“先知者问题”。 4)验收测试:验收测试旨在向软件的购买者展示该软件系统满足其用户需求。他的测试数据通常是系统测试的测试数据的子集。 5)回归测试:是在软件维护阶段,对软件进行修改之后进行的测试。其目的是检验对软件进行的修改是否正确。 15.针对缺陷采取怎样的管理措施? 1)要更好的管理缺陷,必须引入缺陷管理工具,商用的或者开源的都可以。 2)根据缺陷的生命周期,考虑缺陷提交的管理、缺陷状态的管理和缺陷分析的管理。 3)所有发现的缺陷(不管是测试发现的还是走读代码发现的)都必须全部及时的、准确的提交到缺陷管理工具中。 4)缺陷提交后,需要及时的指派给相应的开发人员,提交缺陷的人需要密切注意缺陷的状态,帮助缺陷尽快解决。缺陷解决后需要及时对缺陷的修复进行验证。这样的目的有两个:一个是让缺陷尽快解决;二是方便后面缺陷的分析(保证缺陷相关的信息准确,如龄期等)。 5)为了更好地改进开发过程和测试过程,需要对缺陷进行分析,总结如缺陷的类别、缺陷的龄期分布等信息,这是缺陷分析的管理。 16.单元测试、集成测试、系统测试的侧重点是什么? 单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试,测试的重点是系统的模块,包括子程序的正确性验证等。 集成测试也叫组装测试或联合测试,在单元测试的基础上,将所有模块按照设计要求,组装成为子系统或者系统,进行集成测试。实践表明,一些模块虽然能够单独的工作,但并不能保证连接起来也能正常的工作。程序在某些局部反应不出来的问题,在全局上很可能暴露出来,影响功能的实现。测试的重点是模块间的衔接以及参数的传递等。 系统测试是将经过测试的子系统装配成一个完整的系统来测试,他是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。测试重点是整个系统的运行以及与其他软件的兼容性。 17.测试用例的方法、依据有哪些? 白盒测试用例设计有如下方法:基本路径测试、等价类划分、边界值分析、覆盖测试、循环测试、数据流测试、程序插桩测试、变异测试,这时候一句就是详细设计说明书及其代码结构 黑盒测试用例设计方法:基于用户需求的测试、功能图分析方法、等价类划分方法、边界值分析方法、错误推测方法、因果图方法、判定表驱动分析方法、正交试验分析方法。依据是用户需求规格说明书,详细设计说明书。 18.测试用例通常包含哪些内容?(着重阐释编制测试用例的具体做法不同结构的用例包括的不一样(版本、编号、项目、设计人员、设计日期、输入、预期输出。。。)) 软件测试用例的基本要素包括测试用例的编号、测试标题、重要级别、测试输入、操作步骤、预期结果。 用例编号:测试用例的编号有一定的规则,比如系统测试用例的编号这样定义规则: PROJECT1-ST-001,命名规则是项目名称+测试阶段类型(系统测试阶段)+编号。定义测试用例编号,便于查找测试用例的跟踪。 测试标题:对测试用例的描述,测试用例标题应该清楚表达测试用例的用途。比如:“测试用户登录时输入错误密码时,软件的响应情况”。重要级别:定义测试用例的优先级别,可以笼统的分为“高”和“低”两个级别。一般来说,如果软件的优先级别为“高”;反之亦然,测试输入:提供测试执行中的各种输入条件。根据需求中的输入条件,确定测试用例的输入。测试用例的输入对软件需求当中的输入有很大的依赖性,如果软件需求中没有很好地定义需求的输入,那么测试用例设计中将会遇到很大的障碍。 操作步骤:提供测试执行过程的步骤。对于复杂的测试用例,测试用例的输入需要分为几个步骤完成,这部分内容在操作步骤中详细列出。 预期结果:提供测试执行的预期结果,预期结果应该根据软件需求中的输出得出。如果在实际测试过程中,得到的实际测试结果与预期结果不符,那么测试不通过;反之测试通过。 用例编号 19.描述使用bugzilla缺陷管理工具对软件缺陷(BUG)跟踪的管理流程 1)测试人员或开发人员发现bug之后,判断属于哪个模块的问题,填写Bug报告后,系统会自动通过Email通知项目组长或直接通知开发者 2)验证无误后,修改状态为VERIFIED,待整个产品发布后,修改为CLOSED。 3)还有个问题,REOPENED,状态重新改变为“New”,并发邮件通知。 4)项目组长根据具体情况,重新reassigned分配给bug所属的开发者。 5)若是,进行处理,resolved并给出解决方法。(可创建补丁附件及补充说明) 6)开发者收到Email信息后,判断是否为自己的修改范围 7)若不是,重新reassigned分配给项目组长或应该分配的开发人员。 8)测试人员查询开发者已修改的bug,进行重新测试。 20.为什么想做测试不做开发? 这个问题几乎是所有面试官必问的,没有什么标准答案,但是切记不要说是因为觉得测试比开发简单又或者测试不用写代码之类的。 一、判断题(每题1分,12分,正确的√,错误的w) 1、测试人员在测试过程中发现一处问题,如果问题影响不大,而自己又可以修改,应立即将此问题正确修改,以加快、提高开发的进程。(×) 2、软件测试就是为了验证软件功能实现的是否正确,是否完成既定目标的活动,所以软件测试在软件工程的后期才开始具体的工作。(×) 3、发现错误多的模块,残留在模块中的错误也多。(√)(初级) 4、功能测试是系统测试的主要内容,检查系统的功能、性能是否与需求规格说明相同。(√)(中级) 5、测试只要做到语句覆盖和分支覆盖,就可以发现程序中的所有错误。(X) 二、选择题(每题2分20) 1、选出属于黑盒测试方法的选项(ABC) A、测试用例覆盖 B、输入覆盖 C、输出覆盖 D、分支覆盖 E、语句覆盖 F、条件覆盖 2、软件质量管理(QM)应有质量保证(QA)和质量控制(QC)组成,下面的选项属于QC得是:(ABC) A、测试 B、跟踪 C、监督 D、制定计划 E、需求审查 F、程序代码审查 3、使用软件测试工具的目的:(ABC) A、帮助测试寻找问题 B、协助问题的诊断 C、节省测试时间 D、提高Bug的发现率 E、更好的控制缺陷提高软件质量 F、更好的协助开发人员 4、典型的瀑布模型的四个阶段是:(ABCD) A、分析 B、设计 C、编码 D、测试 E、需求调研 F、实施 5、进行软件质量管理的重要性有:(ABCD) A、维护降低成本 B、法律上的要求 C、市场竞争的需要 D、质量标准化的趋势 E、软件工程的需要 F、CMM过程的一部分 G、方便与客户进一步沟通为后期的实施打好基础 6、以测试的形态分测试可以分为:(ABC) A、建构性测试 B、系统测试 C、专项测试 D、单元测试 E、组件测试 F、集成测试 7、编写测试计划的目的是:(ABC) A、使测试工作顺利进行 B、使项目参与人员沟通更舒畅 C、使测试工作更加系统化 D、软件工程以及软件过程的需要 E、软件过程规范化的要求 F、控制软件质量 8、依存关系有4种分别是:(ABCD)【高级】 A、开始-结束B、开始-开始C、结束-开始 D、结束-结束E、开始-实施-结束F、结束-审核-开始 三、问答题 1、界面测试题及设计题, 请找出下面界面中所存在的问题并分别列出;用黑盒测试的任何一种方法设计出此登陆窗体的测试用例。(中级)(6分) 答:1、窗体的标题栏中为空,没有给出标题。 2、用户名和密码控件的`字体不一致并且没有对齐。 3、文本框的大小不一致没有对其。 4、确定和取消按钮控件的大小不一致。 2、黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点!(中级)(5分) 答:黑盒测试的优点有: 1)比较简单,不需要了解程序内部的代码及实现; 2)与软件的内部实现无关; 3)从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题; 4)基于软件开发文档,所以也能知道软件实现了文档中的哪些功能; 5)在做软件自动化测试时较为方便。 黑盒测试的缺点有: 1)不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%; 2)自动化测试的复用性较低。 白盒测试的优点有: 帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。 白盒测试的缺点有: 1)程序运行会有很多不同的路径,不可能测试所有的运行路径; 2)测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求; 3)系统庞大时,测试开销会非常大。 5、根据自己的理解回答什么是软件测试,软件测试分为哪几个阶段。(初级)(5分) 答:软件测试是一个为了寻找软件中的错误而运行软件的过程,一个成功的测试是指找到了迄今为止尚未发现的错误的测试。 软件测试一般分为单元测试、集成测试和系统测试。 3、根据自己的理解什么是测试用例和测试规程,设计一个测试用例应当从哪几方面考虑?(中级)(10分) 答:狭义的讲,一个测试用例就是测试人员用以测试被测软件的某个特性或特性组合的一组数据。这组数据可能是从用户处得来的实际的一组数据,也可能是测试人员专门设计出来的测试软件某些功能的一组数据。 测试规程就是详细的对测试用例设计方法、测试方法、测试工具、测试环境和测试数据进行描述的文档,还可以包括能把某个或某一组测试用例应用到被测软件上完成某项测试的一系列的操作步骤。 设计测试用例应当从以下几方面考虑:边界值,等价类划分,有效/无效值等。 4、什么是软件质量保证?软件质量保证人员与开发人员的关系如何?(高级)(10分) 答:软件质量保证就是通过确保软件过程的质量,来保证软件产品的质量。 软件质量保证人员和开发人员之间具有管理上的严格的独立性,两个小组的管理员都不能越权管理另一组,但都可以向更高层的管理者汇报软件开发中的问题 5、在您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?(初级)(6分) 答:一条Bug记录最基本应包含:编号、Bug所属模块、Bug描述、Bug级别、发现日期、发现人、修改日期、修改人、修改方法、回归结果等等;要有效的发现Bug需参考需求以及详细设计等前期文档设计出高效的测试用例,然后严格执行测试用例,对发现的问题要充分确认肯定,然后再向外发布如此才能提高提交Bug的质量。 一、能力题 1. 卡车以每小时80公里的速度行驶,30 分钟行驶的路程为: A. 15公里 B. 30公里 C. 40公里 D. 80公里 E. 以上答案全不对 2.有一种小虫,每隔两秒钟分裂一次。分裂后的两只新的小虫经过两秒钟后又会分裂。如果最初某瓶中只有一只小虫,那么两秒后变两只,再过两秒后就变四只……两分钟后,正好满满一瓶小虫。现在这个瓶内最初放入两只这样的小虫。 问:经过多少时间后,正巧也是满满的一瓶? 3. 美国某小镇车队有17辆小公共汽车,整天在相距197千米的青山与绿水两个小镇之间往返运客。每辆车到达小镇后司机都要休息8分钟。司机杰克上午10点20分开车从青山镇出发,在途中不时地遇到(有时是迎面驶来,有时是互相超越)一辆本车队的车。下午1点55分他到达绿水镇,休息时发现本队的其他司机一个都不在。没有同伴可以聊天,杰克就静静地回忆刚才在路上遇到的本车队的那些人。 问:杰克一共遇到了本车队的几辆车? 4. 一个岔路口分别通向诚实国和说谎国。来了两个人,已知一个是诚实国的,另一个是说谎国的。诚实国永远说实话,说谎国永远说谎话。现在你要去说谎国,但不知道应该走哪条路,需要问这两个人。 请问应该怎么问?(20秒-2分钟) 二、软件测试基础题(多选) 1. V模型本质上是一种 A.线性顺序模型 B.顺序迭代模型 C.线性迭代模型 D. 及早见产品模型 2. 某软件公司在招聘软件评测师时,应聘者甲对公司作如下保证,你认为应聘者甲的保证中,不正确的是()。 A. 经过自己测试的软件今后不会再出现问题 B. 在工作中对所有程序员一视同仁,不会因为在某个程序员编写的程序中发现的问题多,就重点审查该程序,以免不利于团结 C. 承诺不需要其他人员,自己就可以独立进行测试工作 D. 发扬咬定青山不放松的精神,不把所有问题都找出来,决不罢休 3. 软件测试执行阶段的产品应包括 ( )。 A. 测试日志 B. 测试用例 C. 测试事件报告 D. 测试职责分工与进度计划 4. 为什么要测试? () A. 以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷 B. 实施测试收集到的测试结果数据为可靠性分析提供了依据 C. 它只能说明软件中存在错误 D. 证明测试团队的实力 5. 一个好的测试的属性包括:() A. 一个好的测试发现错误的可能性很高 B. 一个好的测试并不冗余 C. 一个好的测试应该特别复杂 D. 一个好的测试应该特别简单 6.关于数据库索引,以下表述正确的是() ①如果对表创建了索引,那么更新、插入和删除表中的记录都将导致额外的系统开销。 ②全表扫描一定比使用索引的执行效率低。 ③在字段选择性很低的情况下适用索引。 ④一个表创建的索引越多,对系统的性能提升越大。 A. ①②③ B. ①③ C. ①②③④ D. ①③④ 7.在TCP/IP网络中,为各种公共服务保留的端口号范围值是() A.1~255 B.1~1023 C.1~1024 D.1~65535 什么是软件测试? 软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。 软件测试的目的? 测试的目的是想以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患带来的商业风险。 需求文档测试: 主要测试需求中是否存在逻辑矛盾以及需求在技术上是否可以实现; 设计文档测试: 测试设计是否符合全部需求以及设计是否合理。 α测试: Alpha测试(α测试)是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由程序员或测试员完成。Alpha测试发现的错误,可以在测试现场立刻反馈给开发人员,由开发人员及时分析和处理。目的是评价软件产品的功能、可使用性、可靠性、性能和支持。尤其注重产品的界面和特色。Alpha测试可以从软件产品编码结束之后开始,或在模块(子系统)测试完成后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。有关的手册(草稿)等应该在Alpha测试前准备好。 β测试 Beta测试(β测试)是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。因而,Beta测试是在开发者无法控制的环境下进行的软件现场应用。在Beta测试中,由用户记下遇到的所有问题,包括真实的以及主管认定的,定期向开发者报告,开发者在综合用户的报告后,做出修改,最后将软件产品交付给全体用户使用。Beta测试着重于产品的支持性,包括文档、客户培训和支持产品的生产能力。只有当Alpha测试达到一定的可靠程度后,才能开始Beta测试。由于Beta测试的主要目标是测试可支持性,所以Beta测试应该尽可能由主持产品发行的人员来管理。 驱动模块: 驱动模块在大多数场合称为“主程序”,它接收测试数据并将这些数据传递到被测试模块.单元测试一个函数单元时,被测单元本身是不能独立运行的,需要为其传送数据,为此写驱动 驱动模块主要完成以下事情: 1、接受测试输入; 2、对输入进行判断; 3、将输入传给被测单元,驱动被测单元执行; 4、接受被测单元执行结果,并对结果进行判断; 5、将判断结果作为用例执行结果输出测试报告。 桩模块 比如对函数A做单元测试时,被测的函数单元下还包括了一个函数B,为了更好的错误,定位错误,就要为函数B写桩,来模拟函数B的功能,保证其正确。 白盒测试 白盒测试(White-box Testing,又称逻辑驱动测试,结构测试),它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。 对开发语言的支持:白盒测试工具是对源代码进行的测试,测试的主要内容包括词法分析与语法分析、静态错误分析、动态检测等。目前测试工具主要支持的开发语言包括:标准C、C++、Visual C++、Java、Visual J++等。 静态测试 动态通过评审文档、阅读代码等方式测试软件称为静态测试,通过运行程序测试软件称为测试.在动态测试中,通常使用白盒测试和黑盒测试从不同的角度设计测试用例,查找软件代码中的错误. 回归测试 回归测试的目的是在程序有修改的情况下,保证原有功能正常的一种测试策略和方法。 说白了就是,我们测试人员在对程序进行测试时发现bug,然后返还程序员修改,程序员修改后发布新的软件包或新的软件补丁包给我们测试人员,我们就要重新对这个程序测试,已保证程序在修正了以前bug的情况下,正常运行,且不会带来新的错误的这样一个过程。 一般情况下是不需要全面测试的,而是根据修改的情况进行有效的测试。 白盒测试有哪几种方法? 白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒”法是穷举路径测试。 软件的缺陷等级应如何划分? 1.致命错误,可能导致本模块以及其他相关模块异常,死机等问题; 2.严重错误,问题局限在本模块,导致模块功能失效或异常退出 3.一般错误,模块功能部分失效; 4.建议问题,由问题提出人对测试对象的改进意见; 如果能够执行完美的黑盒测试,还需要进行白盒测试吗?(白盒与黑盒的区别) 任何工程产品(注意是任何工程产品)都可以使用以下两种方法之一进行测试。 黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。 软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误: 1、是否有不正确或遗漏的功能? 2、在接口上,输入是否能正确的接受?能否输出正确的结果? 3、是否有数据结构错误或外部信息(例如数据文件)访问错误? 4、性能上是否能够满足要求? 5、是否有初始化或终止性错误? 软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查: 1、对程序模块的所有独立的执行路径至少测试一遍。 2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。 3、在循环的边界和运行的界限内执行循环体。 4、测试内部数据结构的有效性,等等。 以上事实说明,软件测试有一个致命的缺陷,即测试的不完全、不彻底性。由于任何程序只能进行少量(相对于穷举的巨大数量而言)的有限的测试,在未发现错误时,不能说明程序中没有错误。 软件测试应该划分几个阶段?简述各个阶段应重点测试的点?各个阶段的含义? 大体上来说可分为单元测试,集成测试,系统测试,验收测试,每个阶段又分为以下五个步骤: 测试计划,测试设计,用例设计,执行结果,测试报告 初始测试集中在每个模块上,保证源代码的正确性,该阶段成为单元测试,主要用白盒测试方法。接下来是模块集成和集成以便组成完整的软件包。集成测试集中在证实和程序构成问题上。主要采用黑盒测试方法,辅之以白盒测试方法。 软件集成后,需要完成确认和系统测试。确认测试提供软件满足所有功能、性能需求的最后保证。确认测试仅仅应用黑盒测试方法。 单元测试 单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。 集成测试 集成测试是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。 系统测试 系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务,它被称为测试的“先知者问题”。 验收测试 验收测试旨在向软件的购买者展示该软件系统满足其用户的需求。它的测试数据通常是系统测试的测试数据的子集. 回归测试 回归测试是在软件维护阶段,对软件进行修改之后进行的测试。其目的是检验对软件进行的修改是否正确。 针对缺陷采取怎样的管理措施? 1. 要更好的管理缺陷,必须引入缺陷管理工具,商用的或者开源的都可。 2. 根据缺陷的生命周期,考虑缺陷提交的管理、缺陷状态的管理和缺陷分析的管理。 3. 所有发现的缺陷(不管是测试发现的还是走读代码发现的)都必须全部即时的、准确的提交到缺陷管理工具中,这是缺陷提交的管理。 4. 缺陷提交后,需要即时的指派给相应的开发人员,提交缺陷的人需要密切注意缺陷的状态, 帮助缺陷的尽快解决。缺陷解决后需要即时对缺陷的修复进行验证。这样的目的有两个:一个是让缺陷尽快解决;二是方便后面缺陷的分析(保证缺陷相关的信息准确,如龄期等),这是缺陷状态的管理。 5. 为了更好的改进开发过程和测试过程,需要对缺陷进行分析,总结如缺陷的类别、缺陷的龄期分布等信息,这是缺陷分析的管理。 单元测试、集成测试、系统测试的侧重点是什么? 单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试,测试重点是系统的模块,包括子程序的正确性验证等。集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求,组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。测试重点是模块间的衔接以及参数的传递等。 系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。测试重点是整个系统的运行以及与其他软件的兼容性。 设计用例的方法、依据有那些? 白盒测试用例设计有如下方法:基本路径测试\等价类划分\边界值分析\覆盖测试\循环测试\数据流测试\程序插桩测试\变异测试.这时候依据就是详细设计说明书及其代码结构 黑盒测试用例设计方法:基于用户需求的测试\功能图分析方法\等价类划分方法\边界值分析方法\错误推测方法\因果图方法\判定表驱动分析方法\正交实验设计方法.依据是用户需求规格说明书,详细设计说明书。 测试用例通常包括那些内容?着重阐述编制测试用例的具体做法不同结构的用例包括的不一样(版本、编号、项目、设计人员、设计日期、输入、预期输出……) 软件测试用例的基本要素包括测试用例编号、测试标题、重要级别、测试输入、操作步骤、预期结果。用例编号:测试用例的编号有一定的规则,比如系统测试用例的编号这样定义规则: PROJECT1-ST-001 ,命名规则是项目名称+测试阶段类型(系统测试阶段)+编号。定义测试用例编号,便于查找测试用例,便于测试用例的跟踪。 测试标题:对测试用例的描述,测试用例标题应该清楚表达测试用例的用途。比如“ 测试用户登录时输入错误密码时,软件的响应情况 ” .重要级别:定义测试用例的优先级别,可以笼统的分为 “ 高” 和 “ 低 ” 两个级别。一般来说,如果软件需求的优先级为 “ 高 ” ,那么针对该需求的测试用例优先级也为 “ 高 ”;反之亦然,测试输入:提供测试执行中的各种输入条件。根据需求中的输入条件,确定测试用例的输入。测试用例的输入对软件需求当中的输入有很大的依赖性,如果软件需求中没有很好的定义需求的输入,那么测试用例设计中会遇到很大的障碍。 操作步骤:提供测试执行过程的步骤。对于复杂的测试用例,测试用例的输入需要分为几个步骤完成,这部分内容在操作步骤中详细列出。 预期结果:提供测试执行的预期结果,预期结果应该根据软件需求中的输出得出。如果在实际测试过程中,得到的实际测试结果与预期结果不符,那么测试不通过;反之则测试通过。 描述使用bugzilla缺陷管理工具对软件缺陷(BUG)跟踪的管理的流程 1) 测试人员或开发人员发现bug后,判断属于哪个模块的问题,填写bug报告后,系统会自动通过Email通知项目组长或直接通知开发者。 2) 经验证无误后,修改状态为VERIFIED.待整个产品发布后,修改为CLOSED. 3) 还有问题,REOPENED,状态重新变为“New",并发邮件通知。 4) 项目组长根据具体情况,重新reassigned分配给bug所属的开发者。 5) 若是,进行处理,resolved并给出解决方法。(可创建补丁附件及补充说明) 6) 开发者收到Email信息后,判断是否为自己的修改范围。 7) 若不是,重新reassigned分配给项目组长或应该分配的开发者。 8) 测试人员查询开发者已修改的bug,进行重新测试。 一、选择填空 1.有一个文件test.txt里面有四列(name class address age),问:用_____shell命令打印出class列的内容。 -----awk ‘{print $2}’ test.txt 2.英特网的远程登录的工作模式是_____工作模式。 -----客户机/服务器 3.防止系统区被破坏的方法有两种:存储保护键和______。------ -----定时备份 4.多播IP用的是哪类地址(D) A.A类地址 B.B类地址 C.C类地址 D.D类地址 5.关系代数的优化策略是_______。 ------尽早执行选择运算 6.在分解中,无损连接,函数依赖属于_______。 7.在完成了数据库的模式的定义之后,数据字典里面应该包括______。 8.可重定位内存分配的目的是_______。 ------解决碎片和紧缩问题 9.unix的目录结构是______。 10.连接方式存储的队列,在删除一个节点时(D) 选项可能记不清了,大概是这样 A.只改动头指针 B.只改动尾指针 C.头指针和尾指针都改动 D.头指针和尾指针可能改动 11.不带头指针的单链表的队列,在删除一个节点时(D) 10和11这两个题目有什么区别,不解? A.只改动头指针 B.只改动尾指针 C.头指针和尾指针都改动 D.头指针和尾指针可能改动 12.完整性约束包括:主键约束,外键约束,和全局约束。 -----所以应该是:用户自定义约束 13.IEEE802.3物理地址是(C)位 A.32bit B.64bit C. 48bit D.16bit 14.哪一种数据的查询需要优化 A.层次数据库 B.网状数据库 C.关系数据库 D.无关系数据库 15.负责压力测试不包括 A.访问量 B.点击次数 C.业务处理时间 D.业务请求吞吐量 16. 在五层的网络模型中,传输层属于第___4___层。 二、问答 1、你的测试职业发展是什么? 测试经验越多,测试能力越高。所以我的职业发展是需要时间积累的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年积累测试经验,按如何做好测试工程师的要点去要求自己,不断更新自己改正自己,做好测试任务。 2、你认为测试人员需要具备哪些素质 做测试应该要有一定的协调能力,因为测试人员经常要与开发接触处理一些问题,如果处理不好的话会引起一些冲突,这样的话工作上就会不好做。还有测试人员要有一定的耐心,有的时候做测试很枯燥乏味。除了耐心,测试人员不能放过每一个可能的错误。 3、你为什么能够做测试这一行 虽然我的测试技术还不是很成熟,但是我觉得我还是可以胜任软件测试这个工作的,因为做软件测试不仅是要求技术好,还有有一定的沟通能力,耐心、细心等外在因素。综合起来看我认为我是胜任这个工作的。 4、测试的目的是什么? 测试的目的是找出软件产品中的错误,是软件尽可能的符合用户的要求。当然软件测试是不可能找出全部错误的。 5、测试分为哪几个阶段? 一般来说分为5个阶段:单元测试、集成测试、确认测试、系统测试、验收测试 6、单元测试的测试对象、目的、测试依据、测试方法? 测试对象是模块内部的程序错误,目的是消除局部模块逻辑和功能上的错误和缺陷。测试依据是模块的详细设计,测试方法是采用白盒测试。 7、怎样看待加班问题 加班的话我没有太多意见,但是我还是觉得如果能够合理安排时间的话,不会有太多时候加班的。 8、结合你以前的学习和工作经验,你认为如何做好测试。 根据我以前的工作和学习经验,我认为做好工作首先要有一个良好的沟通,只有沟通无障碍了,才会有好的协作,才会有更好的效率,再一个就是技术一定要过关,做测试要有足够的耐心,和一个良好的工作习惯,不懂的就要问,实时与同事沟通这样的话才能做好测试工作。 9、你为什么选择软件测试行业 因为之前了解软件测试这个行业,觉得他的发展前景很好。 10、根据你以前的工作或学习经验描述一下软件开发、测试过程,由哪些角色负责,你做什么 要有架构师、开发经理、测试经理、程序员、测试员。我在里面主要是负责所分到的模块执行测试用例。 11、根据你的经验说说你对软件测试/质量保证的理解 软件质量保证与测试是根据软件开发阶段的规格说明和程序的内部结构而精心设计的一批测试用例(即输入数据和预期的输出结果),并根据这些测试用例去运行程序,以发现错误的过程。它是对应用程序的各个方面进行测试以检查其功能、语言有效性及其外观排布。 12、软件测试的流程是什么? 需求调查:全面了解系统概况、应用领域、软件开发周期、软件开发环境、开发组织、时间安排、功能需求、性能需求、质量需求及测试要求等。根据系统概况进行项目所需的人员、时间和工作量估计以及项目报价。 制定初步的项目计划。 测试准备:组织测试团队、培训、建立测试和管理环境等。 测试设计:按照测试要求进行每个测试项的测试设计,包括测试用例的设计和测试脚本的开发等。 测试实施:按照测试计划实施测试。 测试评估:根据测试的结果,出具测试评估报告。 13、你对SQA的职责和工作活动(如软件度量)的理解? SQA就是独立于软件开发的项目组,通过对软件开发过程的监控,来保证软件的开发流程按照指定的CMM规程(如果有相应的CMM规程),对于不符合项及时提出建议和改进方案,必要时可以向高层经理汇报以求问题的解决。通过这样的途径来预防缺陷的引入,从而减少后期软件的维护成本。SQA主要的工作活动包括制定SQA工作计划,参与阶段产物的评审,进行过程质量、功能配置及物理配置的审计等;对项目开发过程中产生的数据进行度量等等。 14、说说你对软件配置管理的理解 项目在开发过程中要用相应的配置管理工具对配置项(包括各个阶段的产物)进行变更控制,配置管理的使用取决于项目规模和复杂性及风险的水平。软件的规模越大,配置管理就越显得重要。还有在配置管理中,有一个很重要的概念,那就是基线,是在一定阶段各个配置项的组合,一个基线就提供了一个正式的标准,随后的工作便基于此标准,并只有经过授权后才能变更这个标准。配置管理工具主要有CC,VSS,CVS,SVN等,我只用过SVN,对其他的工具不是很熟悉。 15、怎样写测试计划和测试用例 简单点,测试计划里应有详细的测试策略和测试方法,合理详尽的资源安排等,至于测试用例,那是依赖于需求(包括功能与非功能需求)是否细化到功能点,是否可测试等。 ★ 测试基础笔试题 ★ 心理测试笔试题 ★ 开发工程师笔试题 ★ C工程师笔试题篇8:软件测试笔试题以及答案
篇9:某公司软件测试工程师笔试题
篇10:软件测试笔试题
篇11:软件测试笔试题
篇12:软件测试笔试题