文档库 最新最全的文档下载
当前位置:文档库 › 软件测试常见笔试及面试题

软件测试常见笔试及面试题

软件测试常见笔试及面试题
软件测试常见笔试及面试题

软件测试常见笔试及面试题

一、名词解释题

1、测试用例

测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果。测试用例是执行的最小实体。

2、驱动模块

驱动模块是在进行单元测试时所设置的一种辅助测试模块,它用来模拟被测试模块的上一级模块,相当于被测模块的主程序。驱动模块在单元测试中接收数据,把相关的数据传送给被测试的模块,启动被测模块,并打印出相应的结果。

3、回归测试

在集成测试策略的环境中,回归测试是对某些已经进行过的测试的某些子集再重新测试一遍,以保证上述改变不会传播无法预料的副作用或引发新的问题。在更广的环境里,回归测试就是用来保证(由于测试或者其他原因的)改动不会带来不可预料的行为或者另外的错误。

4、静态测试

静态测试是指不利用计算机运行被测程序,也就是说,计算机并不真正运行被测试的程序,而是通过其他手段达到检测的目的。静态测试是对被测程序进行特性分析的一些方法的总称。

5、桩模块

桩模块是在进行单元测试时所设置的一种辅助测试模块,它用来模拟被测试模块工作过程中所调用的模块。桩模块由被测模块调用,它们一般只进行很少的数据处理,以便检验被测模块与其下级模块的接口。

6、强度测试

强度测试的目的是要检测非正常的情形,测试是想要破坏程序。强度测试需要在反常规数据量、频率或资源的方式下运行系统,以检验系统能力的最高实际限度。

7、软件测试

软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复查。它是软件质量保证的关键步骤。通常对软件测试的定义有两种描述:

定义1:软件测试是为了发现错误而执行程序的过程。

定义2:软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例运行程序,以及发现错误的过程。

8、自动化测试

自动化测试得一般定义为:各种测试活动的管理与实施,包括测试脚本的开发与执行,均使用一种自动化测试工具来验证测试的需求。

9、动态测试

动态测试的主要特征是计算机必须真正运行被测试的程序,通过输入测试用例对其运行情况(即输入与输出的对应关系)进行分

析,达到检测的目的。

10、独立路径

某一程序的独立路径是指从程序入口到程序出口的多次执行中,每次至少有一个语句集(包括运算、赋值、输入/输出或判断)是新的和未被重复的。

二、问答题

1、软件测试涉及哪些关键问题?

软件测试涉及的关键问题包括以下四个方面:

(1)测试由谁来执行。通常的做法是开发者(机构或组织)负责完成自己代码的单元测试,而系统测试则由一些独立的测试人员或专门的测试机构进行。

(2)测试什么。软件需求规格说明、概要设计规格说明、详细设计规格说明和源程序都是测试的对象。

(3)什么时候进行测试。测试可以是一个与开发并行的过程,还可以是在开发完成某个阶段任务之后进行,或者是在开发结束后再进行测试。

(4)怎样进行测试。根据软件的功能规范说明和程序实现,利用各种测试方法,生成有效的测试用例,对软件进行测试。

2、简述软件测试过程的流程。

软件测试过程按测试的先后次序可分为:单元测试、集成测试、确认(有效性)测试、系统测试和验收(用户)测试共5 项步骤。

(1)单元测试:针对每个单元的测试,以确保每个模块能正常工作为目标。

(2)集成测试:对已测试过的模块进行组装,进行集成测试。这项测试的目的在于检验与软件设计相关的程序结构问题。

(3)确认测试:在完成集成测试后,对开发工作初期制定的确认准则进行检验。确认测试是检验所开发的软件能否满足所有功能和性能需求的最后手段。

(4)系统测试:在完成确认测试后,应属于合格软件产品。但为了检验它能否与系统的其他部分(比如硬件、数据库)协调工作,还需要进行系统测试。

(5)验收测试:检验软件产品质量的最后一道工序是验收测试。验收测试主要突出用户的作用,同时软件开发人员也应有一定程度的参与。

3、为什么说软件测试必须有预期结果?

没有预期结果的测试是不可理喻的。软件缺陷是经过对比而得出来的。这正如没有标准无法进行度量一样。如果我们事先不知道或是无法肯定预期的结果,我们必然无法了解测试正确性。这很容易然人感觉如盲人摸象一般,不少测试人员常常凭借自身的感觉去评判软件缺陷的发生,其结果往往是把似是而非的东西作为正确的结果来判断,因此常常出现误测的现象。

4、什么是测试用例?

测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果。测试用例是执行的最小实体。

5、简述黑盒测试和白盒测试概念,并试分析两者的优点和缺点。

黑盒测试又称为功能测试、数据驱动测试和基于规格说明的测试。它从用户观点出发的测试。用这种方法进行测试时,把被测试

程序当作一个黑盒,在不考虑程序内部结构的内部特性、测试者只知道该程序输入和输出之间的关系或程序功能的情况下,依靠能够反映这一关系和程序功能需求规格的说明书,来确定测试用例和推断测试结果的正确性。

黑盒测试的优点有:

1)比较简单,不需要了解程序内部的代码及实现;

2)与软件的内部实现无关;

3)从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;

4)基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;

5)在做软件自动化测试时较为方便。

黑盒测试的缺点有:

1)不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;

2)自动化测试的复用性较低。

白盒测试:若测试规划基于产品的内部结构来进行测试,检查内部操作是否按规定执行,软件各个部分功能是否得到充分使用,则这种测试方法称为白盒测试(White-box Testing)方法。白盒测试又称为结构测试、逻辑驱动测试或基于程序的测试。它依赖于对程序细节的严密的检验,针对特定条件和循环设计测试用例,对软件的逻辑路径进行测试。在程序的不同点检验程序的状态,来进行判定其实际情况是否和预期的状态相一致。软件的白盒测试一般用来分析程序的内部结构。

它的优点是帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。

白盒测试的缺点有:

(1)程序运行会有很多不同的路径,不可能测试所有的运行路径;

(2)测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;

(3)系统庞大时,测试开销会非常大。

6、采用白盒测试法设计测试用例时,常用的逻辑覆盖测试方法有哪几种?请简单描述各种方法的目的。

目前比较常用的逻辑覆盖测试方法有:语句覆盖、判定覆盖(分支覆盖)、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖。

(1)语句覆盖的目的是选择足够多的测试用例,使程序中的每个可执行语句至少执行一次。

(2)判定覆盖的目的是通过执行足够的测试用例,使得程序中的每个判定至少都获得一次“真”值和“假”值,也就是使程序中的每个取“真”分支和取“假”分支至少均经历一次。

(3)条件覆盖的目的是设计若干测试用例,在执行被测程序以后,要使每个判定中每个条件的可能值至少满足一次。

(4)判定/条件覆盖的目的是设计足够的测试用例,使得判定中每个条件的所有取值(真/假)至少出现一次,并且每个判定本身的所有判定结果(真/假)也至少出现一次。

(5)组合覆盖的目的是通过执行足够的测试用例,使得每个判定中条件的各种可能都至少出现一次。

(6)路径覆盖的目的是设计足够多的测试用例,要求覆盖程序中所有可能的路径。

7、黑盒测试有哪几种方法?请简单描述各种方法的特点。

黑盒测试的具体技术方法主要有边界值分析法、等价类划分法、因果图法、决策表测试法等。

(1)边界值分析法是基于可靠性理论中称为“单故障”的假设,即有两个或两个以上故障同时出现而导致软件失效的情况很少,也就是说,软件失效基本上是由单故障引起的。因此,边界值分析利用输入变量的最小值、略大于最小值、输入值域内的任意值、略小于最大值和最大值来设计测试用例。

(2)等价类划分法是把程序的输入域划分为若干部分,然后从每个部分中选取少数代表性数据当作测试用例。经过类别的划分后,每一类的代表性数据在测试中的作用都等价于这一类中的其他值。

(3)因果图方法就是从程序规格说明书的描述中找出因(输入条件)和果(输出结果或程序状态的改变),将因果图转换为决策表,最后为决策表中的每一列设计一个测试用例。这种方法考虑到了输入情况各种组合以及各个输入情况之间的相互制约关系。

(4)在所有的黑盒测试方法中,基于决策表的测试是最为严格、最具有逻辑性的测试方法。在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。决策表法很适合测试这类问题。

8、简析已学的各种黑盒测试方法的特点,并分析如何选择恰当的黑盒测试方法?

黑盒测试的具体技术方法主要有边界值分析法、等价类划分法、因果图法、决策表测试法等。

(1)边界值分析法是基于可靠性理论中称为“单故障”的假设,即有两个或两个以上故障同时出现而导致软件失效的情况很少,也就是说,软件失效基本上是由单故障引起的。因此,边界值分析利用输入变量的最小值、略大于最小值、输入值域内的任意值、略小于最大值和最大值来设计测试用例。

(2)等价类划分法是把程序的输入域划分为若干部分,然后从每个部分中选取少数代表性数据当作测试用例。经过类别的划分后,每一类的代表性数据在测试中的作用都等价于这一类中的其他值。

(3)因果图方法就是从程序规格说明书的描述中找出因(输入条件)和果(输出结果或程序状态的改变),将因果图转换为决策表,最后为决策表中的每一列设计一个测试用例。这种方法考虑到了输入情况各种组合以及各个输入情况之间的相互制约关系。

(4)在所有的黑盒测试方法中,基于决策表的测试是最为严格、最具有逻辑性的测试方法。在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。决策表法很适合测试这类问题。

通常在决定测试策略时,有以下的参考原则:

(1)在任何情况下都必须采用边界值分析法。这种方法设计出的测试用例发现程序错误的能力最强;

(2)必要时采用等价划分类方法补充测试用例;

(3)采用错误推断法再追加测试用例;

(4)对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度。如果没有达到要求的覆盖标准,则应当在补充更多的测试用例;

(5)如果程序的功能说明中含有输入条件的组合情况,则应在一开始就选用因果图法。

9、简介WEB应用程序在压力下的常见错误类型。

有两种错误类型是:

(1)内存泄漏(Memory leak):一种极难检测的现象。内存泄漏经常发生在已发行的产品中,原因很简单,很难设计测试用例来检测它们。使用简单的功能测试,几乎发现不了内存泄漏问题,因为在产品完成之前测试没对产品进行足够多的使用。内存泄漏通

常要求操作要重复非常多的次数以使内存消耗达到能引起注意的程度。尽管与其它编程语言(如 C/C++)相比,Java 程序更难引入内存泄漏错误,但只要程序仍保持着对对象的引用,该对象仍有可能被实例化并且它占用的内存永远不会被释放。

(2)并发与同步(Concurrency and Synchronization):压力测试在查找并发性问题上非常出众,这是因为在任何一个测试生命周期中,它都应用了许多不同的代码路径和定时条件。一般的规则是,压力测试运行的时间越长,涉及并应用的代码路径组合和定时条件就越多。当然,这也的确使得这些问题很难再现(错误可以在5分钟或 5天后发生)。死锁、线程泄漏以及任何一般的同步问题通常只能在压力测试阶段被检测出来。这些类型的问题很难通过执行单元测试来发现。开发人员不会一直考虑他或她的代码将与其他地方的代码(在执行单元测试时这些代码可能还没写出来)进行交互。

10、单元测试的主要任务是什么?

单元测试针对每个程序的模块,解决5个方面的测试问题:模块接口、局部数据结构、边界条件、独立的路径和错误处理。

详细来说:

(1)模块接口的测试:检查进出程序单元的数据流是否正确。对模块接口数据流的测试必须在任何其他测试之前进行,因为如果不能确保数据正确的输入和输出的话,所有的测试都是没有意义的。

(2)局部数据的测试:必须测试其内部的数据能否保持完整性,包括内部数据的内容、形式及相互关系不发生错误。

(3)边界条件:目的是检测在数据边界处模块能否正常工作,边界测试是单元测试的一个关键任务。

(4)独立路径:路经测试也称为覆盖测试。在单元测试中,最主要的测试是针对路径的测试。测试用例必须能够发现由于计算错误、不正确的判定或不正常的控制流而产生的错误。

(5)错误处理:良好的设计应该预先估计到投入运行后可能发生的错误,并给出相应的处理措施,使得用户不至于束手无策。

11、简述自顶向下增量式测试和自底向上增量式测试两种集成测试方法,并比较两者的优点和缺点。

自顶向下增量式测试表示逐步集成和逐步测试是按照结构图自上而下进行的,即模块集成的顺序是首先集成主控模块(主程序),然后依照控制层次结构向下进行集成。自底向上增量式测试表示逐步集成和逐步测试的工作是按结构图自下而上进行的,由于是从最底层开始集成,所以也就不再需要使用桩模块进行辅助测试。

自顶向下测试的主要优点在于它可以自然的做到逐步求精,一开始就能让测试者看到系统的框架。它的主要缺点是需要提供桩模块,并且在输入/输出模块接入系统以前,在桩模块中表示测试数据有一定困难。同时,观察和解释测试的输出常常也比较困难。自底向上的优点在于,由于驱动模块模拟了所有调用参数,即使数据流并未构成有向的非环状图,生成测试数据也无困难。如果关键的模块是在结构图的底部,那么自底向上测试具有优越性。它的主要缺点在于,直到最后一个模块被加进去之后才能看到整个程序(系统)的框架。

12、简述在哪些测试模块中应优先考虑引入自动化测试?自动化测试可以带来哪些优点?

当具有下列情况时需要考虑进行自动化测试:

(1)测试个案的生成,包括测试输入、测试输出、测试操作指令等。

(2)测试的执行与控制,包括单机和网络多机分布运行,节假日运行,测试个案调用控制,测试对象、范围、版本控制等。

(3)测试结果与标准输出的对比。

(4)不吻和的测试结果的分析、记录、分类和通报。

(5)总测试状况的统计报表产生。

自动化测试的优点在于:对程序的回归测试更方便;可以运行更多更烦琐的测试;可更好的利用资源;测试具有一致性和可重复性;可让产品更快的投入市

场;增加软件的信任度。

13、在软件工程或软件测试中,哪些软件问题被称为软件缺陷?

(1)软件未达到产品说明书中已经标明的功能;

(2)软件出现了产品说明书中指明不会出现的错误;

(3)软件未达到产品说明书中虽未指出但应当达到的目标;

(4)软件功能超出了产品说明书中指明的范围;

(5)软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不好。

14、简述软件测试与软件开发各阶段的关系。

(1)项目规划阶段:负责从单元测试到系统测试的整个测试阶段的监控。

(2)需求分析阶段:确定测试需求分析、系统测试计划的制定,评审后成为管理项目。测试需求分析是对产品生命周期中测试所需求的资源、配置、每阶段评判通过的规约;系统测试计划则是依据软件的需求规格说明书,制定测试计划和设计相应的测试用例。

(3)详细设计和概要设计阶段:确保集成测试计划和单元测试计划完成。

(4)编码阶段:由开发人员进行自己负责部分的代码的测试。在项目较大时,由专人进行编码阶段的测试任务。

(5)测试阶段(单元、集成、系统测试):依据测试代码进行测试,并提交相应的测试状态报告和测试结束报告。

15、在测试实施之前,如何才能确定好的测试策略和测试方法?

通常,在确定测试方法时,应遵循以下原则:

(1)根据程序的重要性和一旦发生故障将造成的损失来确定测试等级和测试重点。

(2)认真选择测试策略,以便能尽可能少的使用测试用例,发现尽可能多的程序错误。因为测试不足则意味着让用户承担隐藏错误带来的危险,但测试过度又会带来资源的浪费。因此,测试需要找到一个平衡点。

通常在确定测试策略时,有以下5条参考原则:

(1)在任何情况下都必须采用边界值分析法。这种方法设计出的测试用例发现程序错误的能力最强。

(2)必要时采用等价类划分方法补充测试用例。

(3)采用错误推断法再追加测试用例。

(4)对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度。如果没有达到要求的覆盖标准,则应当再补充更多的测试用例。

(5)如果程序的功能说明中含有输入条件的组合情况,则应一开始就选用因果图法。

16、简述软件测试的目的和原则。

软件测试以发现故障为目的,是为了发现故障而执行程序的过程。软件测试的目的有以下三点:

(1)测试是程序的执行过程,目的在于发现错误。

(2)好的测试用例在于发现至今还未发现的错误。

(3)成功的测试是发现了错误的测试。

依据上述软件测试目的,软件测试的原则是:

(1)尽早的和及时的测试应作为软件开发人员的座右铭。

(2)测试用例应当由测试数据和与之对应的预期结果组成。

(3)在程序提交测试后,应当由专门的测试人员进行测试,避免由程序设计者自行检查程序。

(4)测试用例应包括合理的输入条件和不合理的输入条件。

(5)严格执行测试计划,排除测试的随意性。

(6)充分注意测试当中的群体现象。

(7)要对每一个测试结果作全面的检查。

(8)保存测试计划、测试用例、出错统计和最终分析报告,为维护工作提供充分的资料。

17、为什么在单元测试之后要进行集成测试?如何组织集成测试?

实践表明,软件的一些模块能够单独地工作,但并不能保证组装连接之后也肯定能正常工作。程序在某些局部反映不出来的问题,在全局情况下有可能暴露出来,影响软件功能的实现。可能的原因有以下几方面:

(1)模块相互调用时引入了新的问题;

(2)几个子功能组合后不能实现预计的主功能;

(3)计算的误差累计达到了不能接受的程度;

(4)全局数据结构出现错误。

因此,在单元模块完成单元测试后,需要按照设计的程序结构图进行组合、进行集成测试,检测与接口有关的各种故障。组织集成测试的一种方法是先独立的测试每个模块,然后再将它们组合成一个整体进行测试;另一种方法是先把下一个待测试模块组合到已经测试过的那些模块上去,再进行测试,逐步完成集成测试。由此产生了两种集成测试方法:非增量式测试和增量式测试。

18、当WinRunner识别完GUI对象后,会将GUI对象的属性储存在GUI Map File,WinRunner提供二种GUI Map File 模式:GUI Map File per Test模式与Global GUI Map File模式。

(1)请比较这两种GUI Map File 模式的优点和缺点。

■GUI Map File Per Test 模式的优点:每个测试都有自带的GUI Map File;使用方便,且保存和加载GUI Map File都是自动完成;作为单次测试,容易维护和更新(就是重新录一次)。

■GUI Map File Per Test模式的缺点:一旦软件GUI变更,每个测试的GUI Map File都要重新录制。

■Global GUI Map File 模式的优点:如果对象或窗体的属性改变,只需要在 GUI Map File 里修改对应的属性;容易维护和更新(无需重新录制)。

■Global GUI Map File模式的缺点:要手工保存和加载使用的GUI Map File。

(2)请分别说明在这两种GUI Map File模式下,WinRunner可以通过哪些方式学习被测软件的GUI?

当使用GUI Map File Per Test 模式时,WinRunner会在录制脚本时自动学习被测软件的GUI。当使用Global GUI Map File 模式时,WinRunner可以通过以下三种方式学习被测软件的GUI:

■ 使用RapidTest Script Wizard学习被测软件每个窗体中所有GUI对象的属性。

■ 使用GUI Map Editor学习单个GUI对象、窗体或某个窗体中所有GUI对象的属性。如果开发过程中改变了GUI,用户可以使用这种方式更新GUI Map。

■ 通过录制脚本的方式学习被录制(被操作)的那部分被测软件中的所有的GUI对象的属性。

19、介绍在WinRunner 中GUI映射文件(GUI Map File)的作用。

GUI Map是 Winrunner和 windows操作系统之间交流的媒介,具体的说是Winrunner和application之间的媒介,应用程序中的对象是通过GUI map识别的,Winrunner回放时要在GUI map里找到对象。脚本在回放时,脚本里用到的对象都应该包含在GUI map file 里,可通过GUI Spy等工具将GUI对象学习认识到GUI Map File 内。

20、什么是数据驱动脚本?简介在Winrunner中如何实现数据驱动脚本。

数据驱动脚本技术将测试输入存储在独立的数据文件中,而不是绑定在脚本中。执行时是从数据文件而不是从脚本中读入数据。这种方法最大的好处是可以用同一个脚本允许不同的测试。对数据进行修改,也不必修改执行的脚本。使用数据驱动脚本,可以以较小的开销实现较多的测试用例,这可以通过为一个测试脚本指定不同的测试数据文件达到。将数据文件单独列出,选择合适的数据格式和形式,可将用户的注意力集中到数据的维护和测试上。达到简化数据,减少出错的概率的目的。

在 Winrunner中:

(1)先生成单个输入的测试脚本;

(2)通过选取菜单 table->data driver wizard.可通过向导来生成数据文件(excel文件格式),向导同时生成了读取该数据文件的循环语句;

(3)在已有了数据文件之后,可通过选取菜单 table->data table编辑更改数据文件。

21、WinRunner 可以帮助用户自动处理从测试开发到测试执行的整个过程,可以创建可修改和可复用的测试脚本,而不用担心软件功能模块的变更。

(1)请简述WinRunner测试过程所包含的六个阶段。

■创建GUI Map:让 WinRunner识别应用程序的GUI对象。

■创建测试:用户可以通过录制、编成或两者同时使用的方式建立测试脚本。

■调试测试:用户可以在调试模式下测试运行脚本,也可以设置中断点,监测变量,对测试脚本除错。

■执行测试:用户在检验模式下执行测试脚本。

■查看测试结果

■报告发现的错误

(2)WinRunner 可以用录制的方式快速建立自动测试脚本,请问WinRunner 提供了哪几种可用的录制模式?请描

述各种录制模式的特点。

WinRunner提供了两种录制模式:环境判断模式(Context Sensitive mode)和模拟模式(Analog mode)。

■ 环境判断模式:这种模式根据用户选取的GUI对象(如窗体、列表、按钮等)将用户对软件的操作动作录制下来,并忽略这些对象在屏幕上的物理位置。每一次对被测软件进行操作。回放测试脚本的过程,就是 WinRunner 模拟一个用户鼠标选取对象、用键盘输入数据的操作过程。

■ 模拟模式:这种模式记录鼠标点击、键盘输入和鼠标在二维平面上(x轴、y轴)的精确运动轨迹。执行测试时,WinRunner让鼠标根据轨迹运动。模拟模式对于那些需要追踪鼠标运动的测试非常有用,例如画图软件。

三、设计题

(一)等价类题目

1、使用等价类划分法为NextDate函数设计测试用例:NextDate 函数包含三个输入变量month、day 和year(要求month、day 和year均为整数值,并且满足:1≤month≤12;1≤day≤31;1912≤year≤2050),函数的输出为输入日期后一天的日期。

(1)分析NextDate函数的规格说明,列出输入域等价类表(包括有效和无效等价类)。

(2)根据(1)中的等价类表,设计能覆盖所有等价类的测试用例,要求包括输入数据和预期输出,并指出各个测试用例所覆盖的等价类编号。

答:(1)NextDate函数的输入域等价类表如下:

(2)根据等价类表设计的测试用例如下:

编号year month day 预期输出覆盖等价类

1 2004 7 15 2004-7-16 Y1,M1,D1

2005 9 28 2005-9-29 Y2,M2,D2 2

2004 2 29 2004-3-1 Y1,M3,D3 3

2005 12 30 2005-12-31 Y2,M4,D4 4

2004 10 31 2004-11-1 Y1,M1,D5 5

1911 4 8 year超出范围Y3,M2,D1 6

2051 2 28 year超出范围Y4,M3,D2 7

2004 0 29 month超出范围Y1,M5,D3 8

2005 13 30 month超出范围Y2,M6,D4 9

2004 1 0 day超出范围Y1,M1,D6

10

2005 6 32 day超出范围Y2,M2,D7

11

2、用等价类划分法测试为保险公司计算保费费率的程序。某保险公司的人寿保险的保费计算方式为:投保额*保险费率,其中的保险费率依点数不同而有别,10点及10点以上保险费率为0.6%,10点以下保险费率为0.1%;而点数又是由投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则如下:

对程序中各个输入条件的要求如下:

年龄是一位或两位非零整数,值的有效范围为1~99;性别是一位英文字符,有效取值只能为‘M’(表示男性)或’F’(表示女性);婚姻的有效取值只能为‘已婚’或‘未婚’;抚养人数的有效取值可以是空白或一位非零整数(1~9)。

(1)分析程序的规格说明,列出等价类表(包括有效等价类和无效等价类)。

(2)根据(1)中的等价类表,设计能覆盖所有等价类的测试用例的输入数据和预期输出。

(1)划分的等价类表如下:

)根据上述等价类表,设计的测试用例如下:

(2

3、某城市电话号码由三部分组成,分别是:

地区码——空白或三位数字;

前缀——非‘0’或‘1’开头的三位数字;

后缀—— 4位数字。

假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。

(1)分析程序的规格说明,列出输入域等价类表(包括有效和无效等价类)。

(2)根据(1)中的等价类表,设计能覆盖所有等价类的测试用例,要求包括输入数据和预期输出,并指出各个测试用例所覆盖的等价类编号。

答:(1)输入域等价类表如下:

(2)根据等价类表设计的测试用例如下:

(二)决策表题目

1、用决策表测试法测试以下程序:该程序有三个输入变量month、day、year(month、day 和year 均为整数值,并且满足:1≤month≤12 和1≤day≤31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。例如,输入为2004 年11 月29 日,则该程序的输出为2000 年12 月1日。

(1)分析各种输入情况,列出为输入变量month、day、year 划分的有效等价类。

(2)分析程序的规格说明,并结合以上等价类划分的情况,给出问题规定的可能采取的操作(即列出所有的动作桩)。

(3)根据(1)和(2),画出简化后的决策表。

(1)month的有效等价类:

M1 {month=4,6,9,11}

M2 {month=1,3,5,7,8,10}

M3 {month=12}

M4 {month=2}

day的有效等价类:

D1 {1≤day≤26}

D2 {day=27}

D3 {day=28}

D4 {day=29}

D5 {day=30}

D6 {day=31}

year的有效等价类:

Y1 {year是闰年}

Y2 {year不是闰年}

(2)考虑各种有效的输入情况,程序中可能采取的操作有以下六种:

a1:day+2

a2:day=2

a3:day=1

a4:month+1

a5:month=1

a6:year+1

此外,对于无效的输入日期,还应加入一个动作——a7:不可能。

(3)自己做~!

(三)因果图题目

1、有一个处理单价为5角钱的饮料的自动售货机,其规格说明如下段文字,请按要求作答。若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时再投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。”问题:

(1)分析该自动售货机的原因与结果(提示:要建立适当的中间节点);

(2)画出包含其所有原因-中间节点-结果的因果图。

答:(1)

原因:

1. 售货机有零钱找

2. 投入1元硬币

3. 投入5角硬币

4. 押下橙汁按钮

5. 押下啤酒按钮

建立中间结点,表示处理中间状态:

11. 投入1元硬币且押下饮料按钮

12. 押下〖橙汁〗或〖啤酒〗的按钮

13. 应当找5角零钱并且售货机有零钱找

14. 钱已付清

结果:

21. 售货机〖零钱找完〗灯亮

22. 退还1元硬币

23. 退还5角硬币

24. 送出橙汁饮料

25. 送出啤酒饮料

(2)画图!~

2、用因果图法测试以下程序。程序的规格说明要求:输入的第一个字符必须是#或*,第二个字符必须是一个数字,在此情况下进行文件的修改;如果第一个字符不是#或*,则给出信息N,如果第二个字符不是数字,则给出信息M。

(1)分析程序的规格说明,列出原因和结果。

(2)找出原因与结果间的因果关系、原因与原因间的约束关系,画出因果图。

(3)将因果图转换成决策表。

(4)根据(3)中的决策表,设计测试用例的输入数据和预期输出。

答:

(1)原因:

c1—第一个字符是#

c2—第一个字符是*

c3—第二个字符是一个数字

结果:

e1—给出信息N

e2—修改文件

e3—给出信息M

(2)因果图:画图!~

(3)自己做!~

(4)设计的测试用例的如下:

测试用例1:输入数据—#3 预期输出—修改文件

测试用例2:输入数据—#A 预期输出—给出信息M

测试用例3:输入数据—*6 预期输出—修改文件

测试用例4:输入数据—*B 预期输出—给出信息M

测试用例5:输入数据—A1 预期输出—给出信息N

测试用例6:输入数据—GT 预期输出—给出信息N和信息M

(四)逻辑覆盖题目

1、为下图设计足够的测试用例,分别实现对其的判定覆盖、条件覆盖和条件组合覆盖。

2、使用逻辑覆盖测试方法测试以下程序段:

void Do (int X,int A,int B) {

1 if ( (A>1) && (B==0) )

2 X=X/A;

3 if ( (A==2) || (X>1) )

4 X=X+1;

5 }

说明:程序段中每行开头的数字(1~5)是对每条语句的编号。

(1)画出程序的控制流图(用题中给出的语句编号表示)。

(2)分别以语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。

答:(1)画图!~

(2)

测试用例执行路径

语句覆盖 X=3、A=2、B=0 1→2→3→4→5

判定覆盖 X=3、A=2、B=0

X=1、A=1、B=0 1→2→3→4→5

1→3→5

条件覆盖 X=3、A=1、B=0

X=1、A=2、B=1 1→3→4→5

1→3→4→5

判定/条件覆盖 X=3、A=2、B=0

X=1、A=1、B=1 1→2→3→4→5

1→3→5

组合覆盖 X=3、A=2、B=0

X=1、A=2、B=1

X=1、A=1、B=1

X=3、A=1、B=0 1→2→3→4→5

1→3→4→5

1→3→5

1→3→4→5

路径覆盖 X=3、A=2、B=0

X=1、A=1、B=0

X=1、A=2、B=1

X=1、A=3、B=0 1→2→3→4→5

1→3→5

1→3→4→5

1→2

3、使用逻辑覆盖测试方法测试以下程序段:

void DoWork (int x,int y,int z) {

1 int k=0,j=0;

2 if ( (x>3) && (z<10) )

3 {

4 k=x*y-1;

5 j=sqrt(k);

6 }

7 if ( (x==4)||(y>5) )

8 j=x*y+10;

9 j=j%3;

10 }

说明:程序段中每行开头的数字(1~10)是对每条语句的编号。

(1)画出程序的控制流图(用题中给出的语句编号表示)。

(2)分别以语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。

答:(1)画图!~

(2)设计的测试用例如下:

测试用例执行路径

语句覆盖 x=4、y=5、z=5 2→45→7→8→9

判定覆盖 x=4、y=5、z=5

x=2、y=5、z=5 2→45→7→8→9

2→7→9

条件覆盖 x=2、y=6、z=5

x=4、y=5、z=15 2→7→8→9

2→7→8→9

判定/条件覆盖 x=4、y=6、z=5

x=2、y=5、z=15 2→45→7→8→9

2→7→9

组合覆盖 x=4、y=6、z=5

x=4、y=5、z=15

x=2、y=6、z=5

x=2、y=5、z=15 2→45→7→8→9

2→7→8→9

2→7→8→9

2→7→9

路径覆盖 x=4、y=6、z=5

x=4、y=5、z=15

x=5、y=5、z=5

x=2、y=5、z=

(五)路径覆盖题目

1、使用基本路径测试方法测试以下程序段:

void sort ( int irecordnum, int itype )

1 {

2 int x=0;

3 int y=0;

4 while ( irecordnum-- > 0 )

5 {

6 if ( itype= =0 )

7 break;

8 else

9 if ( itype= =1 )

10 x=x+10;

11 else

12 y=y+20;

13 }

14 }

说明:程序段中每行开头的数字(1~14)是对每条语句的编号。

(1)画出程序的控制流图(用题中给出的语句编号表示)。

(2)计算上述程序段的环形复杂度。

(3)导出基本路径集,列出程序的独立路径(用题中给出的语句编号表示)。(4)根据(3)中的独立路径,设计测试用例的输入数据和预期输出。

答:(1)画图!~

(2)程序段的环形复杂度V(G)=10条边—9个节点+2=4

(3)程序段的基本路径集中有4条独立路径。

路径1:4→14

路径2:4→6→7→14

路径3:4→6→9→10→13→4→14

路径4:4→6→9→12→13→4→14

(4)设计的测试用例如下:

输入数据预期输出

测试用例1 irecordnum = 0

itype = 0 x = 0

y = 0

测试用例2 irecordnum = 1

itype = 0 x = 0

y = 0

测试用例3 irecordnum = 1

itype = 1 x = 10

y = 0

测试用例4 irecordnum =1

itype = 2 x = 0

y = 20

2、以下代码由C 语言书写,请按要求作答。

Int IsLeap(int year)

1 {

2 if (year % 4 = = 0)

3 {

4 if (year % 100 == 0)

5 {

6 if ( year % 400 = = 0)

7 leap = 1;

8 else

9 leap = 0;

10 }

11 else

12 leap = 1;

13 }

14 else

15 leap = 0;

16 return leap;

17 }

问题:

(1)画出以上代码的控制流图;

(2)计算上述控制流图的圈复杂度V(G)(独立线性路径数);

(3)假设输入的取值范围是1000 < year < 2001,请使用基本路径测试法为变量year设计测试用例,使其满

一套精细软件测试面试题(问题加答案)

周五面试题: 1.软件测试的定义,评价测试工作是枯燥反复的,你是如何理解的?软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。 软件测试工作并非枯燥乏味。简而言之软件测试工作是一种破坏程序的有价值的行为,工作性质鼓励我们这种破坏行为。另一方面他是一种正向思维与逆向思维斗争的工作,与开发相辅相成,相互依存、制约。是一种让我们乐于学习和探索的趣味工作。 2.画出你所知道的软件生命周期模型,及软件测试模型? <软件生命周期> 略:软件测试模型V模型、W模型详见第三本书----《国际软件测试概论》 3.什么是兼容性测试?兼容性测试侧重哪些方面? 什么是兼容性测试: 一般来说,兼容性指能同时容纳多个方面,在计算机术语上兼容是指几个硬件之间、几个软件之间或是软硬件之间的相互配合程度。 具体的讲,兼容性测试是指测试在特定的硬件平台上、不同的应用程序之间、不同的操作系统平台上、不同的网络等环境中是否能很好的运行的测试。 兼容性测试侧重哪些方面: 兼容测试的重点是,对兼容环境的分析。通常,是在运行软件的环境不是很确定的情况下,才需要做兼容。根据软件运行的需要,或者根据需求文档,一般都能够得出用户会在什么环境下使用该软件,把这些环境整理成表单,就得出做兼容测试的兼容环境了。 4.写出你以前的项目或工作中,最让你茫然的事情,你是怎么处

理的? 回答:在我以前的项目和工作中,让我最茫然的事情是软件测试需求老在变化着,导致测试工作不能在预期的时间内完成。 面对这样的情况我的处理方式如下: (1)尽早与承担该项目风险的负责人接触,以便了解需求会怎样改变,从而可以尽早地改变测试计划和策略。 (2)如果在对应用程序进行初始设计时多考虑一些适应性,那么以后在发生需求的改变时就不需要再为改变做很多事情了。 (3)只要有可能,就应使用快速原型(rapid prototyping),以帮助用户确认他们的需求,从而减少变更。 (4)在项目的时间表中应当留出余量,以应付可能出现的变更。 (5)尽量把新的需求纳入应用软件的“下一版”,而把原始需求作为“第一版”。 (6)通过谈判,把易于实现的新的变更列入项目,而把难于实现的新需求列入该应用软件的以后的版本。 (7)要确保让客户和管理人员了解变更对进度表的影响、所带来的风险、以及因变更所引起的大量资金消耗。 (8)对变更进行适当的风险分析,以减少回归测试的要求。 5.你的朋友怎样评价你? 回答: 跟朋友们在一起的时候,朋友都常常说我为人诚实、稳重、团结他人、善于帮助他人、关心家人、爱好学习。但是朋友们都说我也有一些缺点就是做事儿比较心急,凡是想着第一时间将自己手里的事情尽快完成,就怕担心后面还有一些需要解决的问题;另外就是凡事都想着拿第一,好胜之心比较强烈。 6.据说有人给酒肆的老板娘出了一个难题:此人明明知道店里只有两个舀酒的勺子,分别能舀7两和11两酒,却硬要老板娘卖给他2两酒。聪明的老板娘毫不含糊,用这两个勺子在酒缸里舀酒,并倒来倒去,居然量出了2两酒,聪明的你能做到吗? 11-7=4(11两勺舀满,倒入7两勺直到满,则11两勺内剩4两,7两勺清空,把11两勺内剩的4两倒入7两勺内,则7两勺内少3两) 11-3=8(11两勺内装满,倒入装有4两的7两勺内,则11两勺内剩8两,清空7两勺) 8-7=1(把11两勺内剩的8两倒入7两勺内直到满,则11两勺内剩1两,清空7两勺,把11两勺内剩的1两倒入7两勺内)

最新一个常见的软件测试面试题

一个常见的软件测试面试题 一个常见的软件测试面试题 考官从办公室(面试现场)随意选取一个简单物品,假定是一个喝水的带广告图案的花纸杯,让应聘人对它设计出尽可能多的测试用例。 测试项目:杯子 需求测试:查看杯子使用说明书 界面测试:查看杯子外观 功能度:用水杯装水看漏不漏;水能不能被喝到 安全性:杯子有没有毒或细菌 可*性:杯子从不同高度落下的损坏程度 可移植性:杯子再不同的地方、温度等环境下是否都可以正常使用 兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等 易用性:杯子是否烫手、是否有防滑措施、是否方便饮用 用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述 疲劳测试:将杯子盛上水(案例一)放24小时检查泄漏时间和情况;盛上汽油(案例二)放24小时检查泄漏时间和情况等 压力测试:用根针并在针上面不断加重量,看压强多大时会穿透 跌落测试:??杯子加包装(有填充物),在多高的情况摔下不破损 震动测试: 杯子加包装(有填充物),六面震动,检查产品是否能应对恶劣的铁路\公路\航空运输 测试数据: 测试数据具体编写此处略(最讨厌写测试数据了)。其中应用到:场景法、等价类划分法、因果图法、错误推测法、边界值法等方法 期望输出:

该期望输出需查阅国标、行标以及使用用户的需求 说明书测试: 检查说明书书写准确性 给大家提三个产品:1.手机 2.电饭锅 3.电梯 有兴趣的同学可以把答案写出来 一个常见的软件测试面试题 问题集 1.软件测试分哪两种方法?分别适合什么情况? 2.一套完整的测试应该由哪些阶段组成?分别阐述一下各个阶段。 3.软件测试的类型有那些?分别比较这些不同的测试类型的区别与联系。 4.测试用例通常包括那些内容?着重阐述编制测试用例的具体做法 5.在分别测试winform的C/S结构与测试WEB结构的软件是,应该采取什么样的方法分别测试?他们存在什么样的区别与联系? 6.在测试winform的C/S结构软件时,发现这个软件的运行速度很慢,您会认为是什么原因?您会采取哪些方法去检查这个原因? 7.描述使用bugzilla缺陷管理工具对软件缺陷(BUG)跟踪的管理的流程8.如果您是测试组长,您会采取什么样的方式管理团队?在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员良好的人际关系的关键是什么? 问题解答: 1.软件测试分哪两种方法?分别适合什么情况? 软件测试方法一般分为两种:白盒测试与黑盒测试。白盒测试又称为结构测试、逻辑驱动测试或基于程序本身的测试,它着重于程序的内部结构及算法,通常不关心功能与性能指标;黑盒测试又被称为功能测试、数据驱动测试或基于规格说明的测试,它实际上是站在最终用户的立场,检验输入输出信息及系统性能指标是否符合规格说明书中有关功能需求及性能需求的规定。 2.一套完整的测试应该由哪些阶段组成?分别阐述一下各个阶段。 计划阶段、设计阶段、白盒单元、白盒集成、黑盒单元、黑盒集成、系统测试、回归测

软件测试面试题大全

面试必问题及答案 1.怎么做好文档测试? 仔细阅读,跟随每个步骤,检查每个图形,尝试每个示例,检查文档的编写是否满足文档编写的目的,内容是否齐全,正确,完善.标记是否正确. 软件测试分哪2种方法?分别适合什么情况? 软件测试分2种:白盒测试和黑盒测试。白盒测试又称为结构测试、逻辑驱动测试或基于程序本身的测试,它着重于程序的内部结构及算法,通常不关心功能与性能指标;黑盒测试又称功能测试、数据驱动测试或基于规格说明的测试,它实际上是站在最终用户的立场,检验输入输出信息及系统性能指标是否符合规格说明书中有关功能需求及性能需求的规定 2.白盒测试有几种方法? 总体上分为静态方法和动态方法两大类。 静态:关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义 动态:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。 3.系统测试计划是否需要同行审批,为什么? 需要,系统测试计划属于项目阶段性关键文档,因此需要评审。 4.Alpha测试与beta的区别? Alpha测试在系统开发接近完成时对应用系统的测试;测试后仍然会有少量的设计变更。这种测试一般由最终用户或其它人员完成,不能由程序或测试员完成。 Beta测试当开发和测试根本完成时所做的测试,最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其它人员完成,不能由程序员或测试员完成。

5.比较负载测试,容量测试和强度测试的区别? 负载测试:在一定的工作负荷下,系统的负荷及响应时间。 强度测试:在一定的负荷条件下,在较长时间跨度内的系统连续运行给系统性能所造成的影响。 容量测试:容量测试目的是通过测试预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限值状态下没有出现任何软件故障或还能保持主要功能正常运行。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。容量测试的目的是使系统承受超额的数据容量来发现它是否能够正确处理。容量测试是面向数据的,并且它的目的是显示系统可以处理目标内确定的数据容量。 6.测试结束的标准是什么? 用例全部测试。 覆盖率达到标准。 缺陷率达到标准。 其他指标达到质量标准 7.描述软件测试活动的生命周期? 测试周期分为计划、设计、实现、执行、总结。其中: 计划:对整个测试周期中所有活动进行规划,估计工作量、风险,安排人力物力资源,安排进度等; 设计:完成测试方案,从技术层面上对测试进行规划; 实现:进行测试用例和测试规程设计; 执行:根据前期完成的计划、方案、用例、规程等文档,执行测试用例。 总结:记录测试结果,进行测试分析,完成测试报告。

软件测试工程师笔试题及答案

测试工程师笔试题 一、计算机知识(30分) 1、在Linux系统中,一个文件的访问权限是755,其含义是什么 参考答案: 755表示该文件所有者对该文件具有读、写、执行权限,该文件所有者所在组用户及其他用户对该文件具有读和执行权限。 2、Linux中,如何从root用户切换到普通用户 参考答案:su su user1 切换到user1,但切换后的当前目录还是root访问的目录 su – user1 切换到user1,并且当前目录切换到user1的根目录下(/home/user1/) 3、简述一下C/S模式和B/S模式的区别 参考答案: c/s 是客户端/服务器架构 b/s 是浏览器/服务器架构 C/S模式有以下特点: S模式将应用与服务分离,系统具有稳定性和灵活性 S模式配备的是点对点的结构模式,适用于局域网,有可靠的安全性 3.由于客户端实现与服务器端的直接连接,没有中间环节,因此响应速度快 4.在C/S模式中,作为客户机的计算机都要安装客户机程序,一旦软件系统升级,每台客户机都要安装客户机程序,系统升级和维护较为复杂 B/S模式有以下特点: 1.系统开发、维护、升级方便 每当服务器应用程序升级时,只要在服务器上升级服务应用程序即可,用户计算机上的浏览器软件不需要修改,系统开发和升级维护方便 S模式具有很强的开放性 在B/S模式下,用户通过通用的浏览器进行访问,系统开放性好 S模式的结构易于扩展 由于Web的平台无关性,B/S模式的结构可以任意扩展,可以从包含一台服务器和几个用户的小型系统扩展成为拥有成千上万个用户的大型系统 4.用户使用方便 B/S模式的应用软件都是基于Web浏览器的,而Web浏览器的界面是类似的。对于无用户交换功能的页面。用户接触的界面都是一致的,用户使用方便 4、Windows操作系统中PATH环境变量的作用是什么 参考答案: PATH是Windows操作系统环境变量,PATH作用是用户在命令行窗口执行一个命令,则在PATH变量设置的目录下依次寻找该命令或对应的执行文件,若找到,则执行,若没有找到,则命令行窗口返回无效命令。 5、TCP和UDP有什么区别 参考答案: TCP-有连接,所以握手过程会消耗资源,过程为可靠连接,不会丢失数据,适合大数据量交换UDP-非可靠连接,会丢包,没有校验,速度快,无须握手过程

软件测试工程师经典面试题目

软件测试工程师面试题汇总 测试技术面试题 (5) 1、什么是兼容性测试?兼容性测试侧重哪些方面? (5) 2、我现在有个程序,发现在Windows上运行得很慢,怎么判别是程序存在问题还是软硬件系统存在问题? (5) 3、测试的策略有哪些? (5) 4、正交表测试用例设计方法的特点是什么? (5) 5、描述使用bugzilla缺陷管理工具对软件缺陷(BUG)跟踪的管理的流程? (5) 6、你觉得bugzilla在使用的过程中,有什么问题? (5) 7、描述测试用例设计的完整过程? (6) 8、单元测试的策略有哪些? (6) 9、LoadRunner分哪三部分? (6) 10、LoadRunner进行测试的流程? (6) 什么是并发?在lordrunner中,如何进行并发的测试?集合点失败了会怎么样? (6) 12、使用QTP做功能测试,录制脚本的时候,要验证多个用户的登录情况/查询情况,如何操作? (6) 13、QTP中的Action有什么作用?有几种? (6) 14、TestDirector有些什么功能,如何对软件测试过程进行管理? (7) 15、你所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性 能测试......)? .. (7) 16、条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录? (8) 17、Beta测试与Alpha测试有什么区别? (8) 18、软件的评审一般由哪些人参加?其目的是什么? (8) 19、测试活动中,如果发现需求文档不完善或者不准确,怎么处理? (8) 20、阶段评审与项目评审有什么区别? (8) 21、阐述工作版本的定义? (8) 22、什么是桩模块?什么是驱动模块? (8) 23、什么是扇入?什么是扇出? (8) 24、你认为做好测试计划工作的关键是什么? (8) 25、你认为做好测试用例工作的关键是什么? (9) 26、简述一下缺陷的生命周期? (9) 27、软件的安全性应从哪几个方面去测试? (9) 28、软件配置管理工作开展的情况和认识? (9) 29、你觉得软件测试通过的标准应该是什么样的? (10) 30、引入测试管理的含义? (10) 31、一套完整的测试应该由哪些阶段组成? (10) 32、单元测试的主要内容? (10) 33、集成测试也叫组装测试或者联合测试,请简述集成测试的主要内容? (10) 34、简述集成测试与系统测试关系? (10) 35、软件测试的文档测试应当贯穿于软件生命周期的全过程,其中用户文档是文档测试的重点。那么软件系统 的用户文档包括哪些? (10) 36、软件系统中除用户文档之外,文档测试还应该关注哪些文档? (10) 37、简述软件系统中用户文档的测试要点? (11) 38、单元测试主要内容是什么? (11) 39、如何理解强度测试? (13) 40、如何理解压力、负载、性能测试测试? (13) 41、什么是系统瓶颈? (13) 42、文档测试主要包含什么内容? (13)

软件测试工程师笔试题

一、判断题 1.软件测试就是为了验证软件功能实现的是否正确,是否完成既定目标的活动,所以软件测试在软件工程的后期才开始具体的工作。(?) 分析:软件测试人员应在需求阶段就加入到开发过程中。因为软件的质量问题会随着软件开发周期的不断展开而不断放大的,而更正质量问题的成本也是不断放大的,也就是说在需求阶段出现的小问题,到开发完成后缺陷可能成几何倍数放大,而修改所需要的成本也会不断的放大,如果测试工程师能够尽早的加入其中的话可以尽早的找出问题,及时发现,避免问题最后放大到不可收拾。 2.发现错误多的模块,残留在模块中的错误也多。(?) 分析:开发人员能力参差不齐,当发现某模块bug数越多,修改的bug越多,则引入新的bug就会越多,那么这些新的bug发现的难度要比修改前发现bug要大的多,其隐藏未发现的bug数量就越多,那么相应的模块质量也就越差。代码复用也可能造成该模块的bug比较多。 3.测试人员在测试过程中发现一处问题,如果影响不大,而自己又可以修改,应立即将此问题正确修改,以加快、提高开发的进程。(?) 分析:正确流程应提交错误缺陷,此时开发组人员会有记录,并修改此问题。如果测试人员自己修改,会导致开发人员无记录,容易出现冗余系统版本,并不清楚哪个为最终版本。 4.单元测试通常应该先进行“人工走查”,再以白盒法为主,辅以黑盒法进行动态测试。(?) 5.功能测试是系统测试的主要内容,检查系统的功能、性能是否与需求规格说明相同。(?) 6.软件质量管理即QM是由QA和QC构成,软件测试属于QC的核心工作内容。(?) 补充:
QA(QualityAssurance)品质保证;
QC(QualityConterller)品质控制员 7.软件测试只能发现错误,但不能保证测试后的软件没有错误。(?) 8.软件就是程序。(?) 概念:软件是计算机程序,程序所用的数据以及相关文档资料的结合。软件又分为系统软件和应用软件两大类。 9.测试只要做到语句覆盖和分支覆盖,就可以发现程序中的所有错误。(?) 分析:白盒测试用例设计6种覆盖方法: a.语句覆盖 b.判定覆盖 c.条件覆盖 d.判定/条件覆盖 e.组合覆盖 f.路径覆盖 软件测试的目的是发现软件中的错误,但不能保证软件没有错误。 10.I18N测试是指对产品做出具有国际性的规划,而L10N测试则是指软件做出符合本地的工作。(?)

最新软件测试笔试

软件测试笔试题 一.测试用例设计题: 1.输入三个数据a,b,c,输入三个数构成三角形,测试a,b,c构成三角形,计算其面积(设计测试用例时面积不用实际计算出来,用X代替面积) 1)int a,b,c 2)1>a;b,c<100 3)int area 2.根据中国象棋中的棋子“马”的走向路径,画出因果图并形成判定表。 二.逻辑题 1.有3个黑帽子,2个白帽子,让三个人并排站成一排,给这三个人每个人都戴上帽子(最后一个人能看到前面两个人戴的帽子的颜色和样子,中间那个人能够看到 自己的左右两个人的帽子的颜色和样子,最前面的那个人什么也看不到),如果问最后那个人自己戴的什么颜色的帽子,他说不知道,那就继续问下一个人。 其实他们三个戴的都是黑色的帽子,最前面那个人知道自己戴的是什么颜色的帽子,为什么? 2.猴子身边有100根香蕉,离猴子家有50米,猴子把香蕉拿回家一次只能拿50根(多一根就会累死),猴子每走1米就吃掉一根,请问猴子到家能拿多少根香蕉? 三.其它 1.软件测试用例设计的关键是什么? 2.软件测试结束的标准是什么? 数据库测试通常都包括哪些方面? 数据库测试一般包括: 1. 数据库连接测试 2. 数据库的健壮性,容错性和恢复能力测试 3. 数据库的安全测试 4. 数据库的性能测试 5. 数据库的容量测试 6. 数据库对象的测试,包括定义的存储过程,视图,触发器,约束,规则等等,都要进行测试以保证功能完好 7. 数据库接口测试,包括数据项的修改操作 数据项的增加操作 数据项的删除操作 数据表增加满 数据表删除空 删除空表中的记录 数据表的并发操作 针对存储过程的接口测试 结合业务逻辑做关联表的接口测试 同样我们需要对这些接口考虑采用等价类、边界值、错误猜测等方法进行测试

软件测试工程师笔试及面试经典试题(大集合)

笔试和面试是每个人都会遇到的问题,如何让你在笔试和面试之前做好充分准备,对笔试和面试的问题有充分的了解,做到知己知彼很重要,如果你想在面试中脱颖而出,请认真学习本篇文章 软件测试工程师经典笔试题及面试题 一、软件测试工程师经典笔试试题 一、判断题(每题1分,12 分,正确的√,错误的╳) 1.软件测试的目的是尽可能多的找出软件的缺陷。() 2.Beta 测试是验收测试的一种。() 3.验收测试是由最终用户来实施的。() 4.项目立项前测试人员不需要提交任何工件。() 5.单元测试能发现约80%的软件缺陷。() 6.代码评审是检查源代码是否达到模块设计的要求。() 7.自底向上集成需要测试员编写驱动程序。() 8.负载测试是验证要检验的系统的能力最高能达到什么程度。() 9.测试人员要坚持原则,缺陷未修复完坚决不予通过。() 10.代码评审员一般由测试员担任。() 11.我们可以人为的使得软件不存在配置问题。() 12.集成测试计划在需求分析阶段末提交。() 二、不定项选择题(每题2 分,10分) 1.软件验收测试的合格通过准则是:() A.软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。 B.所有测试项没有残余一级、二级和三级错误。 C.立项审批表、需求分析文档、设计文档和编码实现一致。 D.验收测试工件齐全。 2.软件测试计划评审会需要哪些人员参加?() A.项目经理 B.SQA 负责人 C.配置负责人 D.测试组 3.下列关于alpha 测试的描述中正确的是:() A.alpha 测试需要用户代表参加 B.alpha 测试不需要用户代表参加 C.alpha 测试是系统测试的一种 D.alpha 测试是验收测试的一种 4.测试设计员的职责有:() A.制定测试计划 B.设计测试用例 C.设计测试过程、脚本 D.评估测试活动 5.软件实施活动的进入准则是:() A.需求工件已经被基线化

软件测试工程师面试题汇总(华为篇)

软件测试工程师面试题汇总(华为篇) 1、怎么来设计测试方案 根据测试需求(包括功能需求和非功能性需求),识别测试要点,识别测试环境要求,安排测试轮次,根据项目计划和开发计划做整体的测试安排。 被测试的特性:通过对需求规格说明书进行分析,列出本次测试需要进行测试的各部分特性(如要测试的功能需求、性能需求、安全性需求等等)。 不被测试的特性:由于资源、进度等方面原因,本次测试不列入测试范围的特性。 测试组网图:进行本次系统测试所需要的软硬件设备、配置数据及相互间的逻辑、物理连接。今后测试执行时需要依据这个组网图来进行环境的搭建。 2、如果给你一个B/S系统你怎么来进行测试 此题答案还可用于回答测试流程,测试流程题亦可参考15题。 阅读系统需求,充分理解需求,记录问题,并与项目需求人员充分沟通。 编写测试需求,包括系统功能和非功能测试要点、罗列测试类型、测试进度、质量要求等。 制定测试计划,包括熟悉测试业务、设计测试用例、执行测试用例、进行测试小结、编写测试报告,任务颗粒度一般应小于5人天 编写测试用例,根据测试方案设计用例,即便没有明确的性能和安全测试要求,也应识别进行此两项测试。 执行软件测试。 进行测试小结,如果测试持续时间较长,每个版本间隙总结本轮测试。 编写测试报告,总结测试过程,汇总度量数据。 3、怎么进行工作流的测试 把握需求,找准结点,理清流程,画出流转图,弄清节点间的数据流转,设计测试用例的时候必须覆盖所有可能的流程。 工作流: 如果问到有没有做过,根据对工作流的了解情况回答,如果比较了解,可以把参与的某个项目中说上一些有工作流的,如果不是很了解就说没有做过,但是学习过相关知识。 4、做性能测试的时候都需要关注哪些参数 并发访问量,服务器响应时间(最小、平均、最大) 并发性能测试的过程是一个负载测试和压力测试的过程,即逐渐增加负载,直到系统的瓶颈或者不能接收的性能点,通过综合分析交易执行指标和资源监控指标来确定系统并发性能的过程。 负载测试(Load Testing)是确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统组成部分的相应输出项,例如通过量、响应时间、CPU负载、内存使用等来决定系统的性能。 负载测试是一个分析软件应用程序和支撑架构、模拟真实环境的使用,从而来确定能够接收的性能过程。压力测试(Stress Testing)是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。 疲劳测试是采用系统稳定运行情况下能够支持的最大并发用户数,持续执行一段时间业务,通过综合分析交易执行指标和资源监控指标来确定系统处理最大工作量强度性能的过程。疲劳强度测试可以采用工具自动化的方式进行测试,也可以手工编写程序测试,其中后者占的比例较大。 一般情况下以服务器能够正常稳定响应请求的最大并发用户数进行一定时间的疲劳测试,获取交易执行指标数据和系统资源监控数据。如出现错误导致测试不能成功执行,则及时调整测试指标,例如降低用户数、缩短测试周期等。还有一种情况的疲劳测试是对当前系统性能的评估,用系统正常业务情况下并发用户数为基础,进行一定时间的疲劳测试。 大数据量测试可以分为两种类型:针对某些系统存储、传输、统计、查询等业务进行大数据量的独立数据量测试;与压力性能测试、负载性能测试、疲劳性能测试相结合的综合数据量测试方案。大数据量测试的关键是测试数据的准备,可以依靠工具准备测试数据。 5、客户没给性能指数,怎么开展性能测试 如果客户没有提出明确的性能指标,可以按照惯例和经验设置,需要和项目经理协商,一般由项目经理确认,质量保证负责给出建议。 举例说一个Server端程序,要求峰值时CPU和MEM消耗在75%以下,而一个页面的访问响应时间一般认为

一套比较完整的软件测试人员面试题

人力资源问题 你为什么选择软件测试行业 因为之前有了解软件测试这个行业,觉得他的发展前景很好。也对 根据你以前的工作经验描述一下软件开发、测试过程,由那些角色负责,你做什么 要有架构师、开发经理、测试经理、程序员、测试员 我在里面主要是负责所分到的模块执行测试用例。 结合你以前的学习和工作经验,你认为如何做好测试。 根据我以前的工作经验,我认为做好工作首先要有一个好的沟通,只有沟通无障碍了,才会有好的协作,才会有跟好的效率,再一个就是技术一定要过关,做测试要有足够的耐心,和一个良好的工作习惯,不懂的就问,实时与同事沟通这样的话才能做好测试工作。 你觉得测试最重要的是什么 尽可能的找出软件的错误 怎样看待加班问题 加班的话我没有太多的意见,但是我还是觉得如果能够合理的安排时间的话,不会有太多时候会加班的。如果一个很有个性的程序员认为自己的BUG不是BUG,怎么解决? 首先我要确定我所提的在我认为是不是bug,如果我认为是的话我会在他面前重现这个bug和他讲这是个bug,和他沟通,或者我会找到我的直系领导让他解决。 为什么在团队中要有测试 因为软件有错误,如果没有专业的测试人员很难发现软件的一些错误。 在测试时代学习自己最大的收获是什么? 在测试时代我除了学习了测试的知识外,还看到了老师们对待测试的一种态度,明白了做任何工作都要有沟通,做测试的也要有很好的沟通才可以做好。知道自己在项目组中的位置,和开发的关系。 你对未来的规划 我想在工作中慢慢的积累经验,使自己强大起来,能够担任更重要的职务。 自己优势及缺点 我的优点是有足够的耐心对待每一件事情,善于观察事物,承受压力的能力很强。缺点可能就是我不是很爱说话,习惯做不习惯说,但是和人沟通还是没有问题的。 你为什么选择测试时代不选择51testing 因为相对比来看测试时代价钱相对公道,师资也不错,还有一个原因就是在网上查了一下测试时代的口碑不错,也是网放心过来的原因。 13.请谈谈您对测试工作的理解 我认为测试工作是找出软件产品的错误, 14.你认为测试人员需要具备哪些素质? 我认为做测试的应该要有一定的协调能力,因为测试人员要经常与开发接触处理一些问题,如果处理不好的话会引起一些冲突这样的话工作上就会做不好。还有测试人员要有一定的耐心,有的时候做的测试很枯燥乏味的。除了要有耐心之外还要细心,不放过每一个可能的错误。 15.你为什么能够做测试这一行。 虽然说我的测试技术还不是很纯熟,但是我觉得我还是可以胜任软件测试这个工作的,因为做软件测试不仅是要求技术好,还要有一定的沟通能力,耐心、细心等外在的因素。综合起来看我认为我是胜任这个工作的。 1测试的目的是什么? 测试的目的是找出软件产品中的错误,是软件尽可能的符合用户的要求。

软件测试基础(经典测试面试题答案)

软件测试基础教程 测试的基本概念 测试是软件生存周期中十分重要的一个过程,是产品发布、提交给最终用户前的稳定化阶段。 1、测试的分类: 从测试方法的角度可以分为手工测试和自动化测试。 手工测试:不使用任何测试工具,根据事先设计好的测试用例来运行系统,测试各功能模块。 自动化测试:利用测试工具,通过编写测试脚本和输入测试数据,自动运行测试程序。目前最常用的自动化测试工具是基于GUI的自动化测试工具,基本原理都是录制、回放技术。 从整体的角度可以分为单元测试、集成测试、系统测试、确认测试。 单元测试:是针对软件设计的最小单位—程序模块,进行正确性检验的测试工作。一般包括逻辑检查、结构检查、接口检查、出错处理、代码注释、输入校验、边界值检查。 单元测试的依据是系统的详细设计;一般由项目组开发人员自己完成。 集成测试:在单元测试的基础上,将所有模块按照设计要求组装进行测试。一般包括逻辑关系检查、数据关系检查、业务关系检查、模块间接口检查、外部接口检查。 系统测试:系统测试是在所有单元、集成测试后,对系统的功能及性能的总体测试。 确认测试:模拟用户运行的业务环境,运用黑盒测试方法,验证软件系统是否满足用户需求或软件需求说明书中指明的软件特性(功能、非功能)上的。 从测试原理上分为:白盒测试、黑盒测试和灰盒测试。 白盒测试:是通过程序的源代码进行测试而不使用用户界面。这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正。 黑盒测试:是通过使用整个软件或某种软件功能来严格地测试, 而并没有通过检查程序的源代码或者很清楚地了解该软件的源代码程序具体是怎样设计的。测试人员通过输入他们的数据然后看输出的结果从而了解软件怎样工作。在测试时,把程序看作一个不能打开的黑盆子, 在完全不考虑程序内部结构和内部 特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求 规格说明书的规定正常使用,程序是否能适当地接收和正确的输出。黑盒测试 方法主要有等价类划分、边界值分析、因—果图、错误推测法。 等价类划分: 是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法. 1) 划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,

软件测试人员面试题

你为什么选择软件测试行业 因为之前有了解软件测试这个行业,觉得他的发展前景很好。也对 责,你做什么 我在里面主要是负责所分到的模块执行测试用例。 结合你以前的学习和工作经验,你认为如何做好测试。 根据我以前的工作经验,我认为做好工作首先要有一个好的沟通,只有沟通无障碍了,才会有好的协作,才会有跟好的效率,再一个就是技术一定要过关,做测试要有足够的耐心,和一个良好的工作习惯,不懂的就问,实时与同事沟通这样的话才能做好测试工作。 你觉得测试最重要的是什么 尽可能的找出软件的错误 怎样看待加班问题 加班的话我没有太多的意见,但是我还是觉得如果能够合理的安排时间的话,不会有太多时候会加班的。 如果一个很有个性的程序员认为自己的BUG不是BUG,怎么解决?首先我要确定我所提的在我认为是不是bug,如果我认为是的话我会在他面前重现这个bug和他讲这是个bug,和他沟通,或者我会找到我的直系领导让他解决。

为什么在团队中要有测试 因为软件有错误,如果没有专业的测试人员很难发现软件的一些错误。在测试时代学习自己最大的收获是什么? 在测试时代我除了学习了测试的知识外,还看到了老师们对待测试的一种态度,明白了做任何工作都要有沟通,做测试的也要有很好的沟通才可以做好。知道自己在项目组中的位置,和开发的关系。 我想在工作中慢慢的积累经验,使自己强大起来,能够担任更重要的职务。 自己优势及缺点 的能力很强。缺点可能就是我不是很爱说话,习惯做不习惯说,但是和人沟通还是没有问题的。 你为什么选择测试时代不选择51testing 因为相对比来看测试时代价钱相对公道,师资也不错,还有一个原因就是在网上查了一下测试时代的口碑不错,也是网放心过来的原因。 13.请谈谈您对测试工作的理解 我认为测试工作是找出软件产品的错误, 14.你认为测试人员需要具备哪些素质? 我认为做测试的应该要有一定的协调能力,因为测试人员要经常与开发接触处理一些问题,如果处理不好的话会引起一些冲突这样的话工

如何回答常见的软件测试面试问答

如何回答常见的软件测试面试问答 一说起软件测试面试问答,就自然而然想起可亲可敬的面试官,就少不了要回答面试官各种或正常或奇葩的提问。特别是对于很多平时对着电脑多过于对人的软件测试程序员来说,面对面试官接二连三的问题,有的时候也会手忙脚乱。那么,以下就让千锋软件测试的就业老师好好讲解一些常见的软件测试面试题!希望对即将面试的软件测试员们有所帮助! 软件测试面试问答1.开发与测试的关系 开发和测试是一个整体,也可以说测试驱动着开发,开发配合着测试,相辅相成的,在一个完整的项目组中缺一不可。 软件测试面试问答2.测试总结报告包括哪些项

测试用例的通过数,测试用例的未通过数,以及测试用例的通过率,未通过的功能都集中在哪几个功能模块,根据测试经验以及测试结果进行一个缺陷的分析和建议。 软件测试面试问答3.测试用例包括哪些项 产品名称、功能模块、用例的编号、编写人、被测功能的简述,测试的预置条件,测试步骤,预期结果,实际结果。 软件测试面试问答4.缺陷处理流程 首先,将缺陷的详细信息录入缺陷管理系统,并分配给对应的开发人员。其次,如果遇到一些难以发现的缺陷,在开发人员修正过程中配合开发人员进行Bug的再现。更重要的是,开发人员修正Bug后,会在缺陷管理系统中将修正后的Bug状态更改,通常为Fixed状态。 Finally,新版本发布后,测试人员会将bug状态更改为Fixed的Bug进行回归测试。如果测试通过,则将该Bug关闭,如果是未通过,则将该Bug从Fixed更改为Reopen状态,继续让开发人员来修正,并等待下一个新版本发布后的二次回归测试。 软件测试面试问答5.缺陷报告包括哪些项 包括:编写人、被测系统的版本号、测试环境、预期结果、实际结果、对于实际结果如有必要附上截图、测试用例数、测试用例通过数,测试用例的通过率、对缺陷的一个分析汇总。

软件测试技术类面试题集锦(6)十个经典软件测试面试题

软件测试技术类面试题集锦(6)十个经典 软件测试面试题 问题:软件测试技术类面试题集锦(6)十个经典软件测试面试题回答: 1.什么是软件测试,软件测试的目的 参考答案: 什么是软件测试: ·软件测试就是在受控制的条件下对系统或应用程序进行操作并评价操作结果的过程,所谓控制条件应包括正常条件与非正常条件。 ·软件测试过程中应该故意地去促使错误的发生,也就是事情在不该出现的时候出现或者在应该出现的时候没有出现。从本质上说,软件测试是“探测”,在“探测”中发现软件的毛病。 ·软件测试贯穿于软件定义与开发的整个周期,软件的需求规格说明书,结构设计及程序编码,都属于软件测试的对象。 ·软件测试包含白盒测试与黑盒测试,白盒测试是针对程序代码进行正确性检验的测试工作,黑盒测试独立于程序代码,从用户的角度,通过一定的测试步骤与测试案例,验证软件功能、性能等指标能否满足实际应用需求的测试工作。 软件测试的目的: 软件测试的目的是为了保证软件产品的最终质量,在软件开发的

过程中,对软件产品进行质量控制。一般来说软件测试应由独立的产品评测中心负责,严格按照软件测试流程,制定测试计划、测试方案、测试规范,实施测试,对测试记录进行分析,并根据回归测试情况撰写测试报告。测试是为了证明程序有错,而不能保证程序没有错误。 2.软件测试的风险主要体现在哪里 参考答案: 我们没有对软件进行完全测试,实际就是选择了风险,因为缺陷极有可能存在没有进行测试的部分。举个例子,程序员为了方便,在调试程序时会弹出一些提示信息框,而这些提示只在某种条件下会弹出,碰巧程序发布前这些代码中的一些没有被注释掉。在测试时测试工程师又没有对其进行测试。如果客户碰到它,这将是代价昂贵的缺陷,因为交付后才被客户发现。 因此,我们要尽可能的选择最合适的测试量,把风险降低到最小。 3.测试工具在测试工作中是什么地位 参考答案: 国内的很多测试工程师对测试工具相当迷恋,尤其是一些新手,甚至期望测试工具可以取代手工测试。测试工具在测试工作中起的是辅助作用,一般用来提高测试效率。自动化测试弥补了手工测试的不足,减轻一定的工作量。实际上测试工具是无法替代大多数手工测试的,而一些诸如性能测试等自动化测试也是手工所不能完成的。 对于自动测试技术,应当依据软件的不同情况来分别对待,一般自动技术会应用在引起大量重复性工作的地方、系统的压力点、以及

软件测试面试题答案

软件测试面试题答案 千锋老师掌握了大量的软件测试面试题答案,以下为比较典型的两个: 1、以windows对文件的复制粘帖功能为例,尽可能多地写出测试思路。 软件测试面试题答案: <1>基本功能测试:文件的复制粘贴功能,首先关键字“文件”,文件有不同的分类(图片、视频、音频、文档等),每个分类又有不同的类型(文档类型:txt doc execl pdf等),每个文件又有不同的大小,而且文件还有很多权限,是不是隐藏,是不是只是管理员可执行。选择不同分类的不同类型,不同大小的文件做测试资源。 比如:文档类型里面txt文件可以分为1.KB的txt文件、1MB的txt文件、

1GB的txt文件...... 下一个关键字复制粘贴复制有多种方式右击选择、Ctrl+C、拖动复制,对应粘贴也有各种方式。然后从哪复制,粘贴到哪,比如可以有本机硬盘、移动硬盘、优盘、内存卡、软盘、光盘、连接手机存储,复制到网络地址等等。 复制粘贴后文件是不是可用,文件权限是不是有变化。复制过去容量不够怎么处理?复制过后有重名文件怎么处理?复制过程中取消、关机、拔优盘怎么处理?复制过程能不能执行文件? <2>性能测试:复制粘贴功能性能怎么样?复制文件的速度可不可以接受?同时复制多个文件是不是可以完成?复制文件过程中占用CPU资源大不大,耗电量大不大? <3>兼容性测试:Windows7,Windows8,Windows8.1,Windows10等各种windows版本是不是都支持这个功能。 <4>交互测试:复制粘贴文件时,使用windows存储的其他功能是否有影响?比如播放本地的音频、视频、等同时复制文件是不是有影响。一边复制,一边粘贴是不是有影响。 2、已知String convert(String page)作用是将WEB页转码为方便移动设备查看的页面,为了确保转码的正确性,请设计相应测试策略。 软件测试面试题答案:

软件测试工程师常见面试题及答案

软件测试工程师常见面试题及答案 --> 导语:软件工程师一般指从事软件开发职业的人。 一、什么是软件测试 IEEE中是这样描述的:使用人工或自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。 二、为什么要开展软件测试呢 首先,测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程的缺陷,以便及时改进。同时,这种分析也能帮助测试人员设计出游针对性的测试方法,改善测试的效率和有效性。 其次,没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法。 简单地说,测试的根本目的就是确保最终交给客户的产品符合用户的需求,在产品交给用户之前尽可能多地发现并改正错误。 三、我们怎么开展软件测试呢 现代软件测试活动一般包括以下内容: 制定测试计划。 设计测试用例。

实施测试。 提交缺陷报告。 测试总结。 四、软件测试要达到什么目标呢 软件测试一般要达到下列目标: 确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明。 确保产品满足性能和效率的要求。使用起来系统运行效率低、用户界面不友好,用户操作部方便的产品不能说是一个有竞争力的产品。用户最关心的不是产品的技术有多先进,而是他能从这些技术中得到多少好处,使用是否得心应手。 确保产品是健壮的和适应用户环境的。健壮性即稳定性,是产品质量的基本要求。 五、测试和调试有什么不同 测试调试 发现软件的错误(是否满足用户需求) 确定程序中可疑错误的原因和确切位置,对程序(设计或编号)进行修改,排除错误贯穿整个软件生命周期(很多公司只在编码后期才进行测试) 主要在开发阶段 由测试人员和程序员参与程序员参与 可见,有些人认为测试和调试时一码事是错误的,实际上测试与调试有着本质的区别。简单地说,测试的主要工作是找缺

九个常见软件测试面试题

九个常见软件测试面试题 千锋老师非常关注同学们的软件测试面试题就业问题,到现在为止,所有千锋软测毕业同学都能高薪高起点就业,以下是千锋老师搜集的软件测试面试题,一起来看看吧! 1.项目介绍(项目经验直接决定一个人能否胜任一份工作,企业更应该看重一个人解决问题的思路和具体能力),项目介绍部分重要的思路是应该先整体后局部,介绍整体的时候要有量化的数据(从项目度量的五大维度:规模,包括项目代码规模,需求规模、用例规模,工作量,进度,质量和成本),然后是整体的测试流程,再然后是角色与职责,接下来是项目中自己的特色,比如做得好的是什么、遇到的困难是什么、败笔是什么,末了是心得体会。 2.数据库方面知识,基本的要求是数据库记录的增删改查(insert、delete、update、select),表结构的增删改查(create、drop、alter、describe)、存储过程、触发器等。

3.linux操作系统相关,基本的目标是熟悉常见的50个命令,比如find命令(-name、-type、-perm、-user、-group、-ctime、-atime)等,熟悉vi、熟悉linux搭建测试环境。比如LAMP环境搭建。 4.缺陷相关知识,基本的是缺陷跟踪的流程(流程的基本要素),整体的流程,能在纸上给面试官画出来更好(尤其是男面试官,从男人好色的角度来看,写得清楚很重要),缺陷单的属性,至少能列出20个属性,每个属性的意义,如何描述好缺陷单,缺陷单描述的5C原则,比如缺陷重现步骤应该complete.如何描述一个你认为的经典的bug单。 5.设计用例相关,基本的包括用例的格式要素,用例设计工程方法论,每个方法要求(方法的背景,操作步骤,优缺点、适应范围,与其他用例方法如何配合),在项目中如何利用测试用例设计工程方法。 还有如何评价、评审测试用例,评审从哪些维度?要设计好测试用例需要哪些方面的知识结构,比如技术、业务、方法。 6.软件测试流程,系统测试相关规范和标准的流程:熟悉产品/项目,需求评审,测试需求,测试计划,测试方案,测试用例,预测试,一轮正式测试、第二轮回归测试、第三轮测试,测试报告,测试总结,测试指南。 7.网络相关,基本的网络基础知识,比如TCP/IP协议。 8.测试工具,包括三个大的类型,性能测试工具、自动化测试工具、测试管理类工具。起码的要求是熟悉工具的使用。

软件测试面试题[找工作必读]

01. 为什么要在一个团队中开展软件测试工作? 因为没有经过测试的软件很难在发布之前知道该软件的质量,就好比ISO质量认证一样,测试同样也需要质量的保证,这个时候就需要在团队中开展软件测试的工作。在测试的过程发现软件中存在的问题,及时让开发人员得知并修改问题,在即将发布时,从测试报告中得出软件的质量情况。 02. 您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作? 我曾经做过web测试,后台测试,客户端软件,其中包括功能测试,性能测试,用户体验测试。最擅长的是功能测试 03. 您所熟悉的软件测试类型都有哪些?请试着分别比较这些不同04. 的测试类型的区别与联系(如功能测试、性能测试……) 测试类型有:功能测试,性能测试,界面测试。 功能测试在测试工作中占的比例最大,功能测试也叫黑盒测试。是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。 性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。 界面测试,界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。而且设计良好的界面能够引导用户自己完成相应的操作,起到向导的作用。同时界面如同人的面孔,具有吸引用户的直接优势。设计合理的界面能给用户带来轻松愉悦的感受和成功的感觉,相反由于界面设计的失败,让用户有挫败感,再实用强大的功能都可能在用户的畏惧与放弃中付诸东流。 区别在于,功能测试关注产品的所有功能上,要考虑到每个细节功能,每个可能存在的功能问题。性能测试主要关注于产品整体的多用户并发下的稳定性和健壮性。界面测试更关注于用户体验上,用户使用该产品的时候是否易用,是否易懂,是否规范(快捷键之类的),是否美观(能否吸引用户的注意力),是否安全(尽量在前台避免用户无意输入无效的数据,当然考虑到体验性,不能太粗鲁的弹出警告)?做某个性能测试的时候,首先它可能是个功能点,首先要保证它的功能是没问题的,然后再考虑该功能点的性能测试 04.您认为做好测试用例设计工作的关键是什么? 白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果 黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题 05. 请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。 黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。 白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。 软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,

相关文档
相关文档 最新文档