视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
(完整版)软件测试工程师面试笔试题
2025-10-03 15:20:24 责编:小OO
文档
判断题:

1、软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。( √ )

2、白盒测试侧重于程序结构,黑盒测试侧重于功能,其中白盒测试需要程序员参与,黑盒测试不需要 (×)

3、单元测试通常应该先进行“人工走查”,再以白盒法为主,辅以黑盒法进行动态测试。(√)

4、集成测试也叫做组装测试,通常在编码完成的基础上,将所有的程序模块进行有序的、递增的测试( × )

5、系统测试应尽可能在实际运行使用环境下进行(√)

6、详细设计的目的是为软件结构图中的每一个模块确定使用的算法和块内数据结构,并用某种选定的表达工具给出清晰的描述。 ( √ )

7、测试人员在测试过程中发现一处问题,如果问题影响不大,而自己又可以修改,应立即将此问题正确修改,以加快、提高开发的进程。(×)

8、程序、需求规格说明、设计规格说明都是软件测试的对象(√)

9、第三方测试是在开发方与用户方的测试基础上进行的验证测试 ( × )

10、数据流图和数据字典共同构成系统的逻辑模型。( √ )

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.为了提高测试效率,应该取一切可能的输入数据作为测试数据。(×)

2. 发现错误多的程序模块,残留在模块中的错误也多。(×)

4.等价类划分方法将所有可能的输入数据划分成若干部分,然后从每一部分中选取少数有代表性的数据作为测试用例。(√)

5.系统测试的目标是要找出软件在与系统其他部分协调工作时出现的所有故障(×)

1、软件测试就是为了验证软件功能实现的是否正确,是否完成既定目标的活动,所以软件测试在软件工程的后期才开始具体的工作。(初级)(×)

2、发现错误多的模块,残留在模块中的错误也多。( √ ) (初级)

3、测试人员在测试过程中发现一处问题,如果问题影响不大,而自己又可以修改,应立即将此问题正确修改,以加快、提高开发的进程。(×)(初级)

4、单元测试通常应该先进行“人工走查”,再以白盒法为主,辅以黑盒法进行动态测试。(√)

5、功能测试是系统测试的主要内容,检查系统的功能、性能是否与需求规格说明相同。(√)

6、软件质量管理即QM由QA和QC构成,软件测试属于QC的核心工作内容。(√)(高级)

7、软件测试只能发现错误,但不能保证测试后的软件没有错误。(√)

8、软件就是程序。(X)

9、测试只要做到语句覆盖和分支覆盖,就可以发现程序中的所有错误。(X)

10、I18N测试是指对产品做出具有国际性的规划,而L10N测试则是指对软件做出符合本地需求更改工作。(√)【高级】

选择题:

1、软件测试的目的正确的是( D )

①测试是为了发现程序中的错误而执行程序的过程;

②好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;

③成功的测试是发现了至今为止尚未发现的错误的测试

④测试并不仅仅是为了找出错误.通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进;

A、①

B、①②③

C、②③④

D、①②③④

2、软件测试的对象包括( B )

A.目标程序和相关文档 B.源程序、目标程序、数据及相关文档

C.目标程序、操作系统和平台软件D.源程序和目标程序

3、从是否关心软件内部结构和具体实现的角度划分。( B )

A、静态测试、动态测试

B、黑盒测试、白盒测试、灰盒测试

C、单元测试、集成测试、确认测试、系统测试、验收测试

D、以上都不对

4、关于软件测试模型,描述正确的是( C )

A、V模型测试的对象就是程序本身,测试与开发可以同一阶段进行

B、W模型测试的对象是程序,需求、设计等,可以支持迭代的开发模型

C、H模型软件测试过程活动完全,贯穿产品整个生命周期,与其他流程并发地进行。

D、X模型是事先计划再进行测试。

5、软件测试按实施组织分,测试应该包括以下的( A )

①开发方测试②用户方测试③第三方测试④验收测试⑤确认测试

A.①②③ B.③④⑤ C.①②④ D.①②③④⑤

6、制定测试计划的步骤:(D)

A、确定项目管理机制预计测试工作量测试计划评审

B、确定测试范围确定测试策略确定测试标准、预计测试工作量

C、确定测试构架确定项目管理机制预计测试工作量测试计划评审

D、确定测试范围确定测试策略确定测试标准确定测试构架确定项目管理机制预计测试工作量测试计划评审

7、为保证测试活动的可控性,必须在软件测试过程中进行软件测试配置管理,一般来说,软件测试配置管理中最基本的活动包括( A )

A.配置项标识、配置项控制、配置状态报告、配置审计

B.配置基线确立、配置项控制、配置报告、配置审计

C.配置项标识、配置项变更、配置审计、配置跟踪

D.配置项标识、配置项控制、配置状态报告、配置跟踪

8、某次程序调试没有出现预计的结果,下列( B)不可能是导致出错的原因。

A、变量没有初始化

B、编写的语句书写格式不规范

C、循环控制出错

D、代码输入有误

9、下列关于程序效率的描述错误的是(B )。

A、提高程序的执行速度可以提高程序的效率

B、降低程序占用的存储空间可以提高程序的效率

C、源程序的效率与详细设计阶段确定的算法的效率无关D、好的程序设计可以提高效率

10、逻辑路径覆盖法是白盒测试用例的重要设计方法,其中语句覆盖法是较为常用的方法,针对下面的语句段,采用语句覆盖法完成测试用例设计,测试用例见下表,对表中的空缺项(True 或者False),正确的选择是( A )。

语句段:

if (A && (B||C)) x=l;

else x=O;

用例表:

A.①TRUE ②

C.①FALSE ②FALSE ③TRUE D.①TRUE ②TRUE ③FALSE

11、程序设计语言中( D )。

A. while 循环语句的执行效率比 do-while 循环语句的执行效率高

B. while 循环语句的循环体执行次数比循环条件的判断次数多 1,而do-while 语句的循环体执行次数比循环条件的判断次数少 1

C. while 语句的循环体执行次数比循环条件的判断次数少 1,而 do-while语句的循环体执行次数比循环条件的判断次数多 1

D. while 语句的循环体执行次数比循环条件的判断次数少 1,而 do-while语句的循环体执行次数等于循环条件的判断次数

12、DB, DBMS 和 DBS 三者间的关系是( B )

A . D

B 包括 DBMS 和 DBS B . DBS 包括 DB 和 DBMS

C . DBMS 包括 DBS 和 DB

D . DBS 与 DB 、 DBMS 无关

13.在TCP/IP模型中,应用层包含了所有的高层协议,在下列的一些应用协议中,B是能够实现本地与远程主机之间的文件传输工作。

A telnet

B FTP

C SNMP

D NFS

14、一个局域网中某台主机的IP 地址为176.68.160.12,使用22 位作为网络地址,那么该局域网的子网掩码和,最多可以连接的主机数分别为( B )

A、255.255.251.0 1021

B、255.255.252.0 1022

C、255.255.253.0 1023

D、255.255.254.0 1024

15、Linux文件系统的文件都按其作用分门别类地放在相关的目录中,对于外部设备文件,一般应将其放在( C )目录中。

A /bin

B /etc

C /dev

D /lib

16、某公司采用的软件开发过程通过了CMM2认证,表明该公司( C )。

A. 开发项目成效不稳定,管理混乱

B. 对软件过程和产品质量建立了定量的质量目标C. 建立了基本的项目级管理制度和规程,可对项目的成本、进度进行跟踪和控制

D. 可集中精力采用新技术新方法,优化软件过程

17、质量管理人员在安排时间进度时,为了能够从全局出发、抓住关键路径、统筹安排、集中力量,从而达到按时或提前完成计划的目标,可以使用( A )。

A.活动网络图 B.因果图

C.优先矩阵图 D.检查表

18、某公司最近承接了一个大型信息系统项目,项目整体压力较大,对这个项目中的变更,可以使用( B )等方式提高效率。

①分优先级处理②规范处理③整批处理④分批处理

A.①②③

B.①②④

C.②③④

D.①③④

19、下面哪项工作是制订进度计划的基础:( A )

A、工作分解结构(WBS)

B、网络图

C、甘特图(GANTT)

D、资源平衡(RESOURCE LEVELLING)

20、下面哪一方法通常不会被用来缩短进度? ( D )

A. 赶工

B. 变更范围

C. 以并行方式而不是序列方式来实施进行活动

D. 资源平衡

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.下面说法正确的是( C )。

A. 经过测试没有发现错误说明程序正确

B. 测试的目标是为了证明程序没有错误

C. 成功的测试是发现了迄今尚未发现的错误的测试

D. 成功的测试是没有发现错误的测试

2.不属于白盒测试的技术是( C )。

A. 语句覆盖

B. 判定覆盖

C. 边界值分析

D. 基本路径测试

3.单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是( A )。

A. 系统功能

B. 局部数据结构

C. 重要的执行路径

D. 错误处理

4.软件测试过程中的集成测试主要是为了发现( B )阶段的错误。

A.需求分析

B.概要分析

C.详细设计

D.编码

5.软件测试不需要了解软件设计的( D )。

A.功能

B.内部结构

C.处理过程

D.条件

6.( C )方法根据输出对输入的依赖关系设计测试用例。

A.路径测试

B.等价类

C.因果图

D.边界值分析

7.通常,在( D )的基础上,将所有模块按照设计要求组装成系统

A.组装测试

B.系统测试

C.验收测试

D.单元测试

8.实际的逻辑覆盖测试中,一般以( C )为主设计测试用例。

A. 条件覆盖

B. 判定覆盖

C. 条件组合覆盖

D. 路径覆盖

9.使用白盒测试方法时,确定测试数据应根据( A )和指定的覆盖标准。

A.程序内部逻辑

B.程序的复杂度

C.使用说明书

D.程序的功能

10.与设计测试用例无关的文档是( A )。

A.项目开发计划

B.需求规格说明书

C.设计说明书

D.源程序

11、软件测试技术可以分为静态测试和动态测试,下列说法中错误的是( D )

A. 静态测试是指不运行实际程序,通过检查和阅读等手段来发现程序中的错误。

B. 动态测试是指实际运行程序,通过运行的结果来发现程序中的错误。

C. 动态测试包括黑盒测试和白盒测试。

D. 白盒测试是静态测试,黑盒测试是动态测试。

12、在软件测试阶段,测试步骤按次序可以划分为以下几步:( A )

A. 单元测试、集成测试、系统测试、验收测试

B. 验收测试、单元测试、系统测试、集成测试

C. 单元测试、集成测试、验收测试、系统测试

D. 系统测试、单元测试、集成测试、验收测试

13、系统测试中主要用到的测试技术是(B )

A. 回归测试

B. 黑盒测试

C. 白盒测试

D. 功能测试

14、对软件的性能测试、(B )测试、攻击测试都属于黑盒测试。

A. 语句

B. 功能

C. 单元

D. 路径

15、在用白盒测试中的逻辑覆盖法设计测试用例时,有语句覆盖、分支覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖和路径覆盖等,在下列覆盖中,(D )是最强的覆盖准则。

A. 语句覆盖

B. 条件覆盖

C. 判定-条件覆盖

D. 路径覆盖

16、验收测试主要是由(A )来完成的。

A. 用户

B. 测试人员

C. 开发人员

D. 高级经理

17、在用白盒测试中的逻辑覆盖法设计测试用例时,有语句覆盖、分支覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖和路径覆盖等,其中(A )是最弱的覆盖准则。

A. 语句覆盖

B. 条件覆盖

C. 判定-条件覆盖

D. 路径覆盖

18、下面是一段求最大值的程序,其中datalist是数据表,n是datalist的长度。

int GetMax(int n, int datalist[ ])

{

int k=0;

for ( int j=1; jif ( datalist[j] > datalist[k] ) k=j;

return k;

}

请问该程序段的McCabe环路复杂性为多少?( A )

A. 2

B. 3

C. 4

D. 5

1、进行软件质量管理的重要性有:(ABCD)【中级】

A、维护降低成本

B、法律上的要求

C、市场竞争的需要

D、质量标准化的趋势

E、软件工程的需要

F、CMM过程的一部分

G、方便与客户进一步沟通为后期的实施打好基础

2、以测试的形态分测试可以分为:(ABC)【中级】

A、建构性测试

B、系统测试

C、专项测试

D、单元测试

E、组件测试

F、集成测试

3、选出属于黑盒测试方法的选项(ABC)【初级】

A、测试用例覆盖

B、输入覆盖

C、输出覆盖

D、分支覆盖

E、语句覆盖

F、条件覆盖

4、编写测试计划的目的是:(ABC)【中级】

A、使测试工作顺利进行

B、使项目参与人员沟通更舒畅

C、使测试工作更加系统化

D、软件工程以及软件过程的需要

E、软件过程规范化的要求

F、控制软件质量

5、依存关系有4种分别是:(ABCD)【高级】

A、开始-结束

B、开始-开始

C、结束-开始

D、结束-结束

E、开始-实施-结束

F、结束-审核-开始

6、软件质量管理(QM)应有质量保证(QA)和质量控制(QC)组成,下面的选项属于QC 得是:(ABC)【高级】

A、测试

B、跟踪

C、监督

D、制定计划

E、需求审查

F、程序代码审查

7、实施缺陷跟踪的目的是:(ABCD)【中级】

A、软件质量无法控制

B、问题无法量化

C、重复问题接连产生

D、解决问题的知识无法保留

E、确保缺陷得到解决

F、使问题形成完整的闭环处理

8、使用软件测试工具的目的:(ABC)【中级】

A、帮助测试寻找问题

B、协助问题的诊断

C、节省测试时间

D、提高Bug的发现率

E、更好的控制缺陷提高软件质量

F、更好的协助开发人员

9、典型的瀑布模型的四个阶段是:(ABCD)【高级】

A、分析

B、设计

C、编码

D、测试

E、需求调研

F、实施

10、PSP是指鋈巳砑?,是一种可用于( A )、( B )和( C )个人软件工作方式的自我改善过程。【高级】

A、控制

B、管理

C、改进

D、高效

E、充分

F、适宜

三、填空题(每空1分,共10分)共10空

1、黑盒测试是功能测试,用黑盒技术设计测试用例有4种方法:(等价类划分)(边界值分析)(错误推测)(因果图)。

2、实际的逻辑覆盖测试中,一般以条件组合覆盖为主设计测试用例,然后再补充部分用例,以达到(路径)覆盖测试标准。

3、集成测试的方法有两种:渐增式测试和(非渐增式测试)。

4、软件测试过程中需要3类信息:软件配置、(测试配置)和(测试工具)。

5、SCM是一组管理整个软件生存期各阶段中(变更)的活动。

6、基线的作用是把各阶段的开发工作划分得更加明确,便于检查与确认阶段成果。因此,基线可以作为项目的一个(检查点)。

1.软件验收测试包括:正式验收测试,alpha测试,beta测试。

2.系统测试的策略有:功能测试,性能测试,可靠性测试,负载测试,易用性测试,强度测试,安全测试,配置测试,安装测试,卸载测试,文挡测试,故障恢复测试,界面测试,容量测试,兼容性测试,分布测试,可用性测试,(有的可以合在一起,分开写只要写出15就满分哦)

3.设计系统测试计划需要参考的项目文挡有:软件测试计划,软件需求工件和迭代计划。

4.对面向过程的系统采用的集成策略有:自顶向下,自底向上两种。

5.(这题出的有问题哦,详细的5步骤为~~)通过画因果图来写测试用例的步骤为:

(1)分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。

(2)分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系? 根据这些关系,画出因果图。

(3)由于语法或环境,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或条件。

(4)把因果图转换成判定表。

(5)把判定表的每一列拿出来作为依据,设计测试用例。

1.软件测试是为了尽可能多地发现软件中存在的 _错误_,将 _测试结果_作为纠错的依据。

2.白盒测试中,控制流测试是面向程序的 _结构___,数据流测试是面向程序的变量___。

3. 集成测试中的两种集成模式是_非增量测试模式__和___增量测试模式___。

4. 单元测试的依据是__详细设计说明书_和__源程序____。

5.测试用例由_输入数据_和预期的_输出数据_两部分组成。

四、简答(资料是搜集整理的,感谢前辈的解题)无

1.区别阶段评审的与同行评审

同行评审目的:发现小规模工作产品的错误,只要是找错误;

阶段评审目的:评审模块阶段作品的正确性可行性及完整性

同行评审人数:3-7人人员必须经过同行评审会议的培训,由SQA指导

阶段评审人数:5人左右评审人必须是专家具有系统评审资格

同行评审内容:内容小一般文档 < 40页, 代码 < 500行

阶段评审内容: 内容多,主要看重点同行评审时间:一小部分工作产品完成

阶段评审时间: 通常是设置在关键路径的时间点上!

2.什么是软件测试

为了发现程序中的错误而执行程序的过程

3简述集成测试的过程

系统集成测试主要包括以下过程:

1. 构建的确认过程。

2. 补丁的确认过程。

3. 系统集成测试测试组提交过程。

4. 测试用例设计过程。

5. 测试代码编写过程。

6. Bug的报告过程。

7. 每周/每两周的构建过程。

8. 点对点的测试过程。

9. 组内培训过程。

4 怎么做好文档测试

仔细阅读,跟随每个步骤,检查每个图形,尝试每个示例。P142

检查文档的编写是否满足文档编写的目的

内容是否齐全,正确

内容是否完善

标记是否正确

5 白盒测试有几种方法

总体上分为静态方法和动态方法两大类。

静态:关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义

动态:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。

6系统测试计划是否需要同行审批,为什么

需要,系统测试计划属于项目阶段性关键文档,因此需要评审。

7Alpha测试与beta的区别

Alpha测试在系统开发接近完成时对应用系统的测试;测试后仍然会有少量的设计变更。这种测试一般由最终用户或其它人员完成,不能由程序或测试员完成。

Beta测试当开发和测试根本完成时所做的测试,最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其它人员完成,不能由程序员或测试员完成。

8比较负载测试,容量测试和强度测试的区别

负载测试:在一定的工作负荷下,系统的负荷及响应时间。

强度测试:在一定的负荷条件下,在较长时间跨度内的系统连续运行给系统性能所造成的影响。容量测试:容量测试目的是通过测试预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限值状态下没有出现任何软件故障或还能保持主要功能正常运行。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。容量测试的目的是使系统承受超额的数据容量来发现它是否能够正确处理。容量测试是面向数据的,并且它的目的是显示系统可以处理目标内确定的数据容量。

12.测试结束的标准是什么?

用例全部测试。

覆盖率达到标准。

缺陷率达到标准。

其他指标达到质量标准

13.描述软件测试活动的生命周期?

测试周期分为计划、设计、实现、执行、总结。

其中:

计划:对整个测试周期中所有活动进行规划,估计工作量、风险,安排人力物力资源,安排进度等;

设计:完成测试方案,从技术层面上对测试进行规划;

实现:进行测试用例和测试规程设计;

执行:根据前期完成的计划、方案、用例、规程等文档,执行测试用例。

总结:记录测试结果,进行测试分析,完成测试报告。

14.软件的缺陷等级应如何划分?

A类—严重错误,包括以下各种错误: 1.由于程序所引起的死机,非法退出 2.死循环 3.数据库发生死锁 4.因错误操作导致的程序中断 5.功能错误 6.与数据库连接错误 7.数据通讯错误

B类—较严重错误,包括以下各种错误: 1.程序错误 2.程序接口错误 3.数据库的表、业务规则、缺省值未加完整性等约束条件

C类—一般性错误,包括以下各种错误: 1.操作界面错误(包括数据窗口内列名定义、含义是否一致) 2.打印内容、格式错误 3.简单的输入未放在前台进行控制 4.删除操作未给出提示 5.数据库表中有过多的空字段

D类—较小错误,包括以下各种错误: 1.界面不规范 2.辅助说明描述不清楚 3.输入输出不规范 4.长操作未给用户提示 5.提示窗口文字未采用行业术语 6.可输入区域和只读区域没有明显的区分标志

15.进程和程序的区别:

(1)进程就是一个活跃着的程序,即:已经被放入了系统调度队列当中了,占有了一定的系统资源的程序.程序在没有被调用之前只能叫程序,被调用并得到了资源后就可以称其为进程了,进程可以由许多线程组成,线程与进程的主要区别在于同一进程里的线程之间可以共享一些临界资源,而进程之间则不可以,每个进程是孤立的,其实,无论是进程还是线程都是一段受命并在内存中得到执行的代码.

(2)进程的定义是:一个程序关于某个数据集的一次运行活动。进程是操作系统中可以并行工作的基本单位,也是核心调度及资源分配的最小单位。

进程是程序关于数据的一次运行,因而它包含一个或多个程序及数据。除此之外,进程描述还包含一些进程的有关情况和属性信息,例如执行情况、资源使用情况。为了便于操作系统对进程进行控制和管理,通常操作系统用一个称为进程控制块PCB的数据结构来记录进程的属性信息。所以进程由程序、数据和进程控制块组成。PCB是进程存在的唯一标志。也就是说系统在建立进程的同时就建立该进程的PCB,在撤销一个进程时也就撤销其PCB。

进程与程序的区别表现为以下几方面。

(1)程序是静态的,进程是动态的。

因为程序是一组指令的有序集合而进程是一次运行活动。而且进程在它的生命周期中要经历3种基本状态:等待、就绪、运行。这是程序所没有的。

(2)程序的存在是永久的,进程的存在是暂时的。

进程是一次运行活动,必然有始有终,所以它的存在是暂时的。

(3)进程由程序、数据和进程控制块组成。

由于进程是程序的执行,所以进程中必然包括程序和数据及记录进程状态信息的进程控制块。

(4)一个程序可以对应多个进程。

例如:多个Fortran源程序可能同时用编译程序进行编译,即一个编译程序对应多个Frotran 源进程。

(5)一个进程可以包括多个程序。

因为主程序执行过程中可以调用多个其他程序,共同组成“一次运行活动”。

16.进程与线程的异同

说法一:进程是具有一定功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个单位.

线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.

一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行

说法二:进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于:

简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。

说法三:多线程共存于应用程序中是现代操作系统中的基本特征和重要标志。用过UNIX操作系统的读者知道进程,在UNIX操作系统中,每个应用程序的执行都在操作系统内核中登记一个进程标志,操作系统根据分配的标志对应用程序的执行进行调度和系统资源分配,但进程和线程有什么区别呢?进程和线程都是由操作系统所所有的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于:线程的划分尺度小于进程,使得多线程程序的并发性搞。另外,进程在执行过程中拥有的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。

进程(Process)是最初定义在Unix等多用户、多任务操作系统环境下用于表示应用程序在内存环境中基本执行单元的概念。以Unix操作系统为例,进程是Unix操作系统环境中的基本成分、是系统资源分配的基本单位。Unix操作系统中完成的几乎所有用户管理和资源分配等工作都是通过操作系统对应用程序进程的控制来实现的。

简答

1.为什么说软件测试是软件开发中不可缺少的重要一环,但不是软件质量保证的安全网?

软件测试是软件开发中不可缺少的重要一环,原因是:测试的工作量约占整个项目开发工作量的53%~87%左右,如果是关系到人的生命安全的软件,测试的工作量还要更大。

软件测试是对软件需求分析、设计规格说明、编码的最终复审,是软件质量保证的关键步骤。但软件测试不是软件质量保证的安全网,因为软件测试只能发现错误,不能保证没有错误。

2. 请描述静态测试和动态测试的区别。

是否运行程序。静态测试是不运行被测试程序,对代码通过检查、阅读进行分析。动态测试是真正运行被测程序,在执行过程中,通过输入有效的测试用例对其输入与输出的对应关系进行分析。

3. 单个组件经过代码审查和测试,其有效性已经得到了全面验证,请解释为什么仍然需要进行集成测试。

单个组件正常工作并不意味着所有组件集成在一起可以正常工作,因为组件相互连接时接口会引起许多新问题,集成测试正是将通过单元测试的各个组件组装在一起进行综合测试,以便发现与接口有关的各种错误。

2、请画出软件测试过程V模型,并写出采用V模型存在的问题(5分)

答:1)V模型图

2)采用V模型存在问题:

①.测试是开发之后的一个阶段。

②.测试的对象就是程序本身。

③实际应用中容易导致需求阶段的错误一直到最后系统测试阶段才被发现。

④整个软件产品的过程质量保证完全依赖于开发人员的能力和对工作的责任心,而且上一步的结果必须是充分和正确的,如果任何一个环节出了问题,则必将严重的影响整个工程的质量和预期进度。

3、软件测试的原则,这些原则能更好的理解和指导我们做测试工作,请把你所知道的原则详细列出来。(5分)

答:1、测试可以显示缺陷的存在,但不能证明系统不存在缺陷。

2、穷尽测试是不可能的

3、测试的尽早介入(越晚发现一个bug,修改bug成本成倍增加)。

4、第三方或的测试团队。

5、测试的标准是用户的需求

6、尽早定义产品的质量标准(测试用例应包括明确的输入和输出,做到有的放矢)

7、用例全面(有效数据、无效数据)

8、及时更新测试用例,减少测试人员形成定势思维(杀虫剂悖论:杀虫剂用得多了,害虫就有免疫力,杀虫剂就发挥不了效力)

9、严格执行测试计划,排除测试的随意性。

10、充分注意测试中的群集现象,80%的错误集中在20%的程序模块中。

11、应当对每一个测试结果做全面检查。

12、妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。

13、测试贯穿于整个生命周期4、CMM由低至高共分为5个级别是什么?并简述每级基本特征。(5分)

答:CMM由低至高共分为5个级别:初始级、可重复级、定义级、管理级和优化级

CMM五级基本特征:

CMM一级,初始级:个别的,混乱的过程,几乎没有定义过程的规则或步骤;

CMM二级,可重复级:已建立的必要过程准则,但主要过程依赖于个人经验;

CMM三级,定义级:量化的已定义且制度化的过程;

CMM四级,管理级:量化的已质量的过程;

CMM五级,优化级:达到一个持续改善过程。

5、ISO 9001管理八原则是什么?并进行简要描述?(5分)

答:1.以顾客为关注焦点:组织依赖于顾客,因此组织应该理解顾客当前的和未来的需求,从而满足顾客要求并超越其期望。

2.领导作用:领导者将本组织的宗旨、方向、和内部环境统一起来,并创造使员工能够充分参与实现组织目标的环境。80%质量问题与管理有关,20%与员工有关。

3.全员参与:各级员工是组织的生存和发展之本,只有他们的充分参与,才能使其才能给组织带来最佳效益。岗位职责包括了全员(从总经理到基层员工)。

4.过程方法:将相关的资源和活动作为过程进行管理,可以更高效地取得预期结果。

5.管理的系统方法: ISO9000针对设定的目标,识别、理解并管理一个由相互关联的过程所组成的体系,有助于提高组织的有效性和效率。木水桶的围板原理。

6.持续改进:是组织的一个永恒发展的目标。PDCA循环。

7.基于事实的决策方法:针对数据和信息的逻辑分析或判断是有效决策的基础。用数据和事实说话。

8.互利的供方关系:通过互利的关系,增强组织及其供方创造价值的能力。麦当劳管理方式。

6、根据自己的理解什么是测试用例和测试规程,设计一个测试用例应当从哪几方面考虑?(中级)(10分)

答:狭义的讲,一个测试用例就是测试人员用以测试被测软件的某个特性或特性组合的一组数据。这组数据可能是从用户处得来的实际的一组数据,也可能是测试人员专门设计出来的测试软件某些功能的一组数据。

测试规程就是详细的对测试用例设计方法、测试方法、测试工具、测试环境和测试数据进行描述的文档,还可以包括能把某个或某一组测试用例应用到被测软件上完成某项测试的一系列的操作步骤。

设计测试用例应当从以下几方面考虑:边界值,等价类划分,有效/无效值等。

7、什么是软件质量保证?软件质量保证人员与开发人员的关系如何?(高级) (10分)

答:软件质量保证就是通过确保软件过程的质量,来保证软件产品的质量。

软件质量保证人员和开发人员之间具有管理上的严格的性,两个小组的管理员都不能越权管理另一组,但都可以向更高层的管理者汇报软件开发中的问题

五、分析题(每题15分、共1题、共15分)

有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。

1) 分析这一段说明,列出原因和结果

原因:

1.售货机有零钱找

2.投入1元硬币

3.投入5角硬币

4.押下橙汁按钮

5.押下啤酒按钮

结果:

21.售货机〖零钱找完〗灯亮

22.退还1元硬币

23.退还5角硬币

24.送出橙汁饮料

25.送出啤酒饮料

2)画出因果图,如图所示。所有原因结点列在左边,所有结果结点列在右边。建立中间结点,表示处理的中间状态。中间结点:

11. 投入1元硬币且押下饮料按钮

12. 押下〖橙汁〗或〖啤酒〗的按钮

13. 应当找5角零钱并且售货机有零钱找

14. 钱已付清下载本文

显示全文
专题