软件测试试题笔试+面试整理最终稿.docx
- 文档编号:30683749
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:27
- 大小:120.11KB
软件测试试题笔试+面试整理最终稿.docx
《软件测试试题笔试+面试整理最终稿.docx》由会员分享,可在线阅读,更多相关《软件测试试题笔试+面试整理最终稿.docx(27页珍藏版)》请在冰豆网上搜索。
软件测试试题笔试+面试整理最终稿
1、黑盒测试与白盒测试各有哪些优缺点,应该如何结合才能解决漏洞和冗余问题?
答:
功能性测试具有两大优点:
功能性测试与软件如何实现无关;测试用例开发可以与实现并行进行,因此可以压缩总的项目开发时间。
缺点:
测试用例之间可能存在严重的冗余,还会有位测试的软件漏洞。
结构性测试局限于已经完成的代码行为当中,离代码太近。
因此可以结构性测试指标去解决冗余和漏洞问题。
如果发现同一条程序路径被多个功能性测试用例遍历,就可以怀疑这种冗余不会发生新的缺陷,如果没有达到一定的DD—路径覆盖,则可知在功能性测试用力中存在漏洞。
因此路径测试可以提供作为功能性测试交叉检查的一组指标。
总结:
黑盒测试与白盒测试比较
白盒测试
黑盒测试
程序结构
已知程序结构
未知程序结构
规模
小规模测试
大规模测试
依据
详细设计说明
需求说明、概要设计说明
面向
程序结构
输入输出接口/功能要求
适用
单元测试
集成测试、系统测试
测试人员
开发人员
专门测试人员/外部人员
优点
能够对程序内部的特定部位进行覆盖
能站在用户的立场上进行测试
缺点
无法检验程序的外部特性
不能检测对要求的遗漏
不能测试程序内部特定部位
如果规格说明有误,则无法发现
4、有函数f(x,y,z),其中x∈[1900,2100],y∈[1,12],z∈[1,31]的。
请写出该函数采用基本边界值分析法设计的测试用例。
{<2000,6,1>,<2000,6,2>,<2000,6,30>,<2000,6,31>,<2000,1,15>,<2000,2,15>,<2000,11,15>,<2000,12,15>,<1900,6,15>,<1901,6,15>,<2099,6,15>,<2100,6,15>,<2000,6,15>}
例:
某城市的电话号码由三部分组成。
这三部分的名称和内容分别是
地区码:
空白或三位数字;
前缀:
非’0’或’1’开头的三位数;
后缀:
四位数字。
假定被调试的程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的号码,就可用等价分类法来设计它的调试用例。
解:
第一步:
划分等价类,包括4个有效等价类,11个无效等价类。
表7-2-1列出了划分的结果。
在每一等价类之后加有编号,以便识别。
表7-2-1 电话号码程序的等价划分
输入条件
有效等价类
无效等价类
地区码
空白
(1),3位数字
(2)
有非数字字符(5),少于3位数字(6),多于三位数字(7)
前缀
从200到999之间的3位数字(3)
有非数字字符(8),起始位为"0"(9),起始位为"1"(10),少于3位数字(11),多于3位数字(12)
后缀
4位数字(4)
有非数字字符(13),少于4位数字(14),多于4位数字(15)
第二步:
确定调试用例。
表7-2-1中有4个有效等价类,可以公用以下两个次数用例:
调试数据
范围
期望结果
()276-2345
等价类
(1),(3),(4)
有效
(635)805-9321
等价类
(2),(3),(4)
有效
对11个无效等价类,要选择11个调试用例,如下所示:
调试数据
范围
期望结果
(20A)123-4567
无效等价类(5)
无效
(33)234-5678
无效等价类(6)
无效
(7777)345-6789
无效等价类(7)
无效
(777)34A-6789
无效等价类(8)
无效
(234)045-6789
无效等价类(9)
无效
(777)145-6789
无效等价类(10)
无效
(777)34-6789
无效等价类(11)
无效
(777)2345-6789
无效等价类(12)
无效
(777)345-678A
无效等价类(13)
无效
(777)345-678
无效等价类(14)
无效
(777)345-56789
无效等价类(15)
无效
选取的调试数据可以不同,关键是与调试内容相符。
例1:
某程序规定:
“输入三个整数a、b、c分别作为三边的边长构成三角形。
通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算…”。
用等价类划分方法为该程序进行测试用例设计。
(三角形问题的复杂之处在于输入与输出之间的关系比较复杂。
)
分析题目中给出和隐含的对输入条件的要求:
(1)整数
(2)三个数(3)非零数
(4)正数(5)两边之和大于第三边
(6)等腰(7)等边
如果a、b、c满足条件
(1)~(4),则输出下列四种情况之一:
1.如果不满足条件(5),则程序输出为“非三角形”。
2.如果三条边相等即满足条件(7),则程序输出为“等边三角形”。
3.如果只有两条边相等、即满足条件(6),则程序输出为“等腰三角形”。
4.如果三条边都不相等,则程序输出为“一般三角形”。
覆盖有效等价类的测试用例:
abc覆盖等价类号码
345
(1)--(7)
445
(1)--(7),(8)
455
(1)--(7),(9)
545
(1)--(7),(10)
444
(1)--(7),(11)
覆盖无效等价类的测试用例:
✧
✧
✧
例2:
设有一个档案管理系统,要求用户输入以年月表示的日期。
假设日期限定在1990年1月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。
现用等价类划分法设计测试用例,来测试程序的“日期检查功能”。
1)划分等价类并编号(下表等价类划分的结果)
输入等价类
有效等价类
无效等价类
日期的类型及长度
①6位数字字符
②有非数字字符
③少于6位数字字符
④多于6位数字字符
年份范围
⑤在1990~2049之间
⑥小于1990
⑦大于2049
月份范围
⑧在01~12之间
⑨等于00
⑩大于12
2)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分别为①、⑤、⑧,设计的测试用例如下:
测试数据期望结果覆盖的有效等价类
200211输入有效①、⑤、⑧
3)为每一个无效等价类设计一个测试用例,设计结果如下:
测试数据期望结果覆盖的无效等价类
95June无效输入②
20036无效输入③
2001006无效输入④
198912无效输入⑥
200401无效输入⑦
200100无效输入⑨
200113无效输入⑩
例4:
某软件规格说明书包含这样的要求:
第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。
解答:
根据题意,原因和结果如下:
原因:
1——第一列字符是A;
2——第一列字符是B;
3——第二列字符是一数字。
结果:
21——修改文件;
22——给出信息L;
23——给出信息M。
其对应的因果图如下:
11为中间节点;考虑到原因1和原因2不可能同时为1,因此在因果图上施加E约束。
⏹根据因果图建立判定表。
表中8种情况的左面两列情况中,原因①和原因②同时为1,这是不可能出现的,故应排除这两种情况。
表的最下一栏给出了6种情况的测试用例,这是我们所需要的数据。
✧对软件系统进行实际测试时,应该联合使用各种设计测试用例的方法,形成一种综合策略。
通常的做法是,用黑盒法设计基本的测试用例,再用白盒法补充一些必要的测试用例。
具体地说,可以使用下述策略结合各种方法:
<1>在任何情况下都应该使用边界值分析的方法。
经验表明,用这种设计方法设计出的测试用例暴露程序错误的能力最强。
注意,应该既包括输入数据的边界情况又包括输出数据的边界情况。
<2>必要时用等价划分法补充测试用例。
<3>必要时再用错误推测法补充测试用例。
<4>对照程序逻辑,检查已经设计出的测试用例。
可以根据对程序可靠性的要求采用不同的逻辑覆盖标准,如果现有测试用例的逻辑覆盖程度没有达到要求的覆盖标准,则应再补充一些测试用例。
2.软件测试包括哪些类型的测试?
这些测试之间的区别是什么?
参考答案:
软件测试包括单元测试、集成测试、系统测试和验收测试等。
单元测试集中于每一个独立的模块;
集成测试集中于模块的组装;
系统测试确保整个系统与系统的功能需求和非功能需求保持一致;
验收测试是用户根据验收标准(通常来自项目协议),在开发环境或模拟真实环境中执行的可用性、功能和性能测试。
一.软件测试目标与测试对象是什么
目标:
尽可能早一些找出软件缺陷,并确保其得以修复。
1.在给定时间内时限内尽可能多的发现缺陷和隐患
2.证实给定的软件产品满足其需求规格说明
3.用最低的成本和投入确认软件测试的质量
4.建立高质量的测试用例,完成有效的测试,提交有用的问题报告
5.为软件开发过程的改进提供数据支持
测试对象:
软件测试并不等于程序测试。
软件测试应该贯穿整个软件定义与开发整个期间。
因此需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应该是软件测试的对象。
在对需求理解与表达的正确性、设计与表达的正确性、实现的正确性以及运行的正确性的验证中,任何一个环节发生了问题都可能在软件测试中表现出来。
1.简单介绍几款单元测试工具(在网上查找),并进行简单比较
一、JTEST
2、优势:
1)使预防代码错误成为可能,从而大大节约成本,提高软件质量和开发效率
2)使单元测试——包括白盒、黑盒以及回归测试成为可能
3)使代码规范检查和自动纠正成为可能
4)鼓励开发团队横向协作来预防代码错误
3、特征:
1)通过简单的点击,自动实现代码基本错误的预防,这包括单元测试和代码规范的检查
2)生成并执行junit单元测试用例,对代码进行即时检查
3)提供了进行黑盒测试、模型测试和系统测试的快速途径
4)确认并阻止代码中不可捕获的异常、函数错误、内存泄漏、性能问题、安全弱点的问题
5)监视测试的覆盖范围
6)自动执行回归测试
7)支持DbC编码规范
8)检验超过350个来自java专家的开发规范
9)自动纠正违反超过160个编码规范的错误
10)允许用户通过图形方式或自动创建方式来自定义编码规范
11)支持大型团队开发中测试设置和测试文件的共享
12)实现和IBMWebsphereStudio/EclipseIDE的安全集成
4、价格:
昂贵
二、JMETER
2、特征:
JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、java对象、数据库和查询、ftp服务器或者其他的资源)。
JMeter用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况。
你可以用JMeter提供的图形化界面分析性能指标或者在高
负载情况下测试服务器/脚本/对象的行为。
3、价格:
未知
三、JUNIT
1、简介:
JUnit是一个开源的java测试框架,它是Xuint测试体系架构的一种实现。
在JUnit单元测试框架的设计时,设定了三个总体目标,第一个是简化测试的编写,这种简化包括测试框架的学习和实际测试单元的编写;第二个是使测试单元保持持久性;第三个则是可以利用既有的测试来编写相关的测试。
2、优势:
2.1)junit是完全Free的。
2.2)使用方便。
2.3)JUnit非常简单撰写测试应该很简单.
2.4)JUnit测试检验其结果并提供立即的回馈。
2.5)JUnit测试可以合成一个测试系列的层级架构。
2.6)撰写JUnit测试所费不多。
2.7)JUnit测试提升软件的稳定性。
2.8)JUnit测试是开发者测试。
2.9)JUnit测试是以Java写成的。
3、价格:
免费
1.怎么做好文档测试?
答:
仔细阅读,跟随每个步骤,检查每个图形,尝试每个示例,检查文档的编写是否满足文档编写的目的,内容是否齐全,正确,完善.标记是否正确.
2.白盒测试有几种方法?
总体上分为静态方法和动态方法两大类。
静态:
关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义
动态:
语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。
3.系统测试计划是否需要同行审批,为什么?
需要,系统测试计划属于项目阶段性关键文档,因此需要评审。
4.比较负载测试,容量测试和强度测试的区别?
负载测试:
在一定的工作负荷下,系统的负荷及响应时间。
强度测试:
在一定的负荷条件下,在较长时间跨度内的系统连续运行给系统性能所造成的影响。
容量测试:
容量测试目的是通过测试预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限值状态下没有出现任何软件故障或还能保持主要功能正常运行。
容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。
容量测试的目的是使系统承受超额的数据容量来发现它是否能够正确处理。
容量测试是面向数据的,并且它的目的是显示系统可以处理目标内确定的数据容量。
5.测试结束的标准是什么?
用例全部测试。
覆盖率达到标准。
缺陷率达到标准。
其他指标达到质量标准
6.描述软件测试活动的生命周期?
测试周期分为计划、设计、实现、执行、总结。
其中:
计划:
对整个测试周期中所有活动进行规划,估计工作量、风险,安排人力物力资源,安排进度等;
设计:
完成测试方案,从技术层面上对测试进行规划;
实现:
进行测试用例和测试规程设计;
执行:
根据前期完成的计划、方案、用例、规程等文档,执行测试用例。
总结:
记录测试结果,进行测试分析,完成测试报告。
7.当开发人员说不是BUG时,你如何应付?
开发人员说不是bug,有2种情况,一是需求没有确定,所以我可以这么做,这个时候可以找来产品经理进行确认,需不需要改动,3方商量确定好后再看要不要改。
二是这种情况不可能发生,所以不需要修改,这个时候,我可以先尽可能的说出是BUG的依据是什么?
如果被用户发现或出了问题,会有什么不良结果?
程序员可能会给你很多理由,你可以对他的解释进行反驳。
如果还是不行,那我可以给这个问题提出来,跟开发经理和测试经理进行确认,如果要修改就改,如果不要修改就不改。
其实有些真的不是bug,我也只是建议的方式写进TD中,如果开发人员不修改也没有大问题。
如果确定是bug的话,一定要坚持自己的立场,让问题得到最后的确认。
8.您认为做好测试用例设计工作的关键是什么?
白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果
黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。
不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题。
1测试的目的是什么?
测试的目的是找出软件产品中的错误,是软件尽可能的符合用户的要求。
当软件测试是不可能能够找出全部的错误的。
2.测试分为那几个阶段?
一般来说测试大体分为5个阶段:
单元测试、集成测试、确认测试、系统测试、验收测试
在测试过程中如果有需要还要进行回归测试。
3.单元测试的测试对象,目的、测试依据、测试方法?
测试对象是模块内部的程序错误;目的是消除局部模块逻辑和功能上的错误和缺陷;
测试依据是模块的详细设计;测试方法采用白盒测试。
4.集成测试的测试对象,目的、测试依据、测试方法?
集成测试的测试对象是模块间的组装和调用关系;
目的是找出与软件设计相关的程序结构模块调用关系,模块间接口方面问题;
测试依据是概要设计;测试方法采用灰盒测试。
5.系统测试的测试对象,目的、测试依据、测试方法?
系统测试的测试对象是整个系统;测试的目的是对整个系统进行测试;
测试的依据是需求规格说明书;测试方法黑盒测试。
6.测试覆盖的类型
测试覆盖的类型有:
语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖
7.性能测试的分类
分为:
性能测试、负载测试、压力测试、容量测试
负载测试与压力测试可以结合进行。
8.列举您熟悉的主流自动化测试工具
我熟悉的自动化测试工具有:
基于web的测试管理工具TestDirector、配置管理工具VSS、QTP以及性能测试工具LoadRunner
9.编辑sql语句时,年月日型时间字段如何表达
加引号
13.c/s和b/s结构的软件进行测试时有何不同
C/S又称Client/Server或客户/服务器模式。
服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统。
客户端需要安装专用的客户端软件。
B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser)。
浏览器通过WebServer同数据库进行数据交互。
14.安全测试的后台是什么
前台的安全性就是安全性方面的问题。
例如:
前台登录系统时输入用户名密码错误能否进入系统,各个组的人员具有的权限是否被区分?
后台的安全性指:
对于数据库及后台管理,是否只有特定的人员有读写及其他操作的权力?
17.页面中有一个输入日期的输入框和一个输入身份证号的输入框,如何进行用例设计?
输入日期的输入框要考虑边界值、输入非法数据、非数字等
省份证输入框要考虑18位省份证、16位身份证、非18、16位的数据、汉字、字母、非法数据
18.测试和质量保证有什么区别你的看法
质量保证是对软件制作过程的制作质量进行管理,看是否符合公司的规定。
软件测试是对软件产品的质量本身进行测试,是从技术方面出发测试软件质量
19.用过什么缺陷管理工具?
流程是什么有什么能改进的
我所熟悉的是TD
流程是讲测试计划、方案、测试用例录入TD,在TD上执行测试用例记录缺陷,并对bug进行跟踪。
20.你有没有用过QTP做项目,QTP的工作原理
我有用QTP做过项目
QTP的工作原理是执行重复的手动测试,
首先制定测试计划再根据测试计划创建测试脚本,然后对脚本进行优化增强测试脚本的能接下来运行脚本分析测试的结果
21.什么是白盒测试?
白盒测试的工具有哪些?
白盒测试是测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有的逻辑路径进行测试。
工具有:
RationalPurify、RationalQuantify、RationalPurecoveage
24.我手上这支笔,请你根据这支笔设计测试用例
首先我要测它的外观、颜色是否符合要求、她所占的空间是多大、是否环保、接下来测它的质量、这支笔是否能够写字流畅、写出的自得颜色是否符合要求、能使用多长时间等
25.BUG报告包括那些内容
Bug出现的位置、可重现的步骤、所使用的数据、bug的截图、发现人及日期。
27.W和H模型的区别
W模型强调的是测试伴随整个软件开发周期,而且测试的对象不仅是程序,需求也需要进行测试,测试与开发是同步进行的。
H模型是讲测试活动玩却的独立出来,形成了完全独立的流程,可以实现迭代而W模型不支持迭代这是两者最打的区别。
28.没有任何说明书,如何进行测试?
首先是通过对软件测使用来熟悉整个软件,接着是与开发沟通掌握软件的特性并一一记录下来,作为测试的依据。
单元测试策略主要有哪些?
并试描述这些策略?
单元测试策略主要有三种方式:
1.自顶向下的单元测试策略:
从顶层调用的单元做成桩模块;对第二层测试,使用上面已测试的单元做驱动模块;依次类推,直到全部单元测试结束。
2.自底向上的单元测试策略:
先对模块调用的最底层模块进行测试,模拟调用该模块的模块为驱动模块;其次,对上一层模块进行单元测试,用已经被测试过的模块做桩模块,依次类推,直到全部单元测试结束。
3.孤立测试的单元测试策略:
无需考虑每个模块与其他模块之间的关系,分别为每个模块单独设计桩模块和驱动模块,逐一完成所有单元模块的测试。
见的测试用例设计方法都有哪些?
请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。
1.等价类划分
常见的软件测试面试题划分等价类:
等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:
测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:
有效等价类和无效等价类.
2.边界值分析法
边界值分析方法是对等价类划分方法的补充。
测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误。
使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.
3.错误推测法
基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法.
错误推测方法的基本思想:
列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例.例如,在单元测试时曾列出的许多在模块中常见的错误.以前产品测试中曾经发现的错误等,这些就是经验的总结。
还有,输入数据和输出数据为0的情况。
输入表格为空格或输入表格只有一行.这些都是容易发生错误的情况。
可选择这些情况下的例子作为测试用例.
4.因果图方法
前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系,相互组合等.考虑输入条件之间的相互组合,可能会产生一些新的情况.但要检查输入条件的组合不是一件容易的事情,即使把所有输入条件划分成等价类,他们之间的组合情况也相当多.因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例.这就需要利用因果图(逻辑模型).因果图方法最终生成的就是判定表.它适合于检查程序输入条件的各种组合情况.
5.正交表分析法
有时候,可能因为大量的参数的组合而引起测试用例数量上的激增,同时,这些测试用例并没有明显的优先级上的差距,而测试人员又无法完成这么多数量的测试,就可以通过正交表来进行缩减一些用例,从而达到尽量少的用例覆盖尽量大的范围的可能性。
6.场景分析方法
指根据用户场景来模拟用户的操作步骤,这个比较类似因果图,但是可能执行的深度和可行性更好。
您认为做好测试用例设计工作的关键是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 试题 笔试 面试 整理 最终