在软件测试的面试过程中,面试官会问些基础的软件测试知识,下面为大家整理了一些高频软件测试面试必备的基础题,拿走不谢~
一、什么是软件测试
为了发现程序中的错误而执行程序的过程。
二、软件测试的原则
1、完全测试程序是不可能的
2、软件测试是有风险的行为
3、测试无法显示潜伏的软件缺陷
4、找到的软件缺陷越多,就说明软件缺陷越多
5、杀虫剂怪事
6、并非所有软件缺陷都要修复
7、什么时候才叫缺陷难以说清
三、软件的分类
1、按功能分
可以分为系统软件和应用软件
2、按技术架构分
可以分为单机软件、C/S架构软件、B/S架构软件
3、按目标用户分
可以分为产品软件和项目软件
四、什么是测试用例
测试用例(Test Case)是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。
简单地认为,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求。
五、常见的软件测试模型
常见的软件测试模型:V模型、W模型、H模型、X模型和前置模型。
V模型(V-model):是一种用图像表示系统发展生命周期的模式,可以产出严谨的发展生命周期模型以及专案管理模型。V模型可分为三大类:德国的Das V-Modell、泛用的测试模式以及美国政府标准。
W模型:由Evolutif公司公司提出,相对于V模型,W模型增加了软件各开发阶段中应同步进行的验证和确认活动。W模型由两个V字型模型组成,分别代表测试与开发过程,测试与开发是并行关系。
H模型:在H模型中,软件测试的过程活动完全独立,形成了一个完全独立的流程,贯穿于整个产品的周期,与其他流程并发进行,某个测试点准备就绪后就可以从测试准备阶段进行到测试执行阶段;软件测试可以根据被测产品的不同分层进行。
X模型:也是对V模型的改进,X模型提出针对单独的程序片段进行相互分离的编码和测试,此后通过频繁的交接,通过集成最终合成为可执行的程序。X模型的基本思想是由Marick提出的,但首先Marick不建议建立一个替代模型,同时,他也认为他的观点并不足以支撑一个模型的完整描述。
六、常见的软件开发模型
常见的软件开发模型:边做边改模型、瀑布模型、快速原型模型、增量模型、螺旋模型、演化模型、.喷泉模型、智能模型、混合模型、RAD模型
1、边做边改型
在这种模型中,既没有规格说明,也没有经过设计,软件随着客户的需要一次又一次地不断被修改。
2、瀑布模型
1970年Winston Royce提出了著名的"瀑布模型",直到80年代早期,它一直是唯一被广泛采用的软件开发模型。瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
3、快速原型模型
快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。
4、增量模型
又称演化模型。与建造大厦相同,软件也是一步一步建造起来的。在增量模型中,软件被作为一系列的增量构件来设计、实现、集成和测试,每一个构件是由多种相互作用的模块所形成的提供特定功能的代码片段构成.增量模型在各个阶段并不交付一个可运行的完整产品,而是交付满足客户需求的一个子集的可运行产品。整个产品被分解成若干个构件,开发人员逐个构件地交付产品,这样做的好处是软件开发可以较好地适应变化,客户可以不断地看到所开发的软件,从而降低开发风险。
5、螺旋模型
1988年,Barry Boehm正式发表了软件系统开发的"螺旋模型",它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。
6、演化模型
演化模型是一种全局的软件(或产品)生存周期模型。属于迭代开发方法。该模型可以表示为:第一次迭代(需求->设计->实现->测试->集成)->反馈->第二次迭代(需求->设计->实现->测试->集成)->反馈->……
7、喷泉模型
(也称面向对象的生存期模型, OO模型)喷泉模型与传统的结构化生存期比较,具有更多的增量和迭代性质,生存期的各个阶段可以相互重叠和多次反复,而且在项目的整个生存期中还可以嵌入子生存期。就像水喷上去又可以落下来,可以落在中间,也可以落在最底部。
8、智能模型
智能模型拥有一组工具(如数据查询、报表生成、数据处理、屏幕定义、代码生成、高层图形功能及电子表格等),每个工具都能使开发人员在高层次上定义软件的某些特性,并把开发人员定义的这些软件自动地生成为源代码。
9、混合模型
过程开发模型又叫混合模型(hybrid model),或元模型(meta-model),把几种不同模型组合成一种混合模型,它允许一个项目能沿着最有效的路径发展,这就是过程开发模型(或混合模型)。实际上,一些软件开发单位都是使用几种不同的开发方法组成他们自己的混合模型。
10、RAD模型
快速应用开发(RAD)模型是一个增量型的软件开发过程模型,强调极短的开发周期,RAD模型是瀑布模型的一个“高速”变种,通过大量使用可复用构件,采用基于构件的建造方法赢得快速开发。如果需求理解得好且约束了项目的范围,随后是数据建模、过程建模、应用生成、测试及反复。
七、软件测试分类
1、按测试阶段来分,可以分为单元测试、集成测试、系统测试、验收测试。
2、按测试的实施单位来分,可分为开发方测试、用户测试、第三方测试。
3、按测试技术来分,可以分为白盒测试、黑盒测试、灰盒测试。
4、按测试方式来分,可以分为静态测试、动态测试。
5、按其他测试方法来分,可以分为回归测试、冒烟测试、A/B测试。
八、测试计划是什么
软件测试计划,就是软件测试工作正式实施以前,对测试资源、测试时间、测试风险、测试策略、测试范围等方面的分析和规划,保证有序有效的实施测试工作。
九、测试方案是什么
测试方案,也就是测试需求的细化,明确测试策略和测试用例的设计方法,测试环境的规划,自动化测试框架的选择,测试工具的设计和选择,测试脚本和测试数据的设计。
十、常用黑盒测试用例设计方法
常用黑盒测试用例设计方法:等价类划分法、边界值分析法、因果图法、判定表驱动法、场景法。
1、等价类划分法
等价类划分法是把所有可能的输入数据,即程序的输入划分成若干部分(子集),然后从每一个子集中选取少量具有代表性的数据作为测试用例。
2、边界值分析法
是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界,取正好等于,刚刚大于或刚刚小于边界的值作为测试数据。
3、因果图法
是一种适合于描述对于多种输入条件组合的测试方法,根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件涉及的各种组合情况。
4、判定表驱动法
判定表是分析和表达多逻辑条件下执行不同操作的情况的工具。它可以把复杂的逻辑关系和多种条件组合的情况表达得较明确,判定表通常由4个部分组成:条件桩、动作桩、条件项、动作项。
5、场景法
通过运用场景来对系统的功能点或业务流程的描述,从而提高测试效果的一种方法。用例场景来测试需求是指模拟特定场景边界发生的事情,通过事件来触发某个动作的发生,观察事件的最终结果,从而用来发现需求中存在的问题。我们通常以正常的用例场景分析开始,然后再着手其他的场景分析。场景法一般包含基本流和备用流,从一个流程开始,通过描述经过的路径来确定的过程,经过遍历所有的基本流和备用流来完成整个场景。场景主要包括4种主要的类型:正常的用例场景,备选的用例场景,异常的用例场景,假定推测的场景。
网友评论