这是小编整理的软件测试常用的技术面试题
请看下面
你的测试职业发展是什么?
测试经验越多,测试能力越高。所以我的职业发展是需要时间积累的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年积累测试经验,按如何做好测试工程师的要点去要求自己,不断更新自己改正自己,做好测试任务。
你认为测试人员需要具备哪些素质
做测试应该要有一定的协调能力,因为测试人员经常要与开发接触处理一些问题,如果处理不好的话会引起 2、些冲突,这样的话工作上就会不好做。还有测试人员要有一定的耐心,有的时候做测试很枯燥乏味。除了耐心,测试人员不能放过每一个可能的错误。
你为什么能够做测试这一行
虽然我的测试技术还不是很成熟,但是我觉得我还是可以胜任软件测试这个工作的,因为做软件测试不仅是要求技术好,还有有一定的沟通能力,耐心、细心等外在因素。综合起来看我认为我是胜任这个工作的。
测试的目的是什么?
测试的目的是找出软件产品中的错误,是软件尽可能的符合用户的要求。当然软件测试是不可能找出全部错误的。
测试分为哪几个阶段?
一般来说分为5个阶段:单元测试、集成测试、确认测试、系统测试、验收测试
单元测试的测试对象、目的、测试依据、测试方法?
测试对象是模块内部的程序错误,目的是消除局部模块逻辑和功能上的错误和缺陷。测试依据是模块的详细设计,测试方法是采用白盒测试。
怎样看待加班问题
加班的话我没有太多意见,但是我还是觉得如果能够合理安排时间的话,不会有太多时候加班的。
结合你以前的学习和工作经验,你认为如何做好测试。
根据我以前的工作和学习经验,我认为做好工作首先要有一个良好的沟通,只有沟通无障碍了,才会有好的协作,才会有更好的效率,再一个就是技术一定要过关,做测试要有足够的耐心,和一个良好的工作习惯,不懂的就要问,实时与同事沟通这样的话才能做好测试工作。
你为什么选择软件测试行业
因为之前了解软件测试这个行业,觉得他的发展前景很好。
根据你以前的工作或学习经验描述一下软件开发、测试过程,由哪些角色负责,你做什么
要有架构师、开发经理、测试经理、程序员、测试员。我在里面主要是负责所分到的模块执行测试用例。
根据你的经验说说你对软件测试/质量保证的理解
软件质量保证与测试是根据软件开发阶段的规格说明和程序的内部结构而精心设计的一批测试用例(即输入数据和预期的输出结果),并根据这些测试用例去运行程序,以发现错误的过程。它是对应用程序的各个方面进行测试以检查其功能、语言有效性及其外观排布。
软件测试的流程是什么?
需求调查:全面了解系统概况、应用领域、软件开发周期、软件开发环境、开发组织、时间安排、功能需求、性能需求、质量需求及测试要求等。根据系统概况进行项目所需的人员、时间和工作量估计以及项目报价。
制定初步的项目计划。
测试准备:组织测试团队、培训、建立测试和管理环境等。
测试设计:按照测试要求进行每个测试项的测试设计,包括测试用例的设计和测试脚本的开发等。
测试实施:按照测试计划实施测试。
测试评估:根据测试的结果,出具测试评估报告。
你对SQA的职责和工作活动(如软件度量)的理解?
SQA就是独立于软件开发的项目组,通过对软件开发过程的监控,来保证软件的开发流程按照指定的CMM规程(如果有相应的CMM规程),对于不符合项及时提出建议和改进方案,必要时可以向高层经理汇报以求问题的解决。通过这样的途径来预防缺陷的引入,从而减少后期软件的维护成本。SQA主要的工作活动包括制定SQA工作计划,参与阶段产物的评审,进行过程质量、功能配置及物理配置的审计等;对项目开发过程中产生的数据进行度量等等。
说说你对软件配置管理的理解
项目在开发过程中要用相应的配置管理工具对配置项(包括各个阶段的产物)进行变更控制,配置管理的使用取决于项目规模和复杂性及风险的水平。软件的规模越大,配置管理就越显得重要。还有在配置管理中,有一个很重要的概念,那就是基线,是在一定阶段各个配置项的组合,一个基线就提供了一个正式的标准,随后的工作便基于此标准,并只有经过授权后才能变更这个标准。配置管理工具主要有CC,VSS,CVS,SVN等,我只用过SVN,对其他的工具不是很熟悉。
怎样写测试计划和测试用例
简单点,测试计划里应有详细的测试策略和测试方法,合理详尽的资源安排等,至于测试用例,那是依赖于需求(包括功能与非功能需求)是否细化到功能点,是否可测试等。
你在测试中发现了一个 bug ,但是开发经理认为这不是一个 bug ,你应该怎样解决。
首先,将问题提交到缺陷管理库里面进行备案。然后,要获取判断的依据和标准:根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据;如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷;根据用户的一般使用习惯,来确认是否是缺陷;与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷;合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不参杂个人情绪。等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并有上级做出决定。
给你一个网站,你如何测试?
首先,查找需求说明、网站设计等相关文档,分析测试需求。制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:功能性测试;界面测试;性能测试;数据库测试;安全性测试;兼容性测试
设计测试用例,链接测试、提交功能的测试和界面测试、性能测试。
数据库测试:要具体决定是否需要开展。数据库一般需要考虑连结性,对数据的存取操作,数据内容的验证等方面。
安全性测试:
1 基本的登录功能的检查
2 是否存在溢出错误,导致系统崩溃或者权限泄露
3 相关开发语言的常见安全性问题检查,例如 SQL 注入等。
4 如果需要高级的安全性测试,确定获得专业安全公司的帮助,外包测试,或者获取支持兼容性测试,根据需求说明的内容,确定支持的平台组合:浏览器的兼容性;操作系统的兼容性;软件平台的兼容性;数据库的兼容性开展测试,并记录缺陷。
软件生存周期及其模型是什么?
软件生存周期是软件开发全部过程、活动和任务的结构框架,是从可行性研究到需求分析、软件设计、编码、测试、软件发布维护的过程。在经历需求、分析、设计、实现、部署后,软件将被使用并进入维护阶段,直到最后由于缺少维护费用而逐渐消亡。这样的一个过程,称为"生命周期模型"(Life Cycle Model)。
什么是软件测试?软件测试的目的与原则
使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
软件测试的目的:
测试是程序的执行过程,目的在于发现错误;
软件测试的原则:
1、软件测试应尽早执行,并贯穿于整个软件生命周期
2、软件测试应追溯需求
3、必须确定预期输出(或结果)
4、必须彻底检查每个测试结果
5、严格执行测试计划,排除测试的随意性
6、注意合法合理的输入,也要注意非法的非预期的输入
7、检查程序是否做了不该做的
8、测试应从“小规模”开始,逐步转向“大规模”
9、反复使用同样的测试会使软件具有抵抗力
10、关注缺陷的修复
软件配置管理的作用?软件配置包括什么?
软件配置管理作为软件开发过程的必要环节和软件开发管理的基础,贯穿整个软件生命周期,同时对软件开发过程的宏观管理即项目管理也有重要的支持作用。一个软件开发组织真正有效的实施软件配置管理,将会使软件开发过程有更好的可预测性,使系统具有可重复性,大大提高软件组织的竞争力。
软件配置包括如下内容:配置项识别、工作空间管理、版本控制、变更控制、状态报告和配置审计
什么是软件质量?
软件质量:软件产品的特性可以满足用户的功能、性能需求的能力。
目前主要的测试用例设计方法是什么?
1、白盒测试:
逻辑覆盖、循环覆盖、基本路径覆盖
2、黑盒测试:
边界值分析法、等价类划分、错误猜测法、因果图法、状态图法、测试大纲法、随机测试和场景法
软件的安全性应从哪几个方面 去测试?
软件安全性测试包括程序、数据库安全性测试。
根据系统安全指标不同测试策略也不同。用户认证安全的测试要考虑问题:
1、明确区分系统中不同用户权限,系统中会不会出现用户冲突,系统会不会因用户的权限的改变造成混乱;
2、用户登陆密码是否是可见、可复制,是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统)用户退出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入系统
3、系统网络安全的测试要考虑问题,测试采取的防护措施是否正确装配好,有关系统的补丁是否打上,模拟非授权攻击,看防护系统是否坚固
4、采用成熟的网络漏洞检查工具检查系统相关漏洞(即用最专业的黑客攻击工具攻击试一下,现在最常用的是 NBSI 系列和 IPhacker IP )
5、采用各种木马检查工具检查系统木马情况,采用各种防外挂工具检查系统各组程序的外挂漏洞
6、数据库安全考虑问题:
系统数据是否机密(比如对银行系统,这一点就特别重要,一般的网站就没有太高要求)
系统数据的完整性
系统数据可管理性
系统数据的独立性
系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)
什么是测试用例 什么是测试脚本 两者的关系是什么?
为实施测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果的一个特定的集合。测试脚本是为了进行自动化测试而编写的脚本。测试脚本的编写必须对应相应的测试用例
简述什么是静态测试、动态测试、黑盒测试、白盒测试、α测试 β测试
静态测试:不运行程序本身而寻找程序代码中可能存在的错误或评估程序代码的过程。
动态测试是实际运行被测程序,输入相应的测试实例,检查运行结果与预期结果的差异,判
定执行结果是否符合要求,从而检验程序的正确性、可靠性和有效性,并分析系统运行效率
和健壮性等性能。
黑盒测试:一般用来确认软件功能的正确性和可操作性,目的是检测软件的各个功能是否能得
以实现,把被测试的程序当作一个黑盒,不考虑其内部结构,在知道该程序的输入和输出之间
的关系或程序功能的情况下,依靠软件规格说明书来确定测试用例和推断测试结果的正确
性。
白盒测试:根据软件内部的逻辑结构分析来进行测试,是基于代码的测试,测试人员通过阅读
程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般黑盒测试由项目经理
在程序员开发中来实现。
α测试:是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环
境下进行的受控测试,Alpha 测试不能由程序员或测试员完成。
β测试是:软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在
测试现场,Beta 测试不能由程序员或测试员完成。
软件产品质量特性是什么? ?
功能性:适应性、准确性、互操作性、依从性、安全性。
可靠性:成熟性、容错性、以恢复性。
可使用性:易理解性、易学习性、易操作性。
效率:时间特性、资源特性。
可维护性:易分析性、易变更性、稳定性、易测试性。
可移植性: 适应性、易安装性、遵循性、易替换性。
软件测试的策略是什么? 测试的策略有哪些?
软件测试策略:在一定的软件测试标准、测试规范的指导下,依据测试项目的特定环境约束
而规定的软件测试的原则、方式、方法的集合。
测试策略有黑盒/白盒,静态/动态,手工/自动,冒烟测试,回归测试,公测(Beta测试的策略)。
软件测试分为几个阶段
软件测试按阶段划分可以分为单元测试、集成测试、系统测试和验收测试4个阶段
测试人员在软件开发过程中的任务是什么?
1、寻找 Bug;
2、避免软件开发过程中的缺陷;
3、衡量软件的品质;
4、关注用户的需求。
总的目标是:确保软件的质量。
黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点
黑盒测试的优点有:
1、比较简单,不需要了解程序内部的代码及实现;与软件的内部实现无关;
2、从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;
3、基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;
4、在做软件自动化测试时较为方便。
黑盒测试的缺点有:
1、不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的 30%;
2、自动化测试的复用性较低。
白盒测试的优点有:
1、帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题
白盒测试的缺点有:
1、程序运行会有很多不同的路径,不可能测试所有的运行路径;
2、测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一
些功能需求;
3、系统庞大时,测试开销会非常大。
如何测试一个纸杯?
1、功能度:用水杯装水看漏不漏;水能不能被喝到;
2、安全性:杯子有没有毒或细菌;
3、可靠性:杯子从不同高度落下的损坏程度;
4、可移植性:杯子在不同的地方、温度等环境下是否都可以正常使用;
5、兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等;
6、易用性:杯子是否烫手、是否有防滑措施、是否方便饮用;
7、用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述;
8、疲劳测试:将杯子盛上水(案例一)放 24 小时检查泄漏时间和情况;盛上汽油(案例二)放 24 小时检查泄漏时间和情况等
9、压力测试:用根针并在针上面不断加重量,看压强多大时会穿透
测试计划工作的目的是什么?测试计划文档的内容应该包括什么?其中哪些是最重要的?
答案:软件测试计划是指导测试过程的纲领性文件。
包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试
交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,
可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对
测试过程中的各种变更。
测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划
测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。
所以其中最重要的是测试测试策略和测试方法(最好是能先评审)。
黑盒测试的测试用例常见设计方法都有哪些?
1) 等价类划分
划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.
2) 边界值分析法
边界值分析方法是对等价类划分方法的补充。测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.
3)错误猜测法
基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法
4)因果图方法
前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件
之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要
检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的
组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个
动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型). 因果图方法最终生成
的就是判定表. 它适合于检查程序输入条件的各种组合情况.
5)正交表分析法
有时候,可能因为大量的参数的组合而引起测试用例数量上的激增,同时,这些测试用例并
没有明显的优先级上的差距,而测试人员又无法完成这么多数量的测试,就可以通过正交表
来进行缩减一些用例,从而达到尽量少的用例覆盖尽量大的范围的可能性。
6)场景分析方法
指根据用户场景来模拟用户的操作步骤,这个比较类似因果图,但是可能执行的深度和可行
性更好。
7)状态图法
通过输入条件和系统需求说明得到被测系统的所有状态,通过输入条件和状态得出输出条
件;通过输入条件、输出条件和状态得出被测系统的测试用例。
详细的描述一个测试活动完整的过程。
1、 项目经理通过和客户的交流,完成需求文档
2、 开发人员和测试人员共同完成需求文档的评审,
3、 项目经理通过综合开发人员,测试人员以及客户的意见,完成项目计划。
4、 SQA 进入项目,开始进行统计和跟踪开发人员根据需求文档完成需求分析文档,测试人员进行评审,评审的主要内容包括是否有遗漏或者双方理解不同的地方。测试人员完成测试计划文档,测试计划包括的内容上面有描述。
5、 写测试用例,同时开发人员完成概要设计文档,详细设计文档。此两份文档成为测试人员撰写测试用例的补充材料。
6、 测试用例完成后,测试和开发需要进行评审。
7、 测试人员搭建环境,开发人员提交第一个版本,可能存在未完成功能,需要说明。测试人员进行测试,发现 BUG后提交
8、 开发提交第二个版本,测试人员进行测试。重复上面的工作,一般是 3-4 个版本后 BUG 数量减少,达到出货的要求。如果有客户反馈的问题,需要测试人员协助重现并重新测试。
9、
软件验收测试包括 ___ 、 ___ 、 ____ 三种类型。
软件验收测试包括正式验收测试、alpha 测试、beta 测试三种测试。
系统测试的策略有 _________等 15 种方法。(该题15 个空)
性能测试、负载测试、强度测试、易用性测试、安全测试、配置测试、安装测试、文档测试、故障恢复测试、用户界面测试、恢复测试、分布测试、可用性测试。
设计系统测试计划需要参考的项目文档有 ___ 、 ___ 和 ____ 。
软件测试计划、软件需求工件、和迭代计划。
软件测试项目从什么时候开始?为什么?
软件测试应该在需求分析阶段就介入,因为测试的对象不仅仅是程序编码,应该对软件开发过程中产生的所有产品都测试,并且软件缺陷存在放大趋势.缺陷发现的越晚,修复它所花费的成本就越大.
什么是回归测试? ?
回归测试: (regression testing): 回归测试有两类:用例回归和错误回归;
1、 用例回归是过一段时间以后再回头对以前使用过的用例在重新进行测试,看看会重新发现问题。
2、 错误回归,就是在新版本中,对以前版本中出现并修复的缺陷进行再次验证,并以缺陷为核心,对相关修改的部分进行测试的方法。
单元测试、集成测试、系统测试的侧重点是什么?
1、单元测试:针对的是软件设计的最小单元–程序模块(面向过程中是函数、过程;面向对象中是类),进行正确性检验的测试工作,在于发现每个程序模块内部可能存在的差错.一般有两个步骤:人工静态检查\动态执行跟踪
2、集成测试:针对的是通过了单元测试的各个模块所集成起来的组件进行检验,其主要内容是各个单元模块之间的接口,以及各个模块集成后所实现的功能.
3、系统测试:针对的是集成好的软件系统,作为整个计算机系统的一个元素,与计算机硬件\外设\某些支持软件\数据和人员等其他系统元素结合在一起,要在实际的运行环境中,对计算机系统进行一系列的集成测试和确认测试.
设计用例的方法有哪些?
1、 白盒测试用例设计有如下方法:逻辑覆盖、循环覆盖和基本路径覆盖。
2、 黑盒测试用例设计方法:等价类划分、边界值分析、错误猜测、因果图、状态图、测试大纲、场景法、正交策略表。
一个测试工程师应具备那些素质?
1、责任心
2、沟通能力
3、团队合作精神
4、耐心、细心、信心
5、时时保持怀疑态度,并且有缺陷预防的意识
6、具备一定的编程经验
集成测试通常都有那些策略?
基于分解的集成:大爆炸集成\自顶向下集成\自底向上集成\ 三明治集成\基于调用图的集成\基于路径的集成\分层集成\基于功能的集成\高频集成\基于进度的集成\基于风险集成\基于事件集成\基于使用的集成\C/S 集成
你所了解的的软件测试类型都有哪些,简单介绍一下。
1、 按测试 策略分类:1、静态与动态测试 2、黑盒与白盒测试 3、手工和自动测试 4、冒烟测试 5、回归测试;
2、 按测试阶段分类:单元测试、集成测试、系统测试;
3、 其他常见测试方法:1、功能测试 2、性能测试 3、压力测试 4、负载测试 5、易用性测试 6、安装测试 7、界面测试 8、配置测试 9、文档测试 10、兼容性测试 11、安全性测试 12、恢复测试
分别概述创建测试计划与测试详细规格、测试用例
应把详细的测试技术指标包含到独立创建的测试详细规格文档,把用于指导测试小组执行测试过程的测试用例放到独立创建的测试用例文档或测试用例管理数据库中。测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。
您认为做好测试用例设计工作的关键是什么?
白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题
性能测试工作的目的是什么?做好性能测试工作的关键是什么?
性能测试的目的主要是发现在并发多用户和大数据量操作时是否会出现与需求有差异的地方。性能测试工作的关键是做好系统分析和功能分析,确定系统瓶颈所在
你的测试职业发展目标是什么?
测试经验越多,测试能力越高。所以我的职业发展是需要时间累积的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前 3 年累积测试经验,不断的更新自己改正自己,做好测试任务。
测试结束的标准是什么?
从微观上来说,在测试计划中定义,比如系统在一定性能下平稳运行 72 小时,目前错误跟踪系统中,本版本中没有一般严重的 BUG,普通 BUG 的数量在 3 以下,BUG 修复率 90%以上等等参数,然后由开发经理,测试经理,项目经理共同签字认同版本 Release。如果说宏观的,则是当这个软件彻底的消失以后,测试就结束了。
软件测试分为黑盒和白盒,分别适合什么情况?
1、 白盒测试又称为结构测试、逻辑驱动测试或基于程序本身的测试,它着重于程序的内部结构及算法,通常不关心功能与性能指标;
2、 黑盒测试又被称为功能测试、数据驱动测试或基于规格说明的测试,它实际上是站在最终用户的立场,检验输入输出信息及系统性能指标是否符合规格说明书中有关功能需求及性能需求的规定。
一套完整的测试应该由哪些阶段组成?
可行性分析、需求分析、概要设计、详细设计、编码、单元测试、集成测试、系统测试、验收测试
软件测试用例通常包括那些内容?
软件测试用例的基本要素包括测试用例编号、测试标题、重要级别、测试输入、操作步骤、预期结果。
你的测试职业发展目标是什么?
测试经验越多,测试能力越高。所以我的职业发展是需要时间累积的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前 3 年累积测试经验,按如何做好测试工程师的要求自己,不断的更新自己改正自己,做好测试任务。
请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。
1、 黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:
1、是否有不正确或遗漏的功能?
2、在接口上,输入是否能正确的接受?能否输出正确的结果?
3、是否有数据结构错误或外部信息(例如数据文件)访问错误?
4、性能上是否能够满足要求?
5、是否有初始化或终止性错误?
2、 白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:
1、对程序模块的所有独立的执行路径至少测试一遍。
2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。
3、在循环的边界和运行的界限内执行循环体。
4、测试内部数据结构的有效性,等等。
3、 单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。
4、 集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。
5、 系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。(常见的联调测试)系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计。
6、 验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。验收测试是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能和性能如同用户所合理期待的那样。
55. 当开发人员说不是bug时,你如何应付?
开发人员说不是 bug,有 2 种情况:
一是需求没有确定,所以我可以这么做,这个时候可以找来产品经理进行确认,需不需要改动,3 方商量确定好后再看要不要改。
二是这种情况不可能发生,所以不需要修改,这个时候,我可以先尽可能的说出是 BUG 的依据是什么,如果被用户发现或出了问题,会有什么不良结果,程序员可能会给你很多理由,你可以对他的解释进行反驳。
56. 为什么要在一个团队中开展软件测试工作?
因为没有经过测试的软件很难在发布之前知道该软件的质量,就好比 ISO 质量认证一样,测试同样也需要质量的保证,这个时候就需要在团队中开展软件测试的工作。在测试的过程发现软件中存在的问题,及时让开发人员得知并修改问题,在即将发布时,从测试报告中得出软件的质量情况。
57. 如果有机会转成开发人员,你会去做开发工作吗?
如果公司确实需要我可以从事开发,但我还是喜欢做测试,我认为我更适合做测试。
58. 软件测试分哪些阶段?各阶段的含义?
分为单元测试、集成测试、确认测试、系统测试、验收测试。单元测试是最小单位的测试,测试独立模块;集成测试主要测试模块之间的接口是否正常,确认测试类似于冒烟测试通常在大规模系统测试之前验证版本主要功能是否实现,版本的稳定性是否可以进入系统测试,系统测试是全面测试验证系统是否满足用户需求包括功能、性能、兼容性等等。验收测试是用户参与的测试。
59. 一份测试计划应该包括哪些内容?
背景、项目简介、目的、测试范围、测试策略、人员分工、资源要求、进度计划、参考文档、常用术语、提交文档、风险分析。
60. 针对于软件的行业背景,你如何理解软件的业务?
阅读用户手册了解软件的功能和操作流程;看一些业务的专业书籍补充业务知识;如果有用户实际的数据,可以拿实际的数据进行参考;参考以前的用例和 BUG 报告;在使用软件的过程中多思考;多与产品经理交流。
61. 测试用例应包括哪些内容?
编号、模块名称、编写人、日期、操作说明、输入数据、预期结果等。
62. 什么是兼容性测试?兼容性测试侧重哪些方面。
兼容测试主要是检查软件在不同的硬件平台、软件平台上是否可以正常的运行,即是通常说的软件的可移植性。
兼容的类型,如果细分的话,有平台的兼容,网络兼容,数据库兼容,以及数据格式的兼容。
兼容测试的重点是对兼容环境的分析。通常,是在运行软件的环境不是很确定的情况下,才需要做兼容。根据软件运行的需要,或者根据需求文档,一般都能够得出用户会在什么环境下使用该软件,把这些环境整理成表单,就得出做兼容测试的兼容环境了。
兼容和配置测试的区别在于,做配置测试通常不是Clean OS下做测试,而兼容测试多是在Clean OS的环境下做的。。
63. 对某软件进行测试,发现在 WIN98 上运行得很慢,怎么判别是该软件存在问题还是其软硬件运行环境存在问题?
看软件的运行环境要求。如果符合要求则是程序存在问题,若不符合要求则是硬件系统存在问题
64. 我现在有个程序,发现在Windows上运行得很慢,怎么判别是程序存在问题还是软硬件系统存在问题?
1、检查系统是否有中毒的特征;
2、检查软件/硬件的配置是否符合软件的推荐标准;
3、确认当前的系统是否是独立,即没有对外提供什么消耗CPU资源的服务;
4、如果是C/S或者B/S结构的软件,需要检查是不是因为与服务器的连接有问题,或者访问有问题造成的;
5、在系统没有任何负载的情况下,查看性能监视器,确认应用程序对CPU/内存的访问情况。
65. 正交表测试用例设计方法的特点是什么?
用最少的实验覆盖最多的操作,测试用例设计很少,效率高,但是很复杂;
对于基本的验证功能,以及二次集成引起的缺陷,一般都能找出来;但是更深的缺陷,更复杂的缺陷,还是无能为力的;具体的环境下,正交表一般都很难做的。大多数,只在系统测试的时候使用此方法。
66. 描述使用bugzilla缺陷管理工具对软件缺陷(BUG)跟踪的管理的流程?
就是Bugzilla的状态转换图。
67. 你觉得bugzilla在使用的过程中,有什么问题?
界面不稳定;
根据需要配置它的不同的部分,过程很烦琐。
流程控制上,安全性不好界定,很容易对他人的Bug进行误操作;
没有综合的评分指标,不好确认修复的优先级别。
68. 描述测试用例设计的完整过程?
需求分析 + 需求变更的维护工作;
根据需求 得出测试需求;
设计测试方案,评审测试方案;
方案评审通过后,设计测试用例,再对测试用例进行评审;
69. 单元测试的策略有哪些?
逻辑覆盖、循环覆盖、同行评审、桌前检查、代码走查、代码评审、景泰数据流分析
70. LoadRunner分哪三部分?
用户动作设计;场景设计;测试数据分析;
71. LoadRunner进行测试的流程?
加粗样式