测试基础理论.docx
- 文档编号:25433930
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:46
- 大小:68.61KB
测试基础理论.docx
《测试基础理论.docx》由会员分享,可在线阅读,更多相关《测试基础理论.docx(46页珍藏版)》请在冰豆网上搜索。
测试基础理论
四、名词解释题
1.软件测试:
软件测试指为了发现软件中的错误而执行软件的过程。
它的目标是尽可能多地发现软件中存在的错误,将测试结果作为纠错的依据。
2.静态测试:
指被测试的程序不在机器上运行,而是采用人工检测和计算机辅助静态分析的手段对程序进行检测。
3.动态测试:
指通过运行程序发现错误
4.黑盒测试:
指把测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求,又称为功能测试或数据驱动测试。
5.白盒测试:
把测试对象看成一个打开的盒子,测试人员需了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。
6.语句覆盖:
设计足够的测试用例,使被测程序中每个语句至少执行一次
7.判定覆盖:
指设计足够的测试用例,使被测程序中每个判定表达式至少获得一次“真”值或“假”值,从而使程序的每个分支至少都通过一次,因此判定覆盖又称分支覆盖
8.条件覆盖:
指设计足够测试用例,使判定表达式中每个条件的各种可能的值至少出现一次。
9.判定/条件覆盖:
设计足够的测试用例,使得判定表达式中每个条件的所有可能取值至少出现一次,并使每个判定表达式所有可能的结果也至少出现一次。
10.条件组合覆盖:
指设计足够的测试用例,使得每个判定表达式中条件的各种可能的值的组合都至少出现一次。
11.路径覆盖:
设计足够的测试用例,覆盖被测程序中所有可能的路径
12.测试用例:
指为寻找程序中的错误而精心设计的一组测试数据
13.驱动模块:
指用来模拟被测模块的上级调用模块,其功能比真正的上级模块简单得多,它只完成接受测试数据,以上级模块调用被测模块的格式驱动被测模块,接收被测模块的测试结果并输出。
14.桩模块:
桩模块指用来代替被测试模块所调用的模块,其作用是返回被测试模块所需的信息。
五、简答题
1.白箱测试和黑箱测试是什么?
什么是回归测试?
2.单元测试、集成测试、系统测试的侧重点是什么?
3.设计用例的方法、依据有那些?
4.一个测试工程师应具备那些素质和技能?
5.集成测试通常都有那些策略?
6.你用过的测试工具的主要功能、性能及其他?
7.一个缺陷测试报告的组成
8.基于WEB信息管理系统测试时应考虑的因素有哪些?
9.软件本地化测试比功能测试都有哪些方面需要注意?
10.软件测试项目从什么时候开始,?
为什么?
11.需求测试注意事项有哪些?
12.简述一下缺陷的生命周期
13.测试分析测试用例注意(事项)?
14、软件测试的定义,测试工作是枯燥反复的,你是如何理解的?
黑盒,白盒,回归,压力测试的定义.
15、winrunner,loadrunner是什么,区别
16.用户输入一个整数.系统判断,并输出是负数还是非负数,请设计测试用例.
17、怎么划分缺陷的等级?
18、怎么评价软件工程师?
19、软件工程师的素质是什么?
20、怎么看待软件测试?
21、软件测试是一个什么样的行业?
22、测一个三角形是普通三角形、等腰三角形、等边三角形的流程图,测试用例。
23、写出你常用的测试工具。
24、loadrunner分哪三部分?
25、希望以后的软件测试是怎么样的一个行业?
26、软件测试项目从什么时候开始?
我答:
从软件项目的需要分析开始。
问:
为什么从需求分析开始?
有什么作用?
27、什么是兼容性测试?
兼容性测试侧重哪些方面,请按照优先级用矩阵图表列出。
(这题的第二问我不会答,所以原题目记得不是很清楚,大家能看明白问什么就好)
28、我现在有个程序,发现在WIN98上运行得很慢,怎么判别是程序存在问题还是软硬件系统存在问题?
29、请根据以下程序片段,设计最少的测试用例实现条件覆盖
If((A>1)AND(B=0))ThenX=X/A65c712c49df56926c2fa
If((A=2)OR(X>1))ThenX=X+1
Printf("X=%d
",x)
30、一套完整的测试应该由哪些阶段组成?
分别阐述一下各个阶段。
31、请列出关于一个印有文字的水杯,你能想到的测试用例
32、白箱测试和黑箱测试是什么?
什么是回归测试?
回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。
自动回归测试将大幅降低系统测试、维护升级等阶段的成本。
回归测试包括两部分:
函数本身的测试、其他代码的测试。
33、单元测试、集成测试、系统测试的侧重点是什么?
单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。
集成测试,也叫组装测试或联合测试。
在单元测试的基础上,将所有模块按照设计要求,组装成为子系统或系统,进行集成测试。
实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。
程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。
系统测试是将经过测试的子系统装配成一个完整系统来测试。
它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。
34、设计用例的方法、依据有那些?
白盒测试:
逻辑覆盖法,主要包括语句覆盖,判断覆盖,条件覆盖,判断-条件覆盖,路径覆盖
黑盒测试:
等价划分类,边界值分析,错误推测法。
35、集成测试通常都有那些策略?
(1)、在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失;
(2)、各个子功能组合起来,能否达到预期要求的父功能;
(3)、一个模块的功能是否会对另一个模块的功能产生不利的影响;
(4)、全局数据结构是否有问题;
(5)、单个模块的误差积累起来,是否会放大,从而达到不可接受的程度。
36、一个缺陷测试报告的组成
缺陷的标题,缺陷的基本信息,复现缺陷的操作步骤,缺陷的实际结果描述,期望的正确结果描述,注释文字和截取的缺陷图象。
37、基于WEB信息管理系统测试时应考虑的因素有哪些?
38、软件本地化测试比功能测试都有哪些方面需要注意?
39、软件本地化测试的目的:
40、软件本地化测试的测试策略:
(1).本地化软件要在各种本地化操作系统上安装并测试。
(2).源语言软件安装在另一台相同源语言操作系统上,作为对比测试。
(3).重点测试因本地化引起的软件的功能和软件界面的错误。
(4).测试本地化软件的翻译质量。
5.手工测试和自动测试相结合。
41、需求测试注意事项有哪些?
一个良好的需求应当具有一下特点:
完整性:
每一项需求都必须将所要实现的功能描述清楚,以使开发人员获得设计和实现这些功能所需的所有必要信息。
正确性:
每一项需求都必须准确地陈述其要开发的功能。
一致性:
一致性是指与其它软件需求或高层(系统,业务)需求不相矛盾。
可行性:
每一项需求都必须是在已知系统和环境的权能和限制范围内可以实施的。
无二义性:
对所有需求说明的读者都只能有一个明确统一的解释,由于自然语言极易导致二义性,所以尽量把每项需求用简洁明了的用户性的语言表达出来。
健壮性:
需求的说明中是否对可能出现的异常进行了分析,并且对这些异常进行了容错处理。
必要性:
“必要性”可以理解为每项需求都是用来授权你编写文档的“根源”。
要使每项需求都能回溯至某项客户的输入,如UseCase或别的来源。
可测试性:
每项需求都能通过设计测试用例或其它的验证方法来进行测试。
可修改性:
每项需求只应在SRS中出现一次。
这样更改时易于保持一致性。
另外,使用目录表、索引和相互参照列表方法将使软件需求规格说明书更容易修改。
可跟踪性:
应能在每项软件需求与它的根源和设计元素、源代码、测试用例之间建立起链接链,这种可跟踪性要求每项需求以一种结构化的,粒度好(fine-grained)的方式编写并单独标明,而不是大段大段的叙述。
42、测试分析测试用例注意(事项)?
43、简述软件生命周期有那些阶段
软件生命周期——需求分析——软件设计——程序编码——软件测试——运行维护
44、CMM软件成熟度模型有几个级别,分别是什么。
5个级别,由低到高分别是:
CMM1初始级
CMM2可重复级
CMM3已定义级
CMM4已管理级
CMM5优化级
45、一个典型的B/S结构有哪些组件构成
所谓B/S结构,就是只安装维护一个服务器(Server),而客户端采用浏览器(Browse)运行软件,即浏览器/服务器结构。
46、黑盒测试中设计测试用例一般有哪几种方法
边界值、等价类划分、穷举法、因果图、场景法
47、Bug管理和版本控制一般用到哪些工具。
BUG管理:
TD或QC或bugzilla
版本控制:
CVS、SVN、CSS
48简述性能测试的一般步骤和目的?
步骤:
步骤一:
性能测试与数据收集
步骤二:
性能瓶颈分析
步骤三:
性能调优解决方案
目的:
最终的目的是最大限度地满足用户需求;
评价系统当前性能;
预测系统未来性能;
寻找瓶颈,优化性能;
49、在LR中使用IP欺骗的作用是什么?
贴近用户实际使用环境。
仿真效果好;
有些系统不兼容相同IP的访问。
50、说出软件测试过程V模型,并说明它存在的缺点,可以画图。
§测试是开发之后的一个阶段。
§测试的对象就是程序本身。
§实际应用中容易导致需求阶段的错误一直到最后系统测试阶段才被发现。
51、有两个小组对同一个软件进行测试(测试的时间不清楚,软件的规模不清楚),A组测试出50个Bug;B组测试出55个Bug,提交汇总后发现其中有25个是相同的;我的问题是:
请你估算一下这个软件还有多少个Bug没被发现?
先说这个问题的答案是30,怎么算出来的呢?
可以按照下面的公式:
可以估计出的软件的缺陷共有:
50*55/25=110个
目前已经发现的有:
50+55-25=80个
没有发现的bug有:
110-80=30个
这个公式又是怎么得出来的呢,可以看看下面的推导过程:
B---组A和组B都发现的缺陷数
N1---组A发现的缺陷数
N2---组B发现的缺陷数
T---软件所有的缺陷数
根据原理:
组A发现的缺陷数占总缺陷数的比例等于组A和组B都发现的缺陷数占组B发现的缺陷数的比例,即N1/T=B/N2
上面的公式改变形式即:
T=N1*N2/B(软件总bug数)
有了上面的公式再计算其它问题就容易了。
52、测试人员在软件开发过程中的任务是什么?
(5分)
53、在您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?
如何提交高质量的软件缺陷(Bug)记录?
(6分)
54、黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点(5分)
55、根据自己的理解回答什么是软件测试,软件测试分为哪几个阶段。
(5分)
56、根据自己的理解什么是测试用例和测试计划,设计一个测试用例应当从哪几方面考虑?
(10分)
57、什么是软件质量保证?
软件质量保证人员与开发人员的关系如何?
(10分)
58、输入三个整数,判断三个整数能否构成一个三角形,请用黑盒测试方法中的一种设计出相应的测试用例并详细说明所使用的黑盒测试方法。
(11分)
59、根据一下界面,编写相应的测试用例。
(10分)
60、请列出性能测试中关注的参数指标(1-5个):
61、简述软件系统交易执行相应时间(RT,responseTime)的概念
62、您所熟悉的测试用例设计方法有哪些?
63、您在从事性能测试工作时,是否使用过一些测试工具?
如果有,请试述该工具的工作原理,并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的?
64、请根据下图写出你设计测试用例的策略并举出例子?
用户名:
_____________由数字、字母、下划线组成,长度6-16位
密码:
_____________请输入6-32位密码,区分大小写
再次输入密码:
_______
176、考官从办公室(面试现场)随意选取一个简单物品,假定是一个喝水的带广告图案的花纸杯,让应聘人对它设计出尽可能多的测试用例。
测试项目:
杯子
需求测试:
查看杯子使用说明书
界面测试:
查看杯子外观
功能度:
用水杯装水看漏不漏;水能不能被喝到
安全性:
杯子有没有毒或细菌
可*性:
杯子从不同高度落下的损坏程度
可移植性:
杯子再不同的地方、温度等环境下是否都可以正常使用
兼容性:
杯子是否能够容纳果汁、白水、酒精、汽油等
易用性:
杯子是否烫手、是否有防滑措施、是否方便饮用
用户文档:
使用手册是否对杯子的用法、限制、使用条件等有详细描述
疲劳测试:
将杯子盛上水(案例一)放24小时检查泄漏时间和情况;盛上汽油(案例二)放24小时检查泄漏时间和情况等
压力测试:
用根针并在针上面不断加重量,看压强多大时会穿透
跌落测试:
杯子加包装(有填充物),在多高的情况摔下不破损
震动测试:
杯子加包装(有填充物),六面震动,检查产品是否能应对恶劣的铁路\公路\航空运输
测试数据:
测试数据具体编写此处略(最讨厌写测试数据了)。
其中应用到:
场景法、等价类划分法、因果图法、错误推测法、边界值法等方法
期望输出:
该期望输出需查阅国标、行标以及使用用户的需求
说明书测试:
检查说明书书写准确性
给大家提三个产品:
1.手机2.电饭锅3.电梯
177、什么是软件测试:
为什么要进行软件测试?
软件测试与调试的区别?
答案:
(1)软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。
执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。
(2)因为没有经过测试的软件很难在发布之前知道该软件的质量,就像ISO质量认证一样,软件同样也需要质量的保证,这个时候就需要在团队中开展软件测试的工作。
在测试的过程发现软件中存在的问题,及时让开发人员得知并修改问题,在即将发布时,从测试报告中得出软件的质量情况。
(3)在软件开发的过程中,调试和测试是两个不同的过程,分别由程序开发人员和测试人员来完成。
第一,调试的过程是随机的不可重复的;而测试的过程是有计划的、可以重复的过程。
第二,调试的目的是为了隔离和确认问题的所在,并加以解决,使得程序能够正常运行;而测试的目的是为了找出与软件实现定义的规格和标准不符合的问题,保证软件能都满足用户需求。
但二者也有相同之处,最终目的都是为了提高软件质量。
178、描述测试计划的构成及包含的内容与实施过程?
答案:
(1)软件测试计划是指导测试过程的纲领性文件,包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。
借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。
(2)按照测试计划中的安排,配置测试环境,根据测试计划中选取的测试方法,选取测试功能点,设计测试用例,再由测试人员进行测试,并记录测试过程和缺陷报告。
179、按软件的开发过程划分,测试的方法有那些?
答案:
单元测试、集成测试、系统测试、验收测试
180.功能测试的测试范围包括?
答案:
功能性测试、可靠性测试、易用性测试、可维护性测试、可移植性测试、中文特性测试、标准符合性测试、用户文档评审。
181.α测试与β测试的区别?
静态测试与动态测试的区别?
答案:
(1)Alpha测试(α测试)是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试;Beta测试(β测试)是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。
开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。
总而言之,前者是内部模拟上线,后者是真正上线,让用户参与测试。
(2)静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。
对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。
静态方法通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。
静态测试结果可用于进一步的查错,并为测试用例选取提供指导。
182.什么是测试用例?
测试用例的构成?
测试用例的设计方法(5种以上),并举例说明?
编写测试用例的目的?
答案:
(1)测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。
(2)测试用例的构成:
输入数据、执行步骤、预期结果
(3)测试用例的设计方法:
●白盒技术:
语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖、基本路径覆盖
●黑盒技术:
等价类划分、边界值分析、错误推测、因果图、综合策略
(4)设计用例在于明确验证需求(功能)的输入数据和步骤,书面化便于重现BUG,另一方面用于回归测试。
无论ISO9000还是CMM都要求做任何事情要有记录、书面文档。
如果不设计用例,那是随机测试,很难度量是否做的完全。
183.简单描述一个测试的执行流程包括哪些,并对各个过程进行描述。
答案:
(1).需求分析阶段:
只要就是对业务的学习,分析需求点。
(2).测试计划阶段:
测试组长就要根据SOW开始编写《测试计划》,其中包括人员,软件硬件资源,测试点,集成顺序,进度安排和风险识别等内容。
(3).测试设计阶段:
测试方案一般由对需求很熟的高资深的测试工程师设计,测试方案要求根据《SRS》上的每个需求点设计出包括需求点简介,测试思路和详细测试方法三部分的方案。
《测试方案》编写完成后也需要进行评审。
(4).测试方案阶段:
主要是对测试用例和规程的设计。
测试用例是根据《测试方案》来编写的,通过《测试方案》阶段,测试人员对整个系统需求有了详细的理解。
这时开始编写用例才能保证用例的可执行和对需求的覆盖。
测试用例需要包括测试项,用例级别,预置条件,操作步骤和预期结果。
其中操作步骤和预期结果需要编写详细和明确。
测试用例应该覆盖测试方案,而测试方案又覆盖了测试需求点,这样才能保证客户需求不遗漏。
同样,测试用例也需要评审。
(5).测试执行阶段:
执行测试用例,及时提交有质量的Bug和测试日报,测试报告等相关文档。
184.什么是缺陷?
如何判断一个缺陷?
如何描述一个缺陷?
绘制缺陷的处理流程,并标明每个过程的跟踪角色;若现在要加入一个待讨论(discuss)状态,需要在那个阶段加入?
(待讨论状态:
开发人员和测试人员无法达到共识,需要对此类的问题进行会议讨论,讨论结果,若是缺陷则重新进行缺陷跟踪流程,若不是缺陷则关闭)
答案:
1)缺陷常常又被叫做Bug。
所谓缺陷,即为计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。
2)判断缺陷:
发现问题后先参考需求说分析和产品说明书,判断实际结果是否符合预期结果,符合就不是缺陷,不符合则根据计划中的缺陷划分标准判断是否是缺陷,如果没有文档依据,可以根据用户的一般使用习惯,来确认是否是缺陷。
3)如何描述缺陷:
●要单一准确,每个报告只针对一个软件缺陷;
●可以再现,提供缺陷的精确操作步骤,使开发人员容易看懂;
●完整统一,提供完整、前后统一的软件缺陷的步骤和信息;
●短小简练,使用关键字,使软件缺陷的标题的描述短小精炼同时准确解释产生缺陷的现象;
●不做评价,要不带个人观点,客观描述
(4)
185.给你一个垃圾桶,考虑如何测试它?
并说出你的依据。
答案:
需求测试:
查看垃圾桶使用说明书
界面测试:
查看垃圾桶外观
功能度:
用垃圾桶装垃圾,看是否可用
安全性:
垃圾桶有没有毒或者是否易对人造成伤害
可靠性:
垃圾桶从不同高度落下的损坏程度
可移植性:
垃圾桶在不同的地方、温度等环境下是否都可以正常使用
兼容性:
垃圾桶是否能够容纳固体、液体、易碎垃圾等
易用性:
垃圾桶是否能易放垃圾
用户文档:
使用手册是否对垃圾桶的用法、限制、使用条件等有详细描述
疲劳测试:
将垃圾桶盛上液体垃圾放24小时检查泄漏时间和情况;盛上固体垃圾放24小时检查泄漏时间和情况等
压力测试:
不断往垃圾桶内放垃圾,看加到多少重量的时候垃圾桶破裂
跌落测试:
垃圾桶加包装(有填充物),在多高的情况下摔下不破损
震动测试:
垃圾桶加包装(有填充物),六面震动,检查产品是否能应对恶劣的铁路\公路\航空运输
186.谈谈你对测试的理解,可从各方面去展开讨论。
答案:
软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。
执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。
测试是为了发现程序中的错误而执行程序的过程,好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案,成功的测试是发现了至今为止尚未发现的错误的测试。
187.用边界值分析法,假定X为整数,范围是【10,100】,列出X在测试中所取的值。
答案:
9、10、11、99、100、101;如果同时考虑单缺陷原理,则为9、10、100、101。
188.针对以下C语言程序段,对于(MaxNum,Type)的对值,写出满足判定覆盖的测试用例。
While(MaxNum-->0)
{
If(10==type)
x=y*2;
Elseif(100==type)
x=y+10
Else
x=y-20;
}
答案:
MaxNum-->0为判定M,Type==10为判定P,Type==100为判定Q
测试用例:
用例编号
输入数据
执行路径
输出
测试用例1
MaxNum=0,Type=1
M的N分支
无
测试用例2
MaxNum=1,type=10
M的Y分支,P的Y分支
x=y*2
测试用例3
MaxNum=1,type=100
M的Y分支,P的N分支,Q的N分支
x=y+10
测试用例4
MaxNum=1,type=1
M的Y分支,P的N分支,Q的N分支
x=y-20
189.V模型是重要的测试模型,请描述V模型中,各个重要阶段的对应关系,并画出他们。
答案:
需求分析验收测试
概要设计系统测试
详细设计集成测试
编码单元测试
190.缺陷管理软件是测试人员常用的工作平台,你能列举出几款目前主流的缺陷管理软件么?
另外,请说明一下缺陷管理软件大致的工作流程是怎样的?
答案:
主要有TD、QC、bugzilla等。
以TD为例,主要分为四个阶段,需求定义(SpecifyRequirements):
分析应用程序并确定测试需求;测试计划(PlantTests):
基于测试需求,建立测试计划;测试执行(ExecuteTests):
创建测试集(TestSet)并执行测试;缺陷跟踪(TrackDefects):
报告程序中产生的缺陷并跟踪缺陷修复的全过程。
191.指出下面界面可能存在的问题,并写出功能测试用例。
答案:
存在的问题:
1)确认和取消按钮的顺序与用户习惯相反
2)窗口只有关闭项,没有最小化,最大化项
测试用例:
(假设已经根据需求取得密码
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 测试 基础理论