文档库 最新最全的文档下载
当前位置:文档库 › 性能测试工程师面试题

性能测试工程师面试题

性能测试工程师面试题
性能测试工程师面试题

1.什么是负载测试?什么是性能测试?

负载测试:通过被测试系统不断增加压力,直到性能指标超过预期值或者某种资源达到饱和状态。

经过这两天查看相关的资料,而且还和同事讨论。得出以下总结:

1)共同点:两种测试都是量的测试。

2)区别:压力测试是指被测对象在允许的压力值范围内进行测试。例如:一个B/S结构的应用程序,它允许有100个终端访问服务器。当有10、30、60、80个终端访问服务器时,程序的反应如何?而负载测试是指被测对象在超负荷的环境下运转。例如:就拿以上的例子来说,当有110或150个终端访问服务器时,程序的反应如何?

对性能测试、压力测试、负载测试的理解

斗胆在此发表一些个人理解与看法,权作抛砖引玉,望各路英雄能各抒己见,不吝赐教。

首先,我们看一下来自百度百科的定义:

1、性能测试:是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

2、负载测试:负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。

3、压力测试:是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。

我在这里简单谈一下我对三个概念的看法。

一、性能测试

性能测试的目的是找到系统在某种条件下的瓶颈,前提是这种条件在软件或服务的实际应用中可能发生。例如百度主页会同时有10万人访问,这是可能的。因此测试10万个vuser 同时hit是有意义的,但是会不会有10亿人同时访问?显然不会,至少在当今不会,因此测试的数据量定在10亿个vuser是无意义的,这种行为不靠谱。因此,在这一点上我们可以得出结论,具有清晰的、有意义的并且意义确定的预期值是进行一次性能测试的关键要素。

所以,我们在进行性能测试之前,首先要明确两个值:一个是系统负载预期值,一个是系统响应时间的预期值。有了这两个目标,才可以使用对系统持续增加负载的方法来观察系统的瓶颈所在。

那么性能测试就是简单的添加负载测试吗?显然不是。前面说过,性能测试的目的是要找出系统的瓶颈所在,而系统的瓶颈可能存在于各种方面。在代码方面,比较差的算法、硬代码多的模块等低效率的代码可能产生瓶颈;在数据库方面,冗余或者复杂的数据可能产生瓶颈;操作系统方面,cpu、磁盘、i/o系统、总线及兼容性等方面可能产生瓶颈;而在通信传输层面上,交换(路由)的转发效率、网络硬件质量等都可能引发系统瓶颈。对于以上这些可能引发瓶颈的原因,我们可以进行所谓白盒测试来找到问题的关键。各种层面上的问题,都有相应的测试工具或测试设备的支持,如果没有合适的工具,也可以自己进行设计。例如一些cpu监控工具、代码检测、数据库事件探查器、chariot等,以及网络分析仪、数据分析仪等通信分析仪器。这些都是性能测试的利器。

我们在性能测试出现瓶颈时,需要及时的调试对应的系统问题,但是如果在调试完成之后,系统表现好了一些,但是仍然没有达到预期目标,这个时候我们就应该把目光放在系统的其他层面上。由于一个系统是由多个子系统协作的,因此各个子系统之间有着密切的关联性。以web系统为例,当代码层以及数据库层都进行清洗之后,还可以通过其他途径提高系统的性能,以突破瓶颈,达到预期目标。

性能测试的另外一个目的是要建立一组被测系统的基准数据,系统在同样的测试环境与测试条件下,表现应当符合或优于基准数据的要求,否则测试不通过。另外,基准数据也可

以为其他类似的系统提供预期数据及预期返回时间的数值参考。

二、负载测试

负载测试的范围个人认为比性能测试要狭窄一些,负载测试通常定义为给被测系统加上它所能操作的最大任务数的过程。负载测试考验系统的两个指标,一个是系统的容量,一个是系统的耐久性。

测试系统容量是指给系统添加大数据量的文件或者数据,让系统进行处理并实时观察系统的表现情况。例如大数据量文件输入让系统处理(我们很熟悉的操作,亲们知道是啥意思吧?),大访问量的输入处理等。目的是找到系统能添加负载的最大量。而测试系统耐久性则指的是给出数量巨大的任务,让系统始终处于高负荷量的运行状态,并观察记录系统表现情况的测试方式。目的是找到系统所谓的“疲劳点”。例如运行多少时间之后系统返回时间开始变大,系统什么时候处理时间变得缓慢等都是考察的内容。

负载测试实现的前提是要先准备巨大的数据量,例如上百兆的文件、上万的用户等。负载测试不会以使系统崩溃为目的,因此负载测试的期望值一般以满足使用需求为主,不需要太夸张的数值。

三、压力测试

任何能使系统崩溃的测试都可以称之为压力测试。这一点我在会上已经多次说过了。

2.性能测试包含了哪些测试(至少举出3种)

压力测试、负载测试、并发测试、可靠测试、失效恢复测试。

3.简述性能测试的步骤

计划测试—测试设计—创建脚本—创建场景—分析结果

4.简述使用Loadrunner的步骤

脚本录制设置—录制脚本—调试脚本—场景设置—结果分析

5.什么时候可以开始执行性能测试?

在产品相对比较文档,功能测试完成后。灵活性比较强。

6.LoadRunner由哪些部件组成?

virtual user generator

contorller

running contorller

analysis

7.你使用LoadRunner的哪个部件来录制脚本?

virtual user generator

8.LoadRunner的哪个部件可以模拟多用户并发下回放脚本?

contorller

9.什么是集合点?设置集合点有什么意义?Loadrunner中设置集合点的函数是哪个?

集合点:设置多个用户到达某个用户数量点集合,同时触发一个事务,以达到模拟真实环境下同时多个用户操作

,同时模拟负载,实现性能测试的最终目的

LR_rendezvous(“集合点名称”)

10.什么是场景?场景的重要性有哪些?如何设置场景?

场景:模拟真实环境中,用户运行状况。

1.通过场景来模拟实际用户的操作,性能测试结果才具有代表性。

2.在运行过程中也需要关注场景性能测试值,测试过程是否正常。

1.选择场景中需要的脚本

2.选择为目标场景,还是指定的手工场景

3.设置用户数、设置产生负载的设备

4.设置执行策略

11.请解释一下如何录制web脚本?

LR通过转发请求,来捕获数据包,来形成脚本

12.为什么要创建参数?如何创建参数?

参数:在环境变化时必须时脚本具有环境变化的能力,就需要参数化(客户端发送到服务器端)

1.确定要参数话的数据

2.设定规则形式来取值

13.什么是关联?请解释一下自动关联和手动关联的不同。

关联:很多构架用sessionid等方法标识不同任务和数据,应用在每次运行时方式发送数据不完全相同,

需要利用的机制对录制的脚本进行处理,这种机制叫做关联(服务端发送到客户端)

14.你如何找出哪里需要关联?请给一些你所在项目的实例。

用户登陆,

客户端发送请求后,服务端验证正确性后,发送给客户端sessionid,是某种规则产生。

15.你在哪里设置自动关联选项?

两地方可以设置

1.设置允许录制时进行自动关联,可以自定义规则

2.录制完成后,vuser-scan action for correlations

16.哪个函数是用来截取虚拟用户脚本中的动态值?(手工关联)

17.你在VUGen中何时选择关闭日志?何时选择标准和扩展日志?

Run-time,log,

当调试脚本时,可以只输出错误日志,当在场景找你管加载脚本时,日志自动变为不可用。

Show Desk top.scf Standard Log Option:选择标准日志时,就会在脚本执行过程中,生成函数的标准日志并且输出信息,供调试用。大型负载测试场景不用启用这个选项。

扩展日志包括警告和其他信息。大型负载测试不要启用该选项。用扩展日志选项,可以指定哪些附加信息需要加到扩展日志中

18.你如何调试LoadRunner脚本?

VuGen有两个选项帮助调试Vuser脚本。Run Step by Step 命令和断点(breakpoints)。Option 对话框中的调试设置(Debug setting)项,可以确定在场景执行过程中执行轨迹范围。调试信息写在output窗口。可以用lr_set_debug_messag函数在脚本中手工设置信息类型。如果我们只想接收到一小段脚本的调式信息。

19你在LR中如何编写自定义函数?请给出一些你在以前进行的项目中编写的函数。

在创建用户自定义函数前我们需要和创建DLL(external libary)。把库放在VuGen bin 目录下。一旦加了库

,把自定义函数分配做一个参数。该函数应该具有一下格式:__declspec (dllexport) char*

name>(char*, char*)。

20.在运行设置下你能更改那些设置?

21.你在不同的环境下如何设置迭代?

22.你如何在负载测试模式下执行功能测试?

23.什么是逐步递增?你如何来设置?

Ramp up这个选项用于逐渐增加服务器的虚拟用户数或负载量。设置一个初始值而且可以在两个迭代之间设置一个值等待。设置Ramp up,请到‘Scenario Scheduling Options’。

24.以线程方式运行的虚拟用户有哪些优点?

VuGen提供了用多线程的便利。这使得在每个生成器上可以跑更多的虚拟用户。如果是以进程的方式跑虚拟用户

,为每个用户加载相同的驱动程序到内存中,因此占用了大量的内存。这就限制了在单个生成器上能跑的虚拟

用户数。如果按进程运行,给定的所有虚拟用户数(比如100)只是加载一个驱动程序实例到内存里。每个进程共用父驱动程序的内存,因此在每个生成器上可以跑更多的虚拟用户。

25.当你需要在出错时停止执行脚本,你怎么做?

lr_abort函数放弃虚拟用户脚本的执行。说明虚拟用户停止Action的执行,直接执行vuser_end 然后结束执行。在出现错误情况下想手工放弃脚本的执行,这个函数是有用的。用这个函数停止脚本时,Vuser被指定为“Stopped”状态。为了这个函数起作用,开始时候就不能选择Run-Time Settings中的Continue on error选项。

26.响应时间和吞吐量之间的关系是什么?

吞吐量图显示的是虚拟用户每秒钟从服务器接收到的字节数。当和响应时间比较时,可以发现随着吞吐量的降低,响应时间也降低,同样的,吞吐量的峰值和最大响应时间差不多在同时出现。

27.说明一下如何在LR中配置系统计数器?

通过Web资源监视器,利用这些监控器可以分析web服务器的吞吐量、点击率、每秒http 响应数以及每秒下载的页面数。

28.你如何识别性能瓶颈?

29.如果web服务器、数据库以及网络都正常,问题会出在哪里?

操作系统、代码算法、其他通信传输层硬件

30.如何发现web服务器的相关问题?

网络带宽、内存、存储、CPU、

31.如何发现数据库的相关问题?

32.解释所有web录制配置?

33.解释一下覆盖图和关联图的区别?

34.你如何设计负载?标准是什么?

35.Vuser_init中包括什么内容?

36. Vuser_end中包括什么内容?

37.什么是think time?think_time有什么用?

思考时间是真实用户在action之间等待的时间。例如:当一个用户从服务器接收到数据时,用户可能需要在响

应之前等待几分钟回顾数据,这种推迟被称为思考时间。

38.标准日志和扩展日志的区别是什么?

Standard Log Option:选择标准日志时,就会在脚本执行过程中,生成函数的标准日志并且输出信息,供调试用。大型负载测试场景不用启用这个选项。

扩展日志包括警告和其他信息。大型负载测试不要启用该选项。用扩展日志选项,可以指定哪些附加信息需要加到扩展日志中

39.解释以下函数及他们的不同之处。

Lr_debug_message

lr_debug_message 函数在指定的消息级别

// 处于活动状态时发送一条调试消息。如果指定的

// 消息级别未处于活动状态,则不发出消息。

Lr_output_message

要发送不是特定错误消息的特殊通知,

Lr_error_message

函数将错误消息发送到

// 输出窗口和Vuser 日志文件

Lrd_stmt lrd_exec 函数执行lrd_stmt 设置的SQL 语句。

Lrd_fetch 函数从结果集中提取后续若干行

result set.

函数准备用于

// 通过光标输出字符串(通常为SQL 语句)

// 的下一结果集。对于CtLib,它发出ct_result

// 命令,并且在ODBC 中它运行用于当前数据库

40.什么是吞吐量?

只单位时间内系统处理客户端的请求数。

41.场景设置有哪几种方法?

目标场景,还是指定的手工场景

性能测试模拟笔试题目(一)new

软件性能测试模拟笔试题目(一) 注:本试卷中题目所涉及性能测试工具如无特殊说明则均为LoadRunner。 一、简答题(2*10=20分) 1.客户交付一个性能测试项目,请阐述你的实施流程。 2.解释5个常用的性能指标的名称与具体含义。 3.写出5个Loadrunner中常用函数,并对其中2个举例说明用法。 4.简述LoadRunner的工作原理? 5.什么是集合点?设置集合点有什么意义?LoadRunner中设置集合点的函数是哪个? 6.HTML-based script与URL-based script的脚本有什么区别? 7.如何设置LaodRunner才能让集合点只对一半的用户生效? 8.LoadRunner的Controller组件中Pacing参数的作用是什么? 9.LoadRunner中如何监控Windows资源? 10.如果让QALoad模拟LoadRunner中只对关注的性能点进行迭代测试,你有什么好方法? 二、选择题(2*5=10分) 1.During the run of a scenario, which LoadRunner component stores the performance monitoring data? A. Analysis B. Controller C. File server D. Load generator/host 2.Where are the results stored during the run of a scenario? A. Analysis B. Controller C. Utility server D. Load generator 3. A script was recorded with an average think time for an advanced user. An advanced user pauses 5 seconds between clicks. A first-time user pauses an average of 10 seconds between clicks. How can you modify the think time run-time settings to emulate a first-time user? A. Set the think time to s recorded B. Set the think time to multiply the recorded think time by 4 C. Set the think time to a random percentage between 150% - 250% D. Set the think time to replay as recorded, but limit the think time to 10 seconds 4.Which HTTP error code indicates that an individual business process is failing under load or the web application itself has crashed? A.200 B. 403 C. 401 D. 500 5.What is an intersection point in a business process? A. Scenario B. Rendezvous C. Transaction D. Service level agreement 三、LoadRunner工具使用题:(10*2=20分) 1.web系统中,username参数表为file类型,表中有12个值,分别A、B、C、D、E、F、G、 H、I、J、K、L。测试场景中虚拟并发用户数设为4,迭代次数设为3,参数中Select next row 与Update value on分别为(Sequential, Each Iteration)与(Unique, Once)时,写出迭代3次的取值情况。

软件测试工程师笔试题目和答案

一、判断题 1.软件测试的目的是尽可能多的找出软件的缺陷。(Y) 2.Beta测试是验收测试的一种。(Y) 3.验收测试是由最终用户来实施的。(N) 4.项目立项前测试人员不需要提交任何工件。(Y) 5.单元测试能发现约80%的软件缺陷。(Y) 6.代码评审是检查源代码是否达到模块设计的要求。(N) 7.自底向上集成需要测试员编写驱动程序。(Y) 8.负载测试是验证要检验的系统的能力最高能达到什么程度。(N) 9.测试人员要坚持原则,缺陷未修复完坚决不予通过。(N) 10.代码评审员一般由测试员担任。(N) 11.我们可以人为的使得软件不存在配置问题。(N) 12.集成测试计划在需求分析阶段末提交。(N) 二、选择题 1.软件验收测试的合格通过准则是:(ABCD) A.软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。B.所有测试项没有残余一级、二级和三级错误。 C.立项审批表、需求分析文档、设计文档和编码实现一致。 D.验收测试工件齐全。 2.软件测试计划评审会需要哪些人员参加?(ABCD) A.项目经理 B.SQA负责人

C.配置负责人 D.测试组 3.下列关于alpha测试的描述中正确的是:(AD) A.alpha测试需要用户代表参加 B.alpha测试不需要用户代表参加 C.alpha测试是系统测试的一种 D.alpha测试是验收测试的一种 4.测试设计员的职责有:(BC) A.制定测试计划 B.设计测试用例 C.设计测试过程、脚本 D.评估测试活动 5.软件实施活动的进入准则是:(ABC) A.需求工件已经被基线化 B.详细设计工件已经被基线化 C.构架工件已经被基线化 D.项目阶段成果已经被基线化 三、填空题 1.软件验收测试包括:正式验收测试,alpha测试,beta测试。 2.系统测试的策略有:功能测试,性能测试,可靠性测试,负载测试,易用性测试,强度测试,安全测试,配置测试,安装测试,卸载测试,文挡测试,故障恢复测试,界面测试,容量测试,兼容性测试,分布测试,可用性测试,(有的可以

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

测试工程师笔试题 一、计算机知识(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-非可靠连接,会丢包,没有校验,速度快,无须握手过程

软件性能测试岗位常见面试题

软件性能测试岗位常见面试题 一、基础篇 1、较为完整的性能测试的流程 一个完整的性能测试流程 2、性能测试的基础理论、常见术语 性能测试常见术语浅析 3、性能测试模型、类型 常见的性能测试类型、性能测试模型 4、HTTP、TCP协议相关知识 HTTP协议入门系列 5、连接池、线程相关知识 连接池和线程 二、工具篇

①、Jmeter的工作原理是什么? ②、常用的元件、插件有哪些?各自的作用是什么? ③、几个典型的场景,如何基于jmeter设计测试脚本? 比如:参数化、关联、控制TPS、接口加密验签、阶梯式加压、集合点、检查点等; ④、是否会二次开发?如果会,怎么二次开发的(介绍大概过程和原因)? 2、Loadrunner 3、其他开源/商业性能测试工具 比如:Ngrinder、Locust、Wrk、Artillery等; 4、前端、服务器、数据库性能监测工具 三、系统架构篇 1、服务集群 2、负载均衡 负载均衡原理、实现方式 3、容量规划 4、缓存应用 缓存原理、缓存优点、缓存命中、缓存穿透、多层缓存 4、分布式框架 分布式的特点、面临的挑战:CAP理论(数据一致性、服务可用性、分区容错性) 5、全链路压测 四、服务器&中间件篇 1、JVM JVM原理、启动参数配置、堆栈原理、垃圾回收原理、OOM原因和表现 2、Tomcat 配置、使用方法、启动参数配置

配置、使用方法 4、Dubbo 服务注册、消息队列 5、RabbitMQ/Kafka 本身的特点、生产者、消费者如何管理 五、数据库篇 1、锁 2、索引 3、读写分离 4、分库分表 六、方案篇 1、设计性能测试方案需要考虑哪些问题? 时间成本、人力成本、环境&脚本可复用性、实现难度 2、针对某些情况,你会如何设计、优化方案? 七、案例篇 1、如何测试MQ? 2、压测中TPS上不去的原因分析? 3、测试环境和生产环境服务器配比如何选择? 服务器配置版本保持一致,容量测试后等量代换、考虑边际递减效应、容灾方案4、发现瓶颈,如何分析? 自上而下,从局部到整体,瓶颈分析粒度

测试工程师面试题(100分钟完成)

测试工程师面试题 (答题时间100分钟) A.测试基础 1、白盒测试与黑盒测试的区别是什么? 白盒测试:测试程序内部结构,内部特征 黑盒测试:通过界面测试程序功能,查看输入输出结果 2、什么是正交试验法,使用场景是什么? 研究多因素多水平的一种设计方法 场景:多因素多条件的情况下 3、数据库中,游标是什么?其作用是什么? 。 游标:从多条数据中检索集中提取一条数据 作用:当做指针,保存查询结果,方便后续使用 4、简述常用的Bug管理或者用例管理工具,并且描述其中一个工作流程。 常用:testlink,QC,mantis,禅道,TAPD,JIRA TAPD:产品创建(需求,计划,模块)-->项目创建(PM排期、任务分解)-->研发(编码、单元测试等)-->测试(测试计划,用例,执行,bug,报告等) 基于敏捷开发 5、智力题 一个屋子有一个门(门是关闭的)和3盏电灯。屋外有3个开关,分别与这3盏灯相连。 你可以随意操纵这些开关,可一旦你将门打开,就不能变换开关了。请确定每个开关具体管哪盏灯。 一个开关关掉,一个打开,一个打开几分钟、然后关掉 进屋后,亮这的是第二个开关,关闭的两灯中,有热量的为第三个开关,剩下的为第一个开关

B.自动化测试 1、自动化测试与测试自动化的区别。 自动化测试:利用工具录制或编写脚本进行功能以及性能测试 测试自动化:让测试过程脱离人工。对于控制成本,控制质量,回溯质量和减少测试周期都有积极影响的一种研发过程 2、列举出你熟悉的自动化工具,并说明其实现原理。 Web应用类工具:selenium 客户端建立与selenium-RC server 的连接。 Selenium RC Server 启动一个浏览器,并注入JS 代码 将Selenese 代码传到客户端的Selenium-Core 中。 Selenium-Core 翻译并解析执行用户录制的操作。 让代理Server 进行通讯 Remote Control Server 负责跟远程Web 应用服务器进行通讯。 操作完成,显示结果,并执行下一指令。 3、自动化测试的使用场景? 软件需求变更不是很快(尤其是UI自动化)}, 项目周期长 自动化测试脚本重复使用 4、什么是关键字驱动? 功能自动化测试框架,表格驱动测试或者基于动作字的测试 5、高质量的自动化脚本应该具备哪些特性? 1、不需要深入的工作或计划 2、可以加快开始自动化 3、对实际执行操作可以审计跟踪 4、用户不必是编程人员 5、提供良好的(软件或工具)的演示

Java软件开发工程师笔试题(答案)

Java工程师笔试题 一、填空题(本大题10小题,每空1分,共20分)。 1.Java语言的三大特性即是: 继承、封装、多态。 2.在Java中,char 型采用____unicode_______编码方案,这样,无论是中文字符还是英文字符,都是占用__2___个字节的内存空间。 3. 形式参数指的是方法被__定义____ 时的参数行,实际参数是方法被__调用__ _ 时所传递进去的变量或值。 4.JSP内置对象中,application对象是代表应用程序上下文,它允许JSP页面与包括在同一应用程序中的任何Web组件共享信息,而session 对象则是每个客户专用的。 5.如果想把一个对象写入一个流,那么这个类就必须实现Seralizable 接口。 6.程序中实现多线程的方法有两种:继承Thread类和实现___Runable _ 接口。 7.多线程中,可以通过调用相应的setPriority() 方法来修改一个线程的相对优先级。 8.面向对象编程的五大设计原则,分别是单一职责、开放封闭、 里氏替换、依赖倒置、接口分离 9.通过Ajax,客户端获取的数据主要有两种类型:文本型和xml 10.Socket通常也称为套接字,用于描述__ ip 和_ _接口 二、选择题(本大题20 小题,每小题2分.共40分)。 1.在JA V A中,如果父类中某些方法不包含任何逻辑,并且需要由子类重写.应该使用( )关键字来声明父类的这些方法: A) final B) static C) abstract D) void 2.在JA V A中,已定义两个接口B和C,要定义一个实现这两个接口的类,以下语句正确的是()。 A) interface A extend B,C B) interface A implements B,C C) class A implements B,C D) class A implements B, implements C

软件测试工程师笔面试试题

软件测试工程师笔面试试题 面试题 1.为什么要在一个团队中开展软件测试工作? 2.您是否了解以往所工作的企业的软件测试过程?如果了解,请试述 在这个过程中都有哪些工作要做?分别由哪些不同的角色来完成这些 工作? 03. 您是否了解以往所工作的企业的软件开发过程?如果了解,请试述 一个完整的开发过程需要完成哪些工作?分别由哪些不同的角色来完 成这些工作?(对于软件测试部分,可以简述) 4.您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长

哪 部分工作? 5.您所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测 试类型的区别与联系(如功能测试、性能测试……) 6.请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统 测试、验收测试的区别与联系。 7.测试计划工作的目的是什么?测试计划工作的内容都包括什么?其 中哪些是最重要的? 8.您认为做好测试计划工作的关键是什么? 9.您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说 明这些方法在测试用例设计工作中的应用。 10.您认为做好测试用例设计工作的关键是什么?

11.请以您以往的实际工作为例,详细的描述一次测试用例设计的完整 的过程。 12.您以往的工作中是否曾开展过测试用例的评审工作?如果有,请描 述测试用例评审的过程和评审的内容。 13.您以往是否曾经从事过性能测试工作?如果有,请尽可能的详细描 述您以往的性能测试工作的完整过程。 14.您在从事性能测试工作时,是否使用过一些测试工具?如果有,请 试述该工具的工作原理,并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的。 15.您认为性能测试工作的目的是什么?做好性能测试工作的关键 是什 么?

初级软件测试工程师面试题笔试题集

初级软件测试工程师面试题笔试题集 1操作系统 1.1wi ndows 系统 1如何在win2003中如何安装In ternet信息服务(IIS)? 2如何在Dos下面用命令将D盘下面test目录文件夹及子目录打印 并保存? 3进程和线程的区别? 1.2Li nux 系统 (1)局域网的网络地址192.168.1.0/24,局域网络连接其它网络的网关地址是192.168.1.1。 主机192.168.1.20访问172.16.1.0/24网络时,其路由设置正确的是。 A route add -net 192.168.1.0 gw 192.168.1.1 n etmask 255.255.255.0 metric 1 B route add —et 172.16.1.0 gw 192.168.1.1 n etmask 255.255.255.255 metric 1 C route add -net 172.16.1.0 gw 172.16.1.1 netmask 255.255.255.0 metric 1 D route add default 192.168.1.0 n etmask 172.168.1.1 metric 1

(2)下列信息是某系统用ps - ef命令列出的正在运行的进程,进程是运行In ternet超级服务 器,它负责监听In ter net sockets上的连接,并调用合适的服务器来处理接收的信息。 A root 1 4.0 0.0 344 204? S 17:09 0:00 in it B root 2 0.0 0.1 2916 1520? S 17:09 0:00 /sbin/getty C root 3 0.0 0.2 1364 632? S 17:09 0:00 /usr/sb in /syslogd D root 4 0.0 1344 1204? S 17:09 0:10 /usr/sbi n/i netd XXX公司_技术中心—测试_初级测试程师面试题 (3)对名为mayingbao的文件用chmod 551 mayingbao进行了修改,则它的许可权是。 A -rwxr-xr-x B -rwxr-r — C -r- - — D -r-xr-x—x ⑷ 将home/stud1/mayingbao目录做归档压缩,压缩后生成 mayin gbao.tar.gz文件,并 将此文件保存到/home目录下,实现此任务的tar命令格式。 2数据库 (1)对以下已知成绩关系如图1所示。 执行SQL语句: SELECT COUNTDISTINCT学号) FROM成绩 WHERE分数〉60

软件工程师面试试题

软件工程师面试试题 姓名: 1、全局变量和局部变量的概念和不同 作用域为整个程序运行空间的变量为全局变量。 作用域为某个函数或复合语句内部的变量为局部变量。 两者作用域不同,所在物理空间申请和分配方式不同。 使用原则:能用局部变量的最好不要用全局变量,以减少模块间的耦合度。2、static类型变量的概念 静态变量是在编译时就分配物理空间的变量。主要用于全局物理空间申请以及函数内部用于独立函数本身存在的应用场合。 3、简述获取双精度浮点数(double)每个字节数据的操作方法 使用字节指针强制转换连两存放的地址。 Double dblTemp = 0.0; Byte * pByte = (byte *)(&dblTemp); 4、在C++中,new和delete分配的内存块为何需要成对使用 两者实际调用的是malloc和free,如果不成对使用,则造成内存泄漏。 5、举例说明数据的二进制表示方式和字符型表示方式 以数据文件为例: Fprintf(f, “%d”, data);//字符形 Fwrite(&data, sizeof(int),1,f);//二进制形

6、头文件中使用#ifndef/define/endif的优点? 防止嵌套重复定义 7、如何向一个窗口发消息,写出windows API。 首先获取一个窗口句柄,可以使用枚举所有窗口的方式(EnumWindows); 使用API函数发送消息; 例如向一个按钮发送点击消息: SendMessage(hwnd, WM_LBUTTONDOWN, MK_LBUTTON, 0x00100019) 8、#include < filename.h >和#include “filename.h”有什么区别? 搜索范围不同。 前者只在编译环境制定的INCLUDE路径范围内搜索; 后者增加对当前目录的搜索。 9、软件编程中,为了便于阅读、记忆和使用,对变量名、数组名、结构体名、 联合体名、函数名等的命名规则简述 变量名:类型加名词或修饰词,例如:double dblTemp;定义一个双精度的临时变量。 数组名:类型加名词复数形式,例如char * strNames[100],定义一个字符串数据结构体:一般定义为类型,结构名为下划线开头,类型名大写。例如:Typedef struct _MyStruct{ Int iAge; … }MYOBJECT; * LPMYOBJECT;

软件测试工程师笔试理论题库1

软件测试工程师笔试理论题库1

理论题库 1 2 3 4 5 6 7 8 9 10 C C DBC C D A B D B C 11 12 13 14 15 16 17 18 19 20 C D B B C B B D A D 21 22 23 24 25 26 27 28 29 30 D B B A A AC C D D C 31 32 33 34 35 36 37 38 39 40 B C D C DBC D A C C D 41 42 43 44 45 46 47 48 49 50 BAA B ADD B B A D B B D 51 52 53 54 55 56 57 58 59 60 C D B D C B A C A B 61 62 63 64 65 66 67 68 69 70 C B A D A C B B C C 71 72 73 74 75 76 77 78 79 80 A A D D D A D B D B 81 82 83 84 85 86 87 88 89 90 B A D C D B C B C B 91 92 93 94 95 96 97 98 99 100 A B B A BA AD A C A C 单选题 1.是常见的接受电子邮件协议。A.HTTPS B.ET C.POP3 D.DNS

2.系统中有四个作业,它们的到达时间、运行时间、开始时间、完成时间和周转时间如表1所示,该系统采用的作业调度算法是。 表1 作业到达 时间 计算时 间(分) 开始 时间 完成 时间 周转时 间(分) J1 8:00 60 8:00 9:00 60 J2 8:10 20 9:10 9:30 80 J3 8:20 10 9:00 9:10 50 J4 8:40 15 9:30 9:45 65 A、先来先服务 B、短作业优先 C、响应比高者优先 D、不能确定 3.数据库系统实现数据独立性是因为采用了 (1) 。 当两个子查询的结果 (2) 时,能够执行并、交、差操作。 SELECT语句中“SELECT DISTINCT”表示查询结果中 (3) 。 (1) A、层次模型 B、网状模型 C、关系模型 D、

性能测试面试题附答案范文

1、哪个函数是用来截取虚拟用户脚本中的动态值?(手工关联) Web_reg_save_param 2、你如何识别系统瓶颈? 从TPS指标分析(即系统每秒处理可处理事务数)当前随着用户数的增长其系统每秒可处理的事务数是否也会增长 3、think_time有什么用? Think_time作用主要有以下几种: 1)降低当前运行时压力,缓解对应用服务器所造成的压力 2)模拟真实生产用户操作,考察对服务器所造成的影响 4、一般什么时候开始进行性能测试 被测系统的正常业务流程通过,即集成测试通过后。 5、进行参数化的目的 1)减少脚本的大小 2)提供不同的值以提高执行脚本的能力,从而更加真实的模拟生产环境的数据 6、容量测试方法中为什么要以逐步递增的的方式进行 虚拟用户数随着负载时间的延长而增加,可以帮助确定系统响应时间减慢的准确时间点以及准确用户数 7、假设在测试过程中发现某些事务的响应时间过长,但分析应用服务、数据库服务以及网络都属于 正常现象,问题可能出现的原因 1)LR客户端机器是否已无法承载当前运行压力导致LR无法及时获取从服务端返回的信息2)Think_time(即思考时间)是否已忽略 3)确定当前被测系统架构,是否为在每次测试过程中清除缓存所导致 8、如何发现应用服务的相关问题? 1)通过某些事务的运行,判断是否在应用代码层未进行调优导致事务响应事件过长 2)通过实时监控工具(nmon等)监控分析: a)系统在运行过程其CPU是否稳定运行或CPU耗用是否过高 b)在系统运行过程中其内存是否存在内存泄露现象 3)打开应用相应日志,分析在运行过程中是否存在交易报错并获取错误原因查看是否由于代码原因导致交易错误发生 9、如何发现数据库的相关问题? 1)通过运行某些相应的已获取的SQL语句,判断是否由于数据库索引所导致的事务响应过长的问题发生 2)通过实时监控工具(nmon等)监控分析: a)在系统运行过程中CPU是否可稳定运行或CPU耗用过高; b)在系统运行过程中其内存是否存在内存泄露等现象。

软件工程师笔试题目

软件工程师笔试题目 (考试时间:60分钟,满分100分) 1、请简要描述TCP/IP参考模型和OSI参考模型。(10分) 2、简述如下物联网设备Wi-FI、Bluetooth、ZigBee、RFID、NB-IoT的各自特点。(10分) 3、编程实现如下运算:1!+ 2!+ 3!+ ……+ 17! + 18! + 19! + 20!。(15分) 4、假设有个字符数组A,有10个元素,请对这10个元素进行从小到大排列。(10分)

5、假定x=9999,求下面函数的返回值(10分) int func(x) { int countx = 0; while(x) { countx ++; x = x&(x-1); } return countx; } 6、对整型数组a[10]输入10个元素,然后用指针方式依次输出各元素值。(15分) 7、在SQL server上创建名为XuGuang的数据库,然后创建WCM730Q的列表,第一列MAC address为主键,第二列为VID_PID,第三列为BT_FW,第四列为Staff_No. (10分) 8、linux基础命令填空(10分) (1)获取Kernel版本信息的linux命令是____________ (2)实现一个新建文件夹功能的linux命令是____________ (3)用来查看和配置网络接口(网卡)的linux命令是____________ (4)把文件从A路径拷贝到B路径的linux命令是____________ (5)使用vim对文档完成修改后,实现保存退出的功能的命令是____________ 9、请用英文写作,描述下个人基本信息、兴趣爱好、专业技能、职业规划等(10分)(请背面作答)

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

软件测试工程师面试题汇总 测试技术面试题 (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)

测试工程师面试题(免费下载,吐血推荐)

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

软件工程师笔试面试题

C语言: (1)什么是预编译,何时需要预编译: 答案: 1、总是使用不经常改动的大型代码体。 2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种 情况下,可以将所有包含文件预编译为一个预编译头。 预编译又称为预处理,是做些代码文本的替换工作。处理#开头的指令吗,比如拷贝#include包含的文件代码,#define宏定义的替换,条件编译等,就是为编译做的预备工作的阶段,主要处理#开始的预编译指令,预编译指令指示了在程序正式编译前就由编译器进行的操作,可以放在程序中的任何位置。c编译系统在对程序进行通常的编译之前,先进行预处理。c提供的预处理功能主要有以下三种:1)宏定义2)文件包含3)条件编译。 (2)char* const p, char const* p,const char*p 上述三个有什么区别? 答案: char * const p; //常量指针,p 的值不可以修改 char const * p;//指向常量的指针,指向的常量值不可以改 const char *p;//和char const *p等价 (3)char str1[] = "abc"; char str2[] = "abc"; const char str3[] = "abc"; const char str4[] = "abc"; const char *str5 = "abc"; const char *str6 = "abc"; char *str7 = "abc"; char *str8 = "abc"; cout < <( str1 == str2 ) < < endl; cout < < ( str3 == str4 ) < < endl; cout < < ( str5 == str6 ) < < endl; cout < < ( str7 == str8 ) < < endl; 结果是:0 0 1 1 str1,str2,str3,str4 是数组变量,它们有各自的内存空间;而str5,str6,str7,str8 是指针,它们指向相同的常量区域。 (4)以下代码中的两个sizeof 用法有问题吗? void UpperCase( char str[] ) // 将str 中的小写字母转换成大写字母 { for( size_t i=0;i

性能测试人员面试经典技术问题

1.请问什么是性能测试、负载测试、压力测试? 性能测试:对一个软件系统而言,包括执行效率、资源占用、系统稳定性、安全性兼容性、可扩展性等。 负载测试:通过逐步加压的方式来确定系统的处理能力,确定系统能承受的各项阀值。 压力测试:逐步增加负载,使系统某些资源达到饱和甚至失效的测试。 2.请分别针对性能测试、负载测试和压力测试试举一个简单的例子? 性能测试例子:公司开发了一个小型项目管理系统,上线前需要做负载、压力、大数据量、强度测试等。 负载测试:逐步加压,从而得到“响应时间不超过10秒”,“服务器平均CPU利用率低于85%”等指标阀值。 “服务器平均CPU利用率高于90%” 压力测试:逐步加压,从而使“响应时间超过10秒”, 等指标来确定系统能承受的最大负载量。 3.请例举出常用的性能测试工具,并指出这些工具的优缺点? LoadRunner,录制脚本快捷操作简便,需要一定的学习时间,有采购成本。 4.请问您是如何得到性能测试需求?怎样针对需求设计、分析是否达到需求? 在查看需求文档,从中提取性能测试需求,与用户交流,了解实际使用情况。 结合业务信息设计操作场景总结出需测试的性能关键指标。 执行用例后根据提取关键性能指标来分析是否满足性能需求。 5.什么时候可以开始执行性能测试? 在产品相对比较稳定,功能测试结束后。灵活性比较强。 6.什么是集合点?设置集合点有什么意义?LoadRunner中设置集合点的函数是哪个? 集合点可以控制各个Vuser以便在同一时刻执行任务。 借助集合点,可以再LoadRunner中实现真正意义上的并发。 lr_rendezvous()

7.性能测试时,是不是必须进行参数化?为什么要创建参数?LoadRunner中如何创建参数? 8是。 模拟用户真实的业务操作。 创建参数列表,用参数替换固定的文本。 8.您了解关联吗?如何找出哪里需要关联?请给一些您所在项目的实例。 了解。 使用LoadRunner自动关联功能。手动关联:录制两份相同操作步骤的脚本,找出不同的部分进行判断。 一个项目管理系统,每次登录后服务器都自动分配一个sessionID以便之后每次表单提交后验证。 9.您如何调试LoadRunner脚本? 设置断点、增加log。 10.在LoadRunner中如何编写自定义函数?请给出一个您在以前项目中编写的函数。 11.请问您是如何理解LoadRunner中集合点、事务以及检查点等概念? 集合点:可以控制各个Vuser以便在同一时刻执行任务,可实现真正意义上的并发。 事务:事务是用来度量服务器响应时间的操作集。 检查点:在回放脚本期间搜索特定内容,从而验证服务器响应内容的正确性。 12.如何应用LoadRunner进行性能测试? 使用虚拟用户生成器创建脚本,使用控制器设定场景、运行脚本,使用分析器分析运行后得到的数据。 13.LoadRunner中思考时间有什么作用? 用户执行两个连续操作期间等待的时间。模拟用户真实的使用情况。 14.LoadRunner中如何实现多用户并发操作,需要进行哪些设置? 设置集合点来实现,在脚本中加入lr_rendezvous(),然后可以在控制器中设定集结百分

软件测试工程师笔试题B

软件测试工程师笔试题B 测试人员_考试试卷(考试时间100分钟,满分100分) 姓名:__________部门:__________员工号:__________ 一、填空题:(每一空格2分,共60分) 1、软件实施活动的输出工件有、、、。 2、代码评审主要做工作。 3、软件实施活动中集成员的职责是。 4、验证与确认软件实施活动主要有、代码评审、、、、SQA 验证。 5、表明测试已经结束。 6、软件测试的目的是。 7、软件测试主要分为、、、四类测试。 8、软件测试活动有制定测试计划、、、、、、测 试评估、测试结束八个步骤。 9、软件测试活动的输出工件有_ 、、、、。 10、软件测试角色有、、、。 二、不定项选择题:(每题3 分,共15分) 1、软件实施活动的进入准则是() A、需求工件已经被基线化 B、详细设计工件已经被基线化 C、构架工件已经被基线化 D、项目阶段成果已经被基线化 2、下面角色不属于集成计划评审的是() A、配置经理 B、项目经理 C、测试员 D、编码员 3、软件测试设计活动主要有() 3 回复:软件测试工程师笔试试题 A、工作量分析 B、确定并说明测试用例 C、确立并结构化测试过程 D、复审并评估测试覆盖 4、不属于集成测试步骤的是() A、制定集成计划 B、执行集成测试 C、记录集成测试结果 D、回归测试

5、属于软件测试活动的输入工件的是() A、软件工作版本 B、可测试性报告 C、软件需求工件 D、软件项目计划 三、问答题:(共25 分) 1、项目的集中管理在软件公司的哪一个层面?(2 分) 2、请描述软件测试活动的生命周期。(8 分) 3、什么是测试评估,测试评估的范围是什么?(5 分) 4、阐述工作版本的定义。(2 分) 5 、请画出软件测试活动的流程图。(8 分)

相关文档