您的当前位置:首页正文

软件测试外包公司面试题

2022-12-26 来源:爱go旅游网
1、试述软件的概念和特点软件复用的含义构件包括哪些

a)软件的概念:

软件是程序、数据结构和相关文档的集合,用于实现所需要的逻辑方法、过程或控制。软件是把知识与技术紧密结合的智力成果,是在研制、开发中被创造出来的一种信息产品。

b)软件的特点:

①抽象性软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。 ②不会磨损在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题,但软件 维护比硬件维护要负责的多。

③软件开发工作最大、开发效率低、成本高,但复制容易、成本极低。 ④对计算机系统的依赖性

⑤软件具有无形性,可以多次使用,但商业寿命较短。 c)软件复用(SoftWare Reuse):

软件复用是将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费,提高软件生产力和质量的一种重要技术。

d)构件:

构件是系统中实际存在的可更换部分,它实现特定的功能,符合一套接口标准并实现一组接口。构件代表系统中的一部分物理实施,包括软件代码(源代码、二进制代码或可执行代码)或其等价物(如脚本或命令文件)。

2、瀑布模型和螺旋模型的主要区别是什么

瀑布模型强调的保证软件的质量,忽略人力,时间,资源等成本因素,以质量为第一目标,每次需求发生变更都要从头再来,适合于一些大型稳定的项目。

螺旋模型是一种增量迭代开发的模型,每一次循环都是一次版本的升级,可提高软件的适应能力。比较适合于前期需求不稳定,后期需求新增变更较多的项目。

瀑布模型是基于质量的, 是由文档驱动的。螺旋模型是风险驱动的,更需要经验丰富的风险评估知识和水平。

3、软件生存周期及其模型是什么

a)软件生命周期是:计划-需求分析-软件设计-程序编码-软件测试-运行维护 b)常用的模型有:瀑布模型,螺旋模型,IPD流程,RUP流程

4、什么是软件测试软件测试的目的与原则

a)软件测试是在规定的条件下对程序进行操作,以发现错误,对软件质量进行评估

即软件测试是为了发现错误而执行程序的过程。

b)软件测试的目的是找出软件产品中的错误,是软件尽可能的符合用户的要求。当然 软件测试是不可能找出全部错误的。

软件测试的原则:

测试显示缺陷的存在(但不能证明系统不存在缺陷) 穷尽测试是不可能的

测试尽早介入

缺陷集群性(80-20原则) 杀虫剂悖论

测试活动依赖于测试背景 不存在缺陷的谬论

5、净室软件工程的策略是什么

a)增量计划。开发一个采用增量策略的项目计划,建立每个增量的功能、它的项目大小、以及净室开发进度表。必须特别小心以保证通过认证的增量将被定时集成。

b)需求收集。使用类似于在第11 章引入的技术,为每个增量开发一个客户级需求的更详细的描述。

c)盒结构规约。使用一个运用盒结构的规约方法[HEV93]来描述功能规约。遵从操作分析原则,盒结构“在每一个精化级别上分离和分开行为、数据及过程的创造性定义”。

d)形式化设计。使用盒结构方法,净室设计是规约的自然的无缝的扩展。虽然,在两个活动间可进行清楚的区分,但是,规约(称为“黑盒”)是被递进地求精(在一个增量内)以成为类似于体系结构的和过程的设计(分别称为“状态盒”和“清晰盒”)。

e)正确性验证。净室小组对设计及代码进行一系列严格的正确性验证活动。验证从最高层次的盒结构(规约)开始,然后移向设计细节和代码。正确性验证的第一层次通过应用一组“正确性问题”[LIN88]来进行,如果这没有证明规约是正确的,则使用更形式化的(数过学的)验证方法。

f)代码生成、检查和验证。以某种专门语言表示的盒结构规约被转换为合适的程序设计语言。然后,使用标准的走查或检查技术来保证代码和盒结构的语义相符性,以及代码的语法正确性。然后,对源代码进行正确性验证。

g)统计性测试计划。分析软件的项目级使用情况,计划和设计一组执行用途的“概率分布”的测试用例。如图25-1 所示,这个净室活动是和规约、验证及代码生成并行进行的。

h)统计性使用测试。记住,对计算机软件进行彻底测试是不可能的,因此,总需要设计有限数量的测试用例。统计性使用技术[POO88]执行一系列由特定对象的所有用户的所有可能的程序执行的统计样本(上面提到的概率分布)所导出的测试。认证。一旦完成验证、检查和使用测试(并且所有错误被修正),则开始进行增量集成前的认证工作。

6、软件配置管理的作用 软件配置包括什么

a)软件配置管理作为软件开发过程的必要环节和软件开发管理的基础,贯穿整个软件生命周期,同时对软件开发过程的宏观管理即项目管理也有重要的支持作用。一个软件开发组织真正有效的实施软件配置管理,将会使软件开发过程有更好的可预测性,使系统具有可重复性,大大提高软件组织的竞争力。

b)软件配置包括如下内容: 配置项识别 工作空间管理 版本控制

变更控制 状态报告 配置审计

7、简述需求分析的过程和意义

1、明确需求以及测试范围 了解该需求是为了解决用户的什么问题 功能性需求:产品必须有的功能

非功能性需求:是否美观,用户体验,稳定性,易用性等

最容易忽略的一点:明确的需求背后所隐藏的需求(例如登录,明确的需求是,正确输入用户名,密码,才能登录。隐性需求:用户名字符类型,长度,是否可为空;密码字符类型,长度等) 将问题在需求阶段暴露的成本最小

2、画业务流程图(流程图) 根据需求中规定的业务流程 各业务流程分支的确定

由于业务原因规定不可使用的业务流程

3、功能点整理(思维导图)

业务功能:需求中所定义的实际业务直接相关的功能

数据约束:主要是用于控制在执行功能时,数据的显示范围、数据之间的关系等。

易用性需求:便于功能操作使用的一些细节,比如快捷键就是典型的易用性需求。

编辑约束:在功能执行时,对输入数据项目的一些约束性条件,比如只能输入数字。

权限需求:不同的权限所能操作的功能点的不同

4、提取测试点(测试需求文档)

根据整理的思维导图,去提取每一个功能点中的细节需求,例如新增员工,在思维导图中,最小的颗粒度就到新增员工了,但是新增员工这个功能仍然有很多的需求点,员工姓名唯一性判定,手机号码是否必填等,这些更细的需求点组合起来就形成了测试需求文档

5、确定测试范围

需求的确定,并不代表测试范围就是该需求的范围,很有可能一个需求分多个软件版本来实现,最后确定哪些需求是需要测试的。 明确哪些测试目标优先级高,哪些目标优先级低 要完成哪些相应的测试任务才能确保目标的实现 总结:

需求分析的越详细,对业务的理解程度就越高,对设计测试用例的帮助就越大。测试的过程中就更有目的性。“磨刀不误砍柴工”,需求分析花的时间越多,之后测试的时间就越少。因为测试其实已经从需求阶段开始了。

8、什么是数据的对立性有几个层次

数据独立性是指:应用程序和数据库的数据结构之间相互独立,不受影响。分为物理独立性和逻辑独立性两个层次。

物理数据独立性:如果数据库的内模式要进行修改,即数据库的存储设备和存储方法有所变化,那么模式/内模式映象也要进行相应的修改,使概念模式尽可能保持不变。也就是对内模式的修改尽量不影响概念模式。

逻辑数据独立性:如果数据库的概念模式要进行修改,如增加记录类型或增加数据项,那么外模式/模式映象也要进行相应的修改,使外模式尽可能保持不变。也就是概念模式的修改尽量不影响外模式和应用程序。

9、网状、层次数据模型与关系数据模型的最大的区别是什么

网状、层次数据模型与关系数据模型的最大区别在于表示和实现实体之间的联系的方法:网状、层次数据模型是通过指针链,而关系数据模型是使用二维表。

10、dbms读取一条记录时发生哪些事件

用户程序A向DBMS发出读一条记录的指令,这时用户程序要给出外部文件名和记录的关键字值

DBCS分析所接到的指令,访问对应的外部模式

DBCS完成外部模式到概念模式的转换,决定访问哪个(些)概念文件 接着由DBSS完成概念模式到存储模式的转换,并决定访问哪个(些)存储文件

DBSS调用存取方法,通过操作系统将读取的记录送到系统缓冲区 用户程序从系统缓冲区得到所需记录和DBMS返回的状态信息 用户程序在工作区中使用所得到的记录

11、什么是软件质量 软件包是什么

a)概括地说,软件质量就是“软件与明确地和隐含地定义的需求相一致的程度”。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的隐含特征的程度。

b)软件包(SoftWare Package)是指具有特定的功能,用来完成特定任务的一个程序或一组程序。软件包由一个基本配置和若干可选部件构成,既可以是源代码形式,也可以是目标码形式。用户手册和指南等文档是软件包的重要组成部分。

12、软件产品质量特性是什么

确保软件质量优良程度的内部因素称为软件质量特性。比较权威的软件质量特性划分应推Boehm提出的十二个基本质量特性。分别为:设备无关性、完整性、精度、一致性、设备效率、可访问性、可通讯性、结构性、自说明性、简明性、易读性、可扩充性。

13、什么是软件质量保证 其主要任务是什么

软件质量保证:为确保软件开发过程和结果符合预期要求而建立的一系列规程,以及依照规程和计划采取的一系列活动及其结果评价。

主要任务:

(1)用户要求定义 (2)力争不重复劳动

(3)掌握开发新软件的方法 (4)组织外部力量协作 (5)排除无效劳动

(6)发挥每个开发者的能力 (7)提高软件开发的工程能力 (8)提高计划和管理质量

14、软件质量保证体系是什么 国家标准中与质量保证管理相关的几个标准是什么 他们的编号和全称是什么

为满足质量要求和实施质量管理,进行全部有计划和有系统的活动所需的组织结构、程序、过程和资源的总称。

GB/T 19001质量体系设计/开发、生产、安装和服务的质量保证模式(idtISO 9001)

GB/T 19002质量体系生产和安装的质量保证模式(idtISO 9002) GB/T 19003质量体系最终检验和试验的质量保证模式(idtISO 9003)

GB/T 19004质量管理和质量体系要素指南(idt ISO9004)

15、软件测试的原则与策略是什么

软件测试原则: 1、尽早和不断的测试。

2、程序员应该避免检查自己的程序,软件测试应该由第三方构造。 3、设计测试用例时应该考虑到合法的输入和不合法的输入以 及各种边界条件。

4、注意测试中的错误集中发生现象。 5、对测试错误结果有确认过程。

6、制定严格的测试计划,并把测试时间安排的尽量宽松。 7、回归测试的关联性,原有功能过滤 8、进行版本控制,制定变更测试文档的流程。

测试策略,在一定的软件测试标准、测试规范的指导下,依据测试项目的特定环境约束而规定的软件测试的原则、方式、方法的集合,需在测试计划文档中体现。

16、什么是测试用例 什么是测试脚本 两者的关系是什么

测试用例是为特定目标而开发的一组测试输入、执行条件和预期结果,其目标可以是测试某个程序路径或核实是否满足某个特定的需求。

测试用例(TESt CASe)目前没有经典的定义。比较通常的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。

测试脚本就是用户对业务操作的记录,将测试用例用测试脚本表述出来,那我们就不用手工执行测试了,就可以通过执行测试脚本来执行测试

测试脚本是进行自动化测试时编写的脚本程序 测试脚本中要包含测试用例中的数据

17、简述什么是静态测试、动态测试、黑盒测试、白盒测试、a测试 b测试

静态测试是指测试不运行的部分——只是检查和审核

动态测试是指通常意义上的测试——使用和运行软件

黑盒测试:不关心软件内部结构,只关心输入输出,主要测试依据是需求文档

白盒测试:关注软件的内部结构和程序的设计实现,主要测试依据是设计文档

α测试是软件开发公司组织内部人员,模拟各类用户,对即将上市的软件产品进行测试,试图发现错误并修复的过程。

β测试是由软件的多个用户在实际使用环境中进行的测试,这些用户返回有关错误信息给开发者。

18、测试问题的严重性分为几级 如何区分

为了尽量准确的表示缺陷信息,通常将缺陷的严重性和优先级分成4级。如果分级超过4级,则造成分类和判断尺度的复杂程度,而少于4级,精确性有时不能保证。

具体的表示方法机可以使用数字表示,也可以使用文字表示,还可以数字和文字综合表示。使用数字表示通常按照从高到底或从低到高的顺序,需要软件测试前达成一致。例如,使用数字1,2,3,4分别表示轻微、一般、较严重和非常严重的严重性。对于优先级而言,1,2,3,4可以分标表示低优先级、一般、较高优先级和最高优先级。

微小的(Minor)一些小问题如有个别错别字、文字排版不整齐等,对功能几乎没有影响,软件产品仍可使用。

一般的(Major)不太严重的错误,如次要功能模块丧失、提示信息不够准确、用户界面差和操作时间长等。

严重的(Critical)严重错误,指功能模块或特性没有实现,主要功能部分丧失,次要功能全部丧失,或致命的错误声明

致命的(Fatal)致命的错误,造成系统崩溃、死机,或造成数据丢失、主要功能完全丧失等。

19、测试用例设计的原则是什么 目前主要的测试用例设计方法是什么

测试用例设计的原则是:

代表性:能够代表并覆盖各种合理的和不合理、合法的和非法的、边界的和越界的、以及极限的输入数据、操作和环境设置等.

可判定性:即测试执行结果的正确性是可判定的,每一个测试用例都应有相应的期望结果.

可再现性:即对同样的测试用例,系统的执行结果应当是相同的。 方法有等价类、边界值、因果图、状态图、正交法、大纲法

20、结构化系统测试和功能性系统测试分别采用了哪些方法和技术

a)结构化系统测试技术:

用于验证所开发的系统及程序的运行情况。目标是要确保产品设计在结构上合理,功能上正确。为确定实现的配置及其各功能共同作用以完成特定任务提供了一种机制。

结构化测试技术由以下几种:

压力测试:确定系统以期望的容量执行。 执行测试:系统能达到期望的熟练性。

恢复测试:系统失效之后可以恢复到可操作状态。 操作测试:系统以正常操作状态执行。

一致性测试:系统的开发与标准和规程相一致。 安全性测试:根据组织的重要性对系统进行保护。

b)功能性系统测试用于确保系统需求与定义都得到了满足。该过程通常包含创建用于评价应用程序正确性的测试条件。

用于执行功能测试的几种测试技术包括: 需求测试:系统按制定方式执行。

回归测试:验证系统中没有改变的部分仍能正确运行。 错误处理测试:错误可以得到防止或检测,并被修复。

21、软件测试分为几个阶段 各阶段的测试策略和要求是什么

软件测试分为单元测试、集成测试、系统测试、验收测试四个主要阶段: 单元测试:单元测试是针对软件设计的最小单位––程序模块甚至代码段进行正确性检验的测试工作,通常由开发人员进行。

集成测试:集成测试是将模块按照设计要求组装起来进行测试,主要目的是发现与接口有关的问题。由于在产品提交到测试部门前,产品开发小组都要进行联合调试,因此在大部分企业中集成测试是由开发人员来完成的。

系统测试:系统测试是在集成测试通过后进行的,目的是充分运行系统,验证各子系统是否都能正常工作并完成设计的要求。它主要由测试部门进行,是测试部门最大最重要的一个测试,对产品的质量有重大的影响。

验收测试:验收测试以需求阶段的《需求规格说明书》为验收标准,测试时要求模拟实际用户的运行环境。对于实际项目可以和客户共同进行,对于产品来说就是最后一次的系统测试。测试内容为对功能模块的全面测试,尤其要进行文档测试。

单元测试测试策略:

自顶向下的单元测试策略:比孤立单元测试的成本高很多,不是单元测试的一个好的选择。

自底向上的单元测试策略:比较合理的单元测试策略,但测试周期较长。 孤立单元测试策略:最好的单元测试策略。 集成测试的测试策略:

大爆炸集成:适应于一个维护型项目或被测试系统较小

自顶向下集成:适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产口控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。

自底向上集成:适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。 基于进度的集成

优点:具有较高的并行度;能够有效缩短项目的开发进度。

缺点:桩和驱动工作量较大;有些接口测试不充分;有些测试重复和浪费。 系统测试的测试策略:

数据和数据库完整性测试;功能测试;用户界面测试;性能评测;负载测试;强度测试;容量测试;安全性和访问控制测试;故障转移和恢复测试;配置测试;安装测试;加密测试;可用性测试;版本验证测试;文档测试

22、面向对象的测试用例设计有几种方法 如何实现

给类中的每个构造函数设计一组测试用例 组合类中的类变量、实例变量 组合类中的各种方法

根据前置条件和后置条件设计测试用例 根据代码设计测试用例

23、在软件测试各个阶段通常完成什么工作 各个阶段的结果文件是什么 包括什么内容

单元测试阶段:各独立单元模块在与系统地其他部分相隔离的情况下进行测试,单元测试针对每一个程序模块进行正确性校验,检查各个程序模块是否正确地实现了规定的功能。生成单元测试报告,提交缺陷报告。

集成测试阶段:集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。该阶段生成集成测试报告,提交缺陷报告。

系统测试阶段:将通过确认测试的软件,作为整个给予计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行全面的功能覆盖。该阶段需要提交测试总结和缺陷报告。

24、软件的安全性应从哪几个方面去测试

用户认证机制:如数据证书、智能卡、双重认证、安全电子交易协议 加密机制

安全防护策略:如安全日志、入侵检测、隔离防护、漏洞扫描

数据备份与恢复手段:存储设备、存储优化、存储保护、存储管理

防病毒系统

25、LoadRunner分为哪三个模块请简述各模块的主要功能。

Virtual User Generator:用于录制脚步

Mercury LoadRunner Controller:用于创建、运行和监控场景 Mercury LoadRunner Analysis:用于分析测试结果

因篇幅问题不能全部显示,请点此查看更多更全内容