白盒测试面试技巧
顺丰软件测试面试题

顺丰软件测试面试题1. 背景介绍在当今信息时代,软件的质量和稳定性对于企业和用户来说都至关重要。
顺丰作为一家领先的快递物流企业,为了保证其运营系统的正常运行和客户的满意度,重视软件测试的作用不可或缺。
因此,顺丰对软件测试岗位的应聘者有一些特定的面试问题,以测试其能力和经验。
2. 面试问题一:请简述软件测试的基本概念和目标。
软件测试是一种系统的活动,旨在评估和改进软件质量。
其基本概念是通过设计、实施和执行测试用例,发现软件中的错误并确保其符合规范和用户需求。
软件测试的目标包括提高软件质量、发现潜在问题、优化用户体验,确保系统的稳定性和可靠性等。
3. 面试问题二:请描述一下黑盒测试和白盒测试,并举例说明。
黑盒测试是一种测试方法,通过不考虑内部结构和实现细节,只关注软件的输入和输出来进行测试。
测试人员只关注系统的功能,并利用测试用例覆盖可能的输入组合以确认输出是否符合预期。
例如,对于一个登录页面,黑盒测试可以验证用户名和密码是否正确,是否会产生错误信息等。
白盒测试是一种测试方法,测试人员可以了解软件的内部结构和源代码,通过验证代码的执行路径和逻辑来进行测试。
测试人员可以检查条件语句、循环结构、函数调用等,并编写测试用例来覆盖不同的代码路径。
例如,在一个网站的购物车功能中,白盒测试可以验证添加商品、更新数量、删除商品等功能是否正常执行。
4. 面试问题三:谈谈您在软件测试项目中的角色和责任。
在软件测试项目中,测试人员通常承担以下角色和责任:需求分析:与业务分析师和开发团队合作,确保对用户需求的正确理解,并将其转化为可验证的测试用例。
测试计划和策略:制定测试计划,并设计测试策略,包括测试范围、测试级别、测试环境等。
测试用例设计:根据需求和设计文档,编写详细的测试用例,确保对系统功能的全面覆盖。
执行测试:根据测试计划和测试策略,执行测试用例,并记录测试结果和问题。
问题跟踪与管理:及时记录和提交测试问题,并与开发团队合作进行问题追踪和解决。
软件测试常见面试题及答案

软件测试常见面试题及答案软件测试常见面试题及答案1、白箱测试和黑箱测试是什么?什么是回归测试?答题建议:简述下概念即可。
2、单元测试、集成测试、系统测试的侧重点是什么?答题建议:围绕重点简单概括即可。
如下:单元测试的重点是系统的模块,包括子程序的正确性验证等。
集成测试的重点是模块间的衔接以及参数的传递等。
系统测试的重点是整个系统的运行以及与其他软件的兼容性。
3、设计用例的方法、依据有那些?答题建议:测试分为白盒测试和黑盒测试,回答时,要注意分开说。
白盒测试用例设计有如下方法:基本路径测试、等价类划分、边界值分析、覆盖测试、循环测试、数据流测试、程序插桩测试、变异测试。
依据就是详细设计说明书及其代码结构。
黑盒测试用例设计方法:基于用户需求的测试、功能图分析方法、等价类划分方法、边界值分析方法、错误推测方法、因果图方法、判定表驱动分析方法、正交实验设计方法。
依据是用户需求规格说明书,详细设计说明书。
4、一个测试工程师应具备那些素质和技能?答题建议:一个好的测试工程师,不仅要基础扎实,对自身的性格、责任心都有非常高的要求。
具体如下:(1)掌握基本的测试基础理论(2)本着找出软件存在的问题的态度进行测试,即客观吧,不要以挑刺形象出现(3)可熟练阅读需求规格说明书等文档(4)以用户的观点看待问题(5)有着强烈的质量意识(6)细心和责任心(7)良好的有效的沟通方式(与开发人员及客户)(8)具有以往的测试经验(9)能够及时准确地判断出高危险区在何处.5、集成测试通常都有那些策略?答题建议:大致说四点即可,当然说全更好。
集成测试有十种策略:(1)大爆炸集成(2)自顶向下集成(3)自底向上集成(4)三明治集成(5)分层集成(6)基干集成(7)基于功能的集成(8)基于消息的集成(9)基于风险的集成(10)基于进度的集成.。
游戏测试面试题目

游戏测试面试题目一、测试基础知识在游戏测试中,以下哪种测试是指在游戏开发早期以及正式测试阶段进行的全面测试,以验证游戏的整体功能和流程是否正常?答案:综合测试二、测试流程1. 游戏测试是一个逐步深入的过程,请根据测试流程的不同阶段简要说明测试目标和关键点。
答:- 阶段一:初步测试目标:验证游戏的基本功能是否正常,例如游戏界面、操控、音效等。
关键点:游戏的基本功能是否能够正常运行,不出现崩溃或卡顿等问题。
- 阶段二:功能测试目标:验证游戏各项功能是否按照设计要求实现,包括角色技能、游戏任务等。
关键点:确保游戏的各项功能能够正常使用,并且没有明显的bug。
- 阶段三:性能测试目标:验证游戏在不同硬件设备上的性能表现,如帧率、加载速度等。
关键点:确保游戏在各种设备上能够平稳运行,不出现明显的性能问题。
- 阶段四:兼容性测试目标:验证游戏在不同操作系统、不同浏览器等环境下的兼容性。
关键点:确保游戏在各种环境下都能够正常运行,不出现兼容性问题。
- 阶段五:压力测试目标:验证游戏在大量玩家同时在线时的稳定性和表现。
关键点:确保游戏服务器能够承受高并发的玩家同时在线,并且不出现服务器崩溃等问题。
2. 在测试流程中,为了保证测试的全面性和有效性,通常需要进行哪些测试手段和方法?答:- 黑盒测试:根据游戏的需求和功能设计,通过输入和输出的验证来测试游戏的功能是否正常。
- 白盒测试:针对游戏的代码进行测试,检测代码中是否存在潜在的错误和漏洞。
- 冒烟测试:在每个阶段结束后,对游戏的基本功能进行一次全面测试,确保游戏的核心功能正常。
- 回归测试:在每次游戏更新后,对已经测试过的功能进行再次测试,确保更新后的游戏没有引入新的问题。
- 用户体验测试:邀请真实玩家参与测试,收集他们的意见和建议,用于游戏的优化和改进。
三、测试技巧和经验1. 在进行游戏测试时,你认为哪些方面的问题容易被忽视?请提出你的解决思路。
答:- 较为复杂的游戏机制:对于带有复杂玩法和系统的游戏,容易忽视其中某些细节导致问题未被发现。
简述白盒测试的要点

简述白盒测试的要点白盒测试是软件测试领域中一种重要的测试方法,也被称为结构化测试或透明盒测试。
与黑盒测试不同,白盒测试是基于代码内部逻辑进行测试,可以深入了解软件系统的内部结构和代码执行路径。
在进行白盒测试时,测试人员通常具备一定的编程和代码分析能力,能够直接访问源代码进行测试。
要点一:测试覆盖率在进行白盒测试时,一个重要的要点是测试覆盖率。
通过测试覆盖率可以衡量测试用例对代码的覆盖程度,帮助评估测试的全面性和有效性。
常见的测试覆盖率指标包括语句覆盖率、分支覆盖率、路径覆盖率等。
测试人员需要设计足够多的测试用例,以达到较高的测试覆盖率,确保代码的各个路径都经过有效测试。
要点二:代码质量分析白盒测试还可以结合代码质量分析工具,对源代码进行静态分析,发现潜在的代码缺陷和安全漏洞。
通过代码质量分析,测试人员可以及早发现问题,并采取相应的措施进行修复,提高代码的可靠性和安全性。
要点三:单元测试在白盒测试中,单元测试是一种非常重要的测试方法。
单元测试是针对软件系统中的最小功能模块进行测试,帮助测试人员验证代码的正确性。
通过单元测试,可以及早发现代码层面的问题,并在开发早期进行修复,避免问题扩散到整个系统中。
要点四:集成测试另外,集成测试也是白盒测试的重要组成部分。
在集成测试中,测试人员需要测试不同模块之间的交互和集成,保证系统各个部分之间的协作正常。
通过集成测试,可以发现模块集成时可能出现的问题,确保整个系统的功能完整性和稳定性。
要点五:性能测试最后,性能测试也是白盒测试需要关注的要点之一。
性能测试可以帮助评估系统在各种压力下的表现,包括系统的响应速度、并发用户量、负载容量等。
通过性能测试,可以确保系统在正常使用情况下具有良好的性能表现,提高用户体验和系统可靠性。
综上所述,白盒测试是一种重要的测试方法,通过测试覆盖率、代码质量分析、单元测试、集成测试和性能测试等要点,可以帮助测试人员全面、有效地评估软件系统的质量和稳定性,提高系统的可靠性和安全性。
java白盒测试面试题

java白盒测试面试题白盒测试是软件测试中的一种技术手段,主要用于检查和验证程序的内部结构、逻辑和代码覆盖率等。
在Java开发领域,白盒测试是一项必备的技能。
本文将介绍一些常见的Java白盒测试面试题,帮助大家准备面试。
一、简答题1. 什么是白盒测试?白盒测试是一种软件测试方法,主要通过检查和验证程序的内部结构、逻辑和代码覆盖率等来进行测试。
测试人员需要了解被测程序的具体实现细节,以便设计有效的测试用例。
2. 白盒测试的优点有哪些?白盒测试可以更全面地测试程序的各个分支和路径,提高测试覆盖率。
其优点包括发现隐藏的逻辑错误、减少测试漏洞、提高测试效率、增强代码质量等。
3. 白盒测试常用的技术手段有哪些?常见的白盒测试技术手段包括代码覆盖率分析、路径覆盖分析、控制流分析、数据流分析、逻辑覆盖分析等。
4. 请解释一下代码覆盖率是什么?代码覆盖率是一个衡量标准,用于指导测试过程中对代码执行的覆盖情况。
它表示被测试的代码被测试用例执行的比例,常见的代码覆盖率指标包括语句覆盖率、分支覆盖率、判定覆盖率等。
5. 请简要介绍路径覆盖分析。
路径覆盖分析是一种白盒测试技术,用于检查程序中各个可能的执行路径是否都被测试用例覆盖到。
通过路径覆盖分析,可以确定程序中存在的死代码、无效分支和无法触发的异常情况。
6. 什么是控制流分析?控制流分析是一种静态分析技术,在程序的控制流图基础上,对程序的各个分支和路径进行分析。
它可以帮助测试人员理解程序的执行顺序、识别可能出现的错误和漏洞。
7. 什么是数据流分析?数据流分析是一种静态分析技术,用于分析程序中的数据依赖、数据定义和使用等。
通过数据流分析,可以检查程序中的不合法数据访问、数据赋值错误、数据传递问题等,并设计相应的测试用例。
二、编程题1. 编写一个Java方法,计算两个整数的最大公约数。
```public static int gcd(int a, int b) {if (b == 0) {return a;}return gcd(b, a % b);}```2. 编写一个Java方法,判断一个字符串是否为回文字符串。
软件测试面试大全

面试网络协议(udp)、网络协议的定义:为计算机网络中进行数据交换而建立的规则、标准或约定的集合。
例如,网络中一个微机用户和一个大型主机的操作员进行通信,由于这两个数据终端所用字符集不同,因此操作员所输入的命令彼此不认识。
为了能进行通信,规定每个终端都要将各自字符集中的字符先变换为标准字符集的字符后,才进入网络传送,到达目的终端之后,再变换为该终端字符集的字符。
当然,对于不相容终端,除了需变换字符集字符外。
其他特性,如显示格式、行长、行数、屏幕滚动方式等也需作相应的变换。
alpha测试和beta测试Alpha测试是用户在开发环境下的测试,或者是开发内部的用户在模拟实际环境下的测试;Beta测试是由软件的一个或多个用户在实际使用环境下进行的测试;两者区别:Alpha测试由开发人员或测试人员在场,可随时记录下错误和使用中出现的问题;Beta测试开发人员和测试人员都不在场大型通用软件,在正式发布前,通常需要执行Alpha和Beta测试,目的是从实际终端用户的使用角度,对软件的功能和性能进行测试,以发现可能只有最终用户才能发现的错误。
Alpha 测试(α测试)是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由程序员或测试员完成。
Alpha测试发现的错误,可以在测试现场立刻反馈给开发人员,由开发人员及时分析和处理。
目的是评价软件产品的功能、可使用性、可靠性、性能和支持。
尤其注重产品的界面和特色。
Alpha测试可以从软件产品编码结束之后开始,或在模块(子系统)测试完成后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。
有关的手册(草稿)等应该在Alpha测试前准备好。
Beta测试(β测试)是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。
开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。
因而,Beta测试是在开发者无法控制的环境下进行的软件现场应用。
软件测试的面试题目(3篇)

第1篇一、基础知识1. 什么是软件测试?请简述软件测试的目的和重要性。
解析:软件测试是为了发现软件中的错误,验证软件是否满足需求规格说明书,确保软件质量的一种活动。
软件测试的目的是确保软件产品能够正常运行,满足用户需求,降低软件风险,提高软件质量。
软件测试的重要性在于,它可以提高软件的可靠性、可用性和安全性,降低软件维护成本,提高用户满意度。
2. 请列举常见的软件测试类型。
解析:常见的软件测试类型包括:(1)功能测试:验证软件功能是否符合需求规格说明书。
(2)性能测试:评估软件在特定负载下的性能表现。
(3)安全性测试:检测软件的安全性漏洞,确保用户数据安全。
(4)兼容性测试:验证软件在不同操作系统、浏览器、硬件等环境下的兼容性。
(5)用户体验测试:评估软件的用户界面、操作流程等是否友好。
(6)回归测试:在软件更新或修改后,重新测试已测试过的功能,确保修改没有引入新的错误。
3. 请简述黑盒测试和白盒测试的区别。
解析:黑盒测试和白盒测试的区别主要在于测试方法、测试依据和测试目的。
(1)黑盒测试:不关心软件内部实现,只关注软件的功能和外部行为。
测试人员根据需求规格说明书设计测试用例,通过输入和输出验证软件功能是否正确。
(2)白盒测试:关注软件内部实现,测试人员需要了解软件的内部结构、代码逻辑等。
测试人员根据代码设计测试用例,检查代码的正确性、健壮性和性能。
4. 请简述静态测试和动态测试的区别。
解析:静态测试和动态测试的区别主要在于测试时间和测试方法。
(1)静态测试:在软件运行之前进行,通过检查代码、设计文档等静态资源来发现错误。
静态测试方法包括代码审查、静态分析等。
(2)动态测试:在软件运行过程中进行,通过运行程序并观察其行为来发现错误。
动态测试方法包括单元测试、集成测试、系统测试等。
二、测试用例设计1. 请简述等价类划分法的原理和步骤。
解析:等价类划分法是一种常用的测试用例设计方法,其原理是将输入数据划分为若干个等价类,从每个等价类中选取一个代表性的值作为测试用例。
软件测试六种白盒子测试方法

白盒测试的优缺点
1. 优点
·迫使测试人员去仔细思考软件的实现
·可以检测代码中的每条分支和路径
·揭示隐藏在代码中的错误
·对代码的测试比较彻底
·最优化
2. 缺点
·昂贵
·无法检测代码中遗漏的路径和数据敏感性错误
·不验证规格的正确性
六种覆盖方法
首先为了下文的举例描述方便,这里先给出一张程序流程图。(本文以1995年软件设计师考试的一道考试题目为例,图中红色字母代表程序执行路径)。
六种白盒子测试方法:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组...
白盒测试的概述
由于逻辑错误和不正确假设与一条程序路径被运行的可能性成反比。由于我们经常相信某逻辑路径不可能被执行, 而事实上,它可能在正常的情况下被执行。由于代码中的笔误是随机且无法杜绝的,因此我们要进行白盒测试。
第一步:确定测试策略。在本例中,对被测程序的功能有明确的要求,即:
(1)判断能否组成三角形;
(2)识别等边三角形;
Байду номын сангаас
(3)识别等腰三角形;
(4)识别任意三角形。因此可首先用黑盒法设计测试用例,然后用白盒法验证其完整性,必要时再进行补充。
第二步:根据本例的实际情况,在黑盒法中首先可用等价分类法划分输入的等价类,然后用边界值分析法和猜错法作补充。
·在上下边界及可操作范围内运行所有循环
·检查内部数据结构以确保其有效性
白盒测试的目的:通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。
白盒测试的特点:依据软件设计说明书进行测试、对程序内部细节的严密检验、针对特定条件设计测试用例、对软件的逻辑路径进行覆盖测试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
白盒测试面试技巧白盒测试面试技巧白盒测试面试问题如果您是测试组长,您会采取什么样的方式管理团队?在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员良好的人际关系的关键是什么?答案:我会对成员的思想做一个较为全面的了解,分析项目的形势,当前的状况,未来的发展方向、目标,让每个成员都参与到项目的讨论中;人员的分配要合理,要能适应岗位的要求,明确其应有的岗位职责,根据能力高低来分配工作,对实位的奖惩要符合其岗位的重要程度;制定公司的规章制度,并严格执行,领导的激励也不可缺少。
提高沟通的效率和改善沟通的方法,首先要确定问题,这才是最重要的,也是对测试人员能力的挑战;然后是态度要和蔼,一定要知道开发的压力不比测试小;在提问题单前一定要有沟通(电话或邮件都可以),如果问题由于一些原因不修改(要经过项目经理确认),则就要发送确认邮件给开发相关人员,转发项目经理和更高层的领导!维持测试人员同开发团队中其他成员良好的人际关系的关键是专业精神和态度,让其他人员感觉到我在项目中的重要性,同时也要让其他人员感觉和我在项目中工作是快乐的!第二: 常见的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。
答案: 1. 等价类划分常见的软件测试面试题划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.2. 边界值分析法边界值分析方法是对等价类划分方法的补充。
测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.3. 错误推测法基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结。
还有, 输入数据和输出数据为0的情况。
输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况。
可选择这些情况下的例子作为测试用例.4. 因果图方法前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型). 因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.5. 正交表分析法有时候,可能因为大量的参数的组合而引起测试用例数量上的激增,同时,这些测试用例并没有明显的优先级上的差距,而测试人员又无法完成这么多数量的测试,就可以通过正交表来进行缩减一些用例,从而达到尽量少的用例覆盖尽量大的范围的可能性。
6. 场景分析方法指根据用户场景来模拟用户的操作步骤,这个比较类似因果图,但是可能执行的深度和可行性更好。
您认为做好测试用例设计工作的关键是什么?白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。
不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题详细的描述一个测试活动完整的过程。
1.项目经理通过和客户的交流,完成需求文档,由开发人员和测试人员共同完成需求文档的评审,评审的内容包括:需求描述不清楚的地方和可能有明显冲突或者无法实现的功能的地方。
项目经理通过综合开发人员,测试人员以及客户的意见,完成项目计划。
然后SQA 进入项目,开始进行统计和跟踪2. 开发人员根据需求文档完成需求分析文档,测试人员进行评审,评审的主要内容包括是否有遗漏或者双方理解不同的地方。
测试人员完成测试计划文档,测试计划包括的内容上面有描述。
3. 测试人员根据修改好的需求分析文档开始写测试用例,同时开发人员完成概要设计文档,详细设计文档。
此两份文档成为测试人员撰写测试用例的补充材料。
4. 测试用例完成后,测试和开发需要进行评审。
5. 测试人员搭建环境6. 开发人员提交第一个版本,可能存在未完成功能,需要说明。
测试人员进行测试,发现BUG后提交给BugZilla。
7. 开发提交第二个版本,包括Bug Fix以及增加了部分功能,测试人员进行测试。
8. 重复上面的工作,一般是3-4个版本后BUG数量减少,达到出货的要求。
9. 如果有客户反馈的问题,需要测试人员协助重现以及回归测试。
以往是否曾经从事过性能测试工作?请尽可能的详细描述您以往的性能测试工作的完整过程。
曾经做过一套网管系统的性能测试,主要测试该软件在同时管理大量终端的情况下,在响应时间,CPU/磁盘/内存等参数是否满足要求。
也曾经做过软交换系统的呼叫性能测试,主要是测试软交换系统在有大量呼叫的情况下,响应时间,呼叫成功率,CPU/磁盘/内存等参数是否满足设计要求。
您在从事性能测试工作时,是否使用过一些测试工具?如果有,请试述该工具的工作原理,并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的。
测试网管系统中,使用的Mimic来模拟终端,能够大量的节省成本。
测试软交换系统的时候,使用的Prolab来模拟终端并发送呼叫软交换,他完成了同时数百人才能完成的摘机拨号工作,主要工作原理是产生一些符合要求的IP包并发送给软交换系统,同时对软交换系统的回应进行处理,决定下一步动作。
您认为性能测试工作的`目的是什么?做好性能测试工作的关键是什么?主要是保障在大量用户的情况下,服务能正常使用。
在您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?1. 在传统的BugZilla中,BUG描述应该包括以下的信息2. 和BUG产生对应的软件版本3. 开发的接口人员4. BUG的优先级5. BUG的严重程度6. BUG可能属于的模块,如果不能确认,可以用开发人员来判断7. BUG标题,需要清晰的描述现象8. BUG描述,需要尽量给出重新Bug的步骤9. BUG附件中能给出相关的日志和截图。
高质量的BUG记录就是指很容易理解的BUG记录,所以,对于描述的要求高,能提供的信息多且准确,很好的帮助开发人员定位。
白盒测试面试技巧及常见问题2015-04-13 13:52 | #2楼白盒测试目的:通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。
白盒测试特点:依据软件设计说明书进行测试、对程序内部细节的严密检验、针对特定条件设计测试用例、对软件的逻辑路径进行覆盖测试。
白盒测试实施步骤:1、测试计划阶段:根据需求说明书,制定测试进度。
2、测试设计阶段:依据程序设计说明书,按照一定规范化的方法进行软件结构划分和设计测试用例。
3、测试执行阶段:输入测试用例,得到测试结果。
4、测试总结阶段:对比测试的结果和代码的预期结果,分析错误原因,找到并解决错误。
白盒测试优点:1、迫使测试人员仔细思考软件的实现2、可以检测代码中的每条分支和路径3、揭示隐藏在代码中的错误4、对代码的测试比较彻底白盒测试缺点:1、昂贵2、无法检测代码中遗漏的路径和数据敏感性错误3、不验证规格的正确性第二部分废话(测试方法说明):一、语句覆盖1 、特点:语句覆盖是最起码的结构覆盖要求,语句覆盖要求设计足够多的测试用例,使得程序中每条语句至少被执行一次。
2 、优点:可以很直观地从源代码得到测试用例,无须细分每条判定表达式。
3 、缺点:由于这种测试方法仅仅针对程序逻辑中显式存在的语句,但对于隐藏的条件和可能到达的隐式逻辑分支,是无法测试的。
二、判定覆盖1 、特点:判定覆盖又称为分支覆盖,它要求设计足够多的测试用例,使得程序中每个判定至少有一次为真值,有一次为假值,即:程序中的每个分支至少执行一次。
每个判断的取真、取假至少执行一次。
2 、优点:判定覆盖比语句覆盖要多几乎一倍的测试路径,当然也就具有比语句覆盖更强的测试能力。
同样判定覆盖也具有和语句覆盖一样的简单性,无须细分每个判定就可以得到测试用例。
3 、缺点:往往大部分的判定语句是由多个逻辑条件组合而成,若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。
三、条件覆盖1 、特点:条件覆盖要求设计足够多的测试用例,使得判定中的每个条件获得各种可能的结果,即每个条件至少有一次为真值,有一次为假值。
2 、优点:显然条件覆盖比判定覆盖,增加了对符合判定情况的测试,增加了测试路径。
3 、缺点:要达到条件覆盖,需要足够多的测试用例,但条件覆盖并不能保证判定覆盖。
条件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果。
四、判定 / 条件覆盖1 、特点:设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身所有可能结果也至少出现一次。
2 、优点:判定 / 条件覆盖满足判定覆盖准则和条件覆盖准则,弥补了二者的不足。
3 、缺点:判定 / 条件覆盖准则的缺点是未考虑条件的组合情况。
五、组合覆盖1 、特点:要求设计足够多的测试用例,使得每个判定中条件结果的所有可能组合至少出现一次。
2 、优点:多重条件覆盖准则满足判定覆盖、条件覆盖和判定 / 条件覆盖准则。
更改的判定 / 条件覆盖要求设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身的所有可能结果也至少出现一次。
并且每个条件都显示能单独影响判定结果。
3 、缺点:线性增加测试用例的数量。
六、路径覆盖1 、特点:设计足够的测试用例,覆盖程序中所有可能的路径。
2 、优点:这种测试方法可以对程序进行彻底的测试,比前面五种的覆盖面都广。
3 、缺点:由于路径覆盖需要对所有可能的路径进行测试(包括循环、条件组合、分支选择等),那么需要设计大量、复杂的测试用例,使得工作量呈指数级增长。