软件测试试题实例.docx
- 文档编号:29768986
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:21
- 大小:72.91KB
软件测试试题实例.docx
《软件测试试题实例.docx》由会员分享,可在线阅读,更多相关《软件测试试题实例.docx(21页珍藏版)》请在冰豆网上搜索。
软件测试试题实例
软件测试试题实例
1.什么是软件测试?
使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差异
2.软件测试的目的是什么?
软件测试的目的在于发现错误;一个好的测试用例在于发现从前未发现的错误;一个成功的测试是发现了从前未发现的错误的测试。
3.软件测试的目标?
软件测试以检验是否满足需求为目标。
4.什么是软件缺陷?
满足下列五个规则之一才称为软件缺陷:
1)软件未达到产品说明书标明的功能。
2)软件出现了产品说明书指明不会出现的错误。
3)软件功能超出产品说明书指明的范围。
4)软件未达到产品说明书虽未指出但应该达到的目标。
5)软件测试人员认为软件难以理解、不易使用、运行速度缓慢,或者最终用户认为不好。
5.什么黑盒测试?
黑盒测试是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。
因此黑盒测试又叫功能测试或数据驱动测试。
6.黑盒测试方法都包括哪些?
等价类划分、边界值分析、决策分析法、因果图分析、错误推测法等。
7.什么是等价类划分?
把所有可能的输入数据(有效的和无效的)划分成若干个等价的子集(称为等价类),使得每个子集中的一个典型值在测试中的作用与这一子集中所有其它值的作用相同.可从每个子集中选取一组数据来测试程序
8.什么是边界值分析法?
边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法.通常边界值分析法是作为对等价类划分法的补充
9.什么情况下使用决策分析法?
在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:
针对不同逻辑条件的组合值,分别执行不同的操作。
决策表很适合于处理这类问题
10.你是如何利用决策分析法设计用例?
(1)确定规则的个数。
有n个条件的决策表有2n个规则(每个条件取真、假值)。
(2)列出所有的条件桩和动作桩。
(3)填入条件项。
(4)填入动作项,得到初始决策表。
(5)简化决策表,合并相似规则。
11.什么是因果图分析法?
因果图法是基于这样的一种思想:
一些程序的功能可以用判定表(或称决策表)的形式来表示,并根据输入条件的组合情况规定相应的操作。
12.你是如何利用因果图分析法来设计用例的?
(1)根据程序规格说明书描述,分析并确定因(输入条件)和果(输出结果或程序状态的改变),画出因果图。
(2)将得到的因果图转换为判定表。
(3)为判定表中每一列所表示的情况设计一个测试用例。
13.因果图分析法中用到的五种约束分别是什么?
E约束(异):
a和b中最多有一个可能为1,即a和b不能同时为1。
I约束(或):
a、b、c中至少有一个必须为1,即a、b、c不能同时为0。
O约束(唯一):
a和b必须有一个且仅有一个为1。
R约束(要求):
a是1时,b必须是1,即a为1时,b不能为0。
M约束(强制):
若结果a为1,则结果b强制为0
14.什么是测试用例?
所谓测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果;测试用例是执行测试的最小实体。
15.你觉得有必要写测试用例么,写测试用例的作用有哪些?
在开始实施测试之前设计好测试用例,可以避免盲目测试并提高测试效率。
测试用例的使用令软件测试的实施重点突出、目的明确。
16.你知道软件生命的周期么?
包括哪些阶段?
一个软件生命周期包括制定计划、需求分析定义、软件设计、程序编码、软件测试、软件运行、软件维护、软件停用等8个阶段
17.软件测试的对象是什么?
软件开发过程中所产生的需求规格说明、概要设计规格说明、详细设计规格说明以及源程序都是软件测试的对象
18.软件测试是否等于程序测试?
不是,软件测试贯串于软件定义和开发的整个过程,软件开发过程中所产生的需求规格说明、概要设计规格说明、详细设计规格说明以及源程序都是软件测试的对象。
19.软件测试涉及的关键问题包括哪些方面?
(1)测试由谁来执行。
(2)测试什么。
(3)什么时候进行测试。
(4)怎样进行测试。
20.软件测试的原则包括哪些?
(1)应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭;
(2)测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成;
(3)程序员应当避免检查自己的程序;
(4)在设计测试用例时,应当包括合理的输入条件和不合理的输入条件;
21.软件测试按照开发阶段划分为哪几类?
单元测试、集成测试、系统测试、确认测试、验收测试。
23.按照测试技术来分测试分哪几类?
白盒测试、黑盒测试、灰盒测试。
24.什么是白盒测试和灰盒测试?
白盒测试又称为结构测试、逻辑驱动测试或基于程序的测试,一般用来分析程序的内部结构。
灰盒测试介于白盒测试和黑盒测试之间。
25.谈谈黑盒测试的特点?
优点?
(1)黑盒测试与软件的具体实现过程无关,在软件实现的过程发生变化时,测试用例仍然可以使用。
(2)黑盒测试用例的设计可以和软件实现同时进行,这样能够压缩总的开发时间。
26.黑盒测试主要能够发现哪些方面的问题?
是否有不正确或遗漏了的功能?
在接口上,输入能否正确地接受?
能否输出正确的结果?
是否有数据结构错误或外部信息访问错误?
性能上是否能够满足要求?
是否有初始化或终止性错误?
基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法
常用的错误推测法有:
输入非法数据、默认值的测试、更改输出属性的测试、文件类型测试、文件超载测试、介质忙或者介质损坏等测试法。
30.你选择测试方法的原则是什么?
(1)首先采用等价类划分法编写测试用例必须考虑正常值与异常值的情况
(2)必要时采用边界值分析法补充测试用例。
(3)采用错误推断法再追加测试用例。
(4)对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度。
如果没有达到要求的覆盖标准,则应当再补充更多的测试用例。
(5)如果程序的功能说明中含有输入条件的组合情况,则应一开始就选用因果图法。
31.设计测试用例的原则有哪些?
测试用例的代表性、测试结果的可判定性、测试结果的可再现性
32.测试用例模板的主要要素有哪些?
标识符:
惟一标识每一个测试用例
测试项:
准确的描述所需要测试的项及其特征
测试环境要求:
表征执行该测试用例需要的测试环境
输入标准:
执行测试用例的输入需求(这些输入可能包括数据、文件或者操作)
输出标准:
按照指定的环境和输入标准得到的期望输出结果
33.软件测试的过程有哪些?
测试计划、测试设计、测试执行、测试总结
34.写测试计划的主要任务是什么?
1)对需求规格说明书仔细研究
2)确定软件测试的范围
3)确定软件测试的技术要求
4)分析测试需求,确定被测试软件的功能和特性
35.测试计划中的5W1H什么意思?
Why、What、Where、When、Who、How,其中Why主要指测试目的。
What指测试范围即测试内容、Where指测试环境、When指测试的时间阶段安排、Who指测试资源、How指测试策略。
36.测试总结主要是总结哪些方面内容的?
1)总结测试状态
2)总结软件状态
37.单元测试主要测试内容?
模块接口、局部数据结构、边界条件、独立的路径和错误处理。
38.什么是集成测试?
是指每个模块完成单元测试后,需要按照设计时确定的结构图,将他们连接起来,进行集成测试,集成测试也称为综合测试
39.集成测试的两种方法?
非增量式集成测试、增量式集成测试
40.什么是非增量式集成测试?
对所有模块进行个别的单元测试后,按照程序结构图将各模块连接起来,把连接后的程序当作一个整体进行测试。
41.什么增量式集成测试?
逐次将未曾集成测试的模块和已经集成测试的模块(或子系统)结合成程序包,再将这些模块集成为较大系统,在集成的过程中边连接边测试,以发现连接过程中产生的问题。
42.什么是自顶而下增量式测试?
自顶向下增量式测试表示逐步集成和逐步测试是按照结构图自上而下进行的,即模块集成的顺序是首先集成主控模块(主程序),然后依照控制层次结构向下进行集成。
从属于主控模块的按深度优先方式(纵向)或者广度优先方式(横向)集成到结构中去。
43.谈谈非增量式集成测试、增量式集成测试,哪个好些?
非增量式测试的方法是先分散测试,然后集中起来再一次完成集成测试。
假如在模块的接口处存在错误,只会在最后的集成测试时一下子暴露出来。
增量式测试是逐步集成和逐步测试的方法,把可能出现的差错分散暴露出来,便于找出问题和修改。
而且一些模块在逐步集成的测试中,得到了较多次的考验,因此,可能会取得较好的测试效果。
结论:
增量式测试要比非增量式测试具有一定的优越性。
44.什么是回归测试?
在集成测试策略的环境中,回归测试是对某些已经进行过的测试的某些子集再重新进行一遍,以保证上述改变不会传播无法预料的副作用或引发新的问题。
45.什么是确认测试?
确认测试也称为合格性测试,是检验所开发的软件是否能按用户提出的要求进行。
46.请您谈一谈为什么要进行系统测试?
由于软件只是计算机系统中的一个组成部分,软件开发完成之后,最终还要和系统中的硬件系统、某些支持软件、数据信息等其他部分配套运行。
因此,在投入运行前要完成系统测试,以保证各组成部分不仅能单独的得到检验,而且在系统各部分协调工作的环境下也能正常工作。
47.你知道哪几种系统测试的方法?
恢复测试、安全测试、强度测试、性能测试、正确性测试、可靠性测试、兼容性测试、Web测试
48.安全性测试你一般从哪几方面做测试?
用户管理和访问控制、通信加密、安全日志测试
49.什么是兼容性测试?
软件兼容性测试是检测各软件之间能否正确地交互和共享信息,其目标是保证软件按照用户期望的方式进行交互,使用其它软件检查软件操作的过程。
50.Web站点的测试一般测试哪些内容?
(1)文字测试
(2)链接测试
(3)图形、图像测试
(4)表单测试
(5)动态内容测试
(6)数据库测试
(7)服务器性能及负载测试
(8)安全性测试
51.什么是验收测试?
验收测试,系统开发生命周期方法论的一个阶段,这时相关的用户和/或独立测试人员根据测试计划和结果对系统进行测试和接收。
它让系统用户决定是否接收系统。
52.验收测试一般有哪些方法?
正式验收、非正式验收活Alpha测试、Beta测试。
53.什么是Alpha测试、Beta测试?
Alpha测试由用户在开发者的场所进行,并且在开发者对用户的“指导”下进行测试。
开发者负责记录发现在错误和使用中遇到的问题。
总之,Alpha测试是在受控的环境中进行的。
Beta测试由软件的最终用户们在一个或多个客房场所进行。
Beta测试是软件在开发者不能控制的环境中的“真实”应用。
54.什么是冒烟测试?
冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。
冒烟测试的执行者是版本编译人员
55.对文档的测试主要包括哪些内容?
(1)检查产品说明书属性
(2)检查是否完整(3)检查是否准确(4)检查是否精确(5)检查是否一致(6)检查是否贴切(7)检查是否合理(8)检查代码无关(9)检查可测试性
56.什么是自动化测试?
利用GUI自动化测试工具来开发和执行测试脚本,从而验证是否满足需求
57.自动化测试能完全代替手工测试么?
不能,自动化测试只能做一些回归测试。
而不能对所有功能做全面覆盖测试。
58.你接触过的自动化测试工具有哪些?
自动化功能测试工具比如QTP、Robot。
自动化性能测试工具如Loadrunner、winrunner等。
59.性能测试考察的指标主要有哪些?
时间指标、空间指标。
60.性能测试的步骤有哪些?
编写测试计划、创建测试脚本、运行测试脚本、分析结果、编写测试报告
61.有没有做过性能测试?
有没有发现一些性能问题,举个例子说明
做过一个自己开发的网站的性能测试。
主要发现的问题主要集中在数据库这一块。
主要是开发人员在设计数据库表的时候冗余还有些时候时外键的问题等。
62.有没有用过Testdirector?
这个工具是干什么用的?
Testdirector是全球最大的级测试管理工具,也是业界第一个基于Web的测试管理系统,,通过在一个整体的应用系统中集成了测试管理的各个部分,包括需求管理,测试计划,测试执行以及错误跟踪等功能,TestDirector极大地加速了测试过程。
63.您认为性能测试工作的目的是什么?
目的:
是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统的目的。
64.做好性能测试工作的关键是什么?
包括以下几个方面:
1).评估系统的能力、2).识别体系中的瓶颈、3).系统调优、4).验证稳定性(resilience)可靠性(reliability)
65.性能测试的分哪几种类别?
请举例说明
性能测试类型包括一般性能测试、稳定性测试、负载测试、压力测试等
66.你如何调试LoadRunner脚本?
通常采用以下方法调试LoadRunner测试脚本
断点、单步跟踪、日志输出
68.鉴于web应用的特殊性,除了关注功能方面的测试外,你还关注哪些测试?
1)功能测试:
链接测试\表单测试\Cookies测试\数据库测试\业务流测试
2)性能测试:
连接速度测试、负载测试、压力测试
3)界面测试:
易用性测试,导航测试、图形测试、内容检查
4)兼容性测试:
操作系统平台测试、浏览器、分辨率、
5)安全性测试
69.软件测试工程师是干什么的?
软件测试工程师主要是通过科学的软件测试方法对软件产品进行功能、性能上的测试,并对软件做出评价,是保证软件质量的一个重要手段。
70.需求分析的任务是什么?
深入描述软件的功能和性能,确定软件设计的约束和软件同其他系统元素的接口细节,定义软件的其他有效性需求,借助于当前系统的逻辑模型导出目标系统逻辑模型,解决目标系统“做什么”的问题。
71.在您平时的实践中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?
如何提交高质量的软件缺陷(Bug)记录?
问题概要描述、发现人、发布/构建版本号、测试环境、缺陷类型、缺陷发现步骤、缺陷指派给的人、优先级、重要性。
72.您以往所从事的软件测试工作中,是否使用了一些工具来进行软件缺陷(Bug)的管理?
如果有,请结合该工具描述软件缺陷(Bug)跟踪管理的流程。
使用TD进行管理。
管理的流程如下:
Bug管理的一般流程:
测试人员提交新的Bug入库,错误状态为New。
高级测试人员验证错误,如果确认是错误,分配给相应的开发人员,设置状态为Open。
如果不是错误,则拒绝,设置为Declined状态。
开发人员查询状态为Open的Bug,如果不是错误,则置状态为Declined;如果是Bug则修复并置状态为Fixed。
不能解决的Bug,要留下文字说明及保持Bug为Open状态。
对于不能解决和延期解决的Bug,不能由开发人员自己决定,一般要通过某种会议(评审会)通过才能认可。
测试人员查询状态为Fixed的Bug,然后验证Bug是否已解决,如解决置Bug的状态为
Closed,如没有解决置状态为Reopen。
73.你对测试最大的兴趣在哪里?
为什么?
最大的兴趣就是测试有难度,有挑战性!
做测试越久越能感觉到做好测试有多难。
刚开始进入测试行业时,对测试的认识是从无忧测试网上了解到的一些资料,当时是冲着做测试需要很多技能才能做的好,虽然入门容易,但做好很难,比开发更难,虽然当时我很想做开发(学校专业课我基本上不缺席,因为我喜欢我的专业),但看到测试比开发更难更有挑战性,想做好测试的意志就更坚定了。
74.你的测试职业发展是什么?
测试经验越多,测试能力越高。
所以我的职业发展是需要时间累积的,一步步向着高级测试工程师奔去。
而且我也有初步的职业规划,前3年累积测试经验,按如何做好测试工程师的11,12点要求自己,不断的更新自己改正自己,做好测试任务。
75.你自认为测试的优势在哪里?
优势在于我对测试坚定不移的信心和热情,更主要的是我非常细心,虽然经验还不够,但测试需要的基本技能我有信心在工作中得以发挥
76.测试与调试区别是什么?
软件测试时检验程序是否有错误,调试则是发现程序错误的位置、原因以及改正错误等。
软件调试是发生在测试之后的步骤。
77.简述桩程序驱动程序的作用?
在我们进行单元测试的时候,单元本身无法构成一个切实可运行的程序系统,所以我们需要为单元测试来开发桩模块和驱动模块,从而完成我们的单元测试目的,这是桩模块和驱动模块的作用
一、软件测试概述
软件测试是软件开发过程的重要组成部分,是用来确认一个程序的品质或性能是否符合开发之前所提出的一些要求。
软件测试的目的,第一是确认软件的质量,其一方面是确认软件做了你所期望的事情(Dotherightthing),另一方面是确认软件以正确的方式来做了这个事件(Doitright)。
第二是提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息。
第三软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。
如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。
因此软件测试的第三个目的是保证整个软件开发过程是高质量的。
软件质量是由几个方面来衡量的:
一、在正确的时间用正确的的方法把一个工作做正确(Doingtherightthingsrightattherighttime.)。
二、符合一些应用标准的要求,比如不同国家的用户不同的操作习惯和要求,项目工程中的可维护性、可测试性等要求。
三、质量本身就是软件达到了最开始所设定的要求,而代码的优美或精巧的技巧并不代表软件的高质量(Qualityisdefinedasconformancetorequirements,notas“goodness”or“elegance”.)。
四、质量也代表着它符合客户的需要(Qualityalsomeans“meetcustomerneeds”.)。
作为软件测试这个行业,最重要的一件事就是从客户的需求出发,从客户的角度去看产品,客户会怎么去使用这个产品,使用过程中会遇到什么样的问题。
只有这些问题都解决了,软件产品的质量才可以说是上去了。
测试人员在软件开发过程中的任务:
1、寻找Bug;
2、避免软件开发过程中的缺陷;
3、衡量软件的品质;
4、关注用户的需求。
总的目标是:
确保软件的质量。
二、常用的软件测试方法
1.黑盒测试
黑盒测试顾名思义就是将被测系统看成一个黑盒,从外界取得输入,然后再输出。
整个测试基于需求文档,看是否能满足需求文档中的所有要求。
黑盒测试要求测试者在测试时不能使用与被测系统内部结构相关的知识或经验,它适用于对系统的功能进行测试。
黑盒测试的优点有:
1)比较简单,不需要了解程序内部的代码及实现;
2)与软件的内部实现无关;
3)从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;
4)基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;
5)在做软件自动化测试时较为方便。
黑盒测试的缺点有:
1)不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;
2)自动化测试的复用性较低。
2.白盒测试
白盒测试是指在测试时能够了解被测对象的结构,可以查阅被测代码内容的测试工作。
它需要知道程序内部的设计结构及具体的代码实现,并以此为基础来设计测试用例。
如下例程序代码:
HRESULTPlay(char*pszFileName)
{
if(NULL==pszFileName)
return;
if(STATE_OPENED==currentState)
{
PlayTheFile();
}
return;
}
读了代码之后可以知道,先要检查一个字符串是否为空,然后再根据播放器当前的状态来执行相应的动作。
可以这样设计一些测试用例:
比如字符串(文件)为空的话会出现什么情况;如果此时播放器的状态是文件刚打开,会是什么情况;如果文件已经在播放,再调用这个函数会是什么情况。
也就是说,根据播放器内部状态的不同,可以设计很多不同的测试用例。
这些是在纯粹做黑盒测试时不一定能做到的事情。
白盒测试的直接好处就是知道所设计的测试用例在代码级上哪些地方被忽略掉,它的优点是帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。
白盒测试的缺点有:
1)程序运行会有很多不同的路径,不可能测试所有的运行路径;
2)测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;
3)系统庞大时,测试开销会非常大。
三、软件测试的类型
常见的软件测试类型有:
BVT(BuildVerificationTest)
BVT是在所有开发工程师都已经检入自己的代码,项目组编译生成当天的版本之后进行,主要目的是验证最新生成的软件版本在功能上是否完整,主要的软件特性是否正确。
如无大的问题,就可以进行相应的功能测试。
BVT优点是时间短,验证了软件的基本功能。
缺点是该种测试的覆盖率很低。
因为运行时间短,不可能把所有的情况都测试到。
ScenarioTests(基于用户实际应用场景的测试)
在做BVT、功能测试的时候,可能测试主要集中在某个模块,或比较分离的功能上。
当用户来使用这个应用程序的时候,各个模块是作为一个整体来使用的,那么在做测试的时候,就需要模仿用户这样一个真实的使用环境,即用户会有哪些用法,会用这个应用程序做哪些事情,操作会是一个怎样的流程。
加了这些测试用例后,再与BVT、功能测试配合,就能使软件整体都能符合用户使用的要求。
ScenarioTests优点是关注了用户的需求,缺点是有时候难以真正模仿用户真实的使用情况。
SmokeTest
在测试中发现问题,找到了一个Bug,然后开发人员会来修复这个Bug。
这时想知道这次修复是否真的解决了程序的Bug,或者是否会对其它模块造成影响,就需要针对此问题进行专门测试,这个过程就被称为SmokeTest。
在很多情况下,做SmokeTest是开发人员在试图解决一个问题的时候,造成了其它功能模块一系列的连锁反应,原因可能是只集中考虑了一开始的那个问题,而忽略其它的问题,这就可能引起了新的Bug。
SmokeTest优点是节省测试时间,防止build失败。
缺点是覆盖率还是比较低。
此外,ApplicationCompatibilityTest(兼容性测试),主要目的是为了兼容第三方软件,确保第三方软件能正常运行,用户不受影响。
AccessibilityTest(软件适用性测试),是确保软件对于某些有残疾的人士也能正常的使用,但优先级比较低。
其它的测试还有FunctionalTest(功能测试)、SecurityTest(安全性测试)、StressTest(压力测试)、PerformanceTest(性能测试)、RegressionTest(回归测试)、Setup/UpgradeTest(安装升级测试)等。
四、微软的软件测试工作
1.基本情况
测试在微软公司是一项非常重要的工作,微软公司在此方面的投入是非常巨大的。
微软对测试的重视表现在工程开发队
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 试题 实例