软件工程师考试题简答题

一起走到时间的尽头
  • 回答数

    4

  • 浏览数

    15636

首页> 工程师报名> 软件工程师考试题简答题

4个回答默认排序
  • 默认排序
  • 按时间排序

旧人旧曲旧调调

已采纳

1、为什么要在一个团队中开展软件测试工作?

因为没有经过测试的软件很难在发布之前知道该软件的质量,就好比ISO质量认证一样,测试同样也需要质量的保证,这个时候就需要在团队中开展软件测试的工作。在测试的过程发现软件中存在的问题,及时让开发人员得知并修改问题,在即将发布时,从测试报告中得出软件的质量情况。

2、您所熟悉的软件测试类型都有哪些?

测试类型有:功能测试,性能测试,界面测试。

功能测试在测试工作中占的比例最大,功能测试也叫黑盒测试。

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。

界面测试,界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。

3、您认为做好测试用例设计工作的关键是什么?

白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果黑盒用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题

软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:

1、是否有不正确或遗漏的功能?

2、在接口上,输入是否能正确的接受?能否输出正确的结果?

3、是否有数据结构错误或外部信息(例如数据文件)访问错误?

4、性能上是否能够满足要求?

5、是否有初始化或终止性错误?

软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:

1、对程序模块的所有独立的执行路径至少测试一遍。

2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。

3、在循环的边界和运行的界限内执行循环体。

4、测试内部数据结构的有效性,等等。4、验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。验收测试是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能和性能如同用户所合理期待的那样。

39评论

他是艳阳谁是月光

一. 简答题:1.软件工程的定义 P4答:软件工程师一门工程学科,涉及软件生成的各个方面,从最初的系统描述一直到使用后的系统维护,都属于其学科范畴。2.软件工程所面临的主要问题 P3表格答:多样性的挑战:必须开发出新技术,制作可靠的软件,从而足以灵活应对这种多样性。交付上的挑战:在不损及系统质量的前提下,缩短大型、复杂系统的移交时间。信任的挑战:研究能说明软件可信的技术。3.社会技术系统定义及主要特征 P12-13答:定义:一个包含有人、软件和硬件在内的系统。特征:它们都有其整体特性他们通常是不确定的系统支持机构目标的程度和范围不仅仅依赖于系统本身4.瀑布模型的概念及其包含阶段 P39-40答:概念:这个模型采用一些基本的过程活动,即描述、开发、有效性验证和进化,并且使用单独的过程阶段(如需求描述、软件设计、实现和测试等阶段)表现这些活动包含阶段:需求分析和定义、系统和软件设计、实现和单元测试、集成和系统测试、运行和维护5.增量式开发的概念 P43答:增量式开发是一种集中了这些模型的优点的体重综合方法。每一步增量实现了一个或多个最终用户功能。每一步增量包含所有早期的已开发的功能集加上一些新的功能;系统在逐步累积的增量中增长。就是一步一步渐增式的开发。6.软件工程的四个基本过程活动P38答:软件描述、软件设计和实现、软件有效性验证、软件进化7.介绍软件工程的功能需求,非功能需求和领域需求 P73答:功能需求:包括对系统应该提供的服务、如何对输入作出反应以及系统在特定条件下的行为的描述。在某些情况下,功能需求可能还需明确声明系统不应该做什么。 非功能需求:对系统提供的服务或功能给出的约束。包括时间约束、开发过程的约束、标准等。非功能需求常用于整个系统。通常不用在单个系统或服务中。 领域需求:这是来自系统的应用领域的需求,反应了该领域的特点。他们也可能是功能需求或非公能需求。8.客户机服务器模型及优缺点 P152-153答:客户机服务器体系结构的模型是一个分布式系统模型,系统由一组服务及相关的服务器组成,客户机访问并使用这些服务。优点:它是一个分布式体系结构。由许多分布式处理器构成网络系统可提供更有效的使用。添加一台服务器或更新服务器很容易而且是透明的,不会影响系统的其他部分。缺点:在系统中集成一台服务器需要改变现存的客户机和服务器以便获得性能提升。要为每个服务器建立专门的数据模型以便优化其性能。9.分层模型及优缺点 P153-154答:把系统组织成一系列的层次,每一层提供一组服务。每一层定义一个抽象机,每个抽象机是由其下层的源机的代码构成的。优点:支持系统的增量式开发。抽象机转换到其他机器上实现比较容易。缺点:顶层上的用户服务可能会需要穿过其相邻层来获取由更低层所提供的服务。性能也是一个问题。10.数据处理系统及特点 P181答:系统是以数据为中心的,它们的数据库要比系统本身大很多个数量级。特点:是批处理系统,数据的输入和输出时成批地从文件或数据库中取出,也是成批地存入文件或数据库中的,而不是对用户终端进行输入和输出。11.编译器一般体系结构中包含的组件 P188-189答:词法分析器、符号表、语法分析器、语法树、语义分析器、代码生成器。12.面向对象设计中,并发对象的实现方式和工作方式 P194-195答:实现方式与工作方式:服务器 对象被实现为一个并行进程,它的方法对应为定义的对象操作。在收到外部时间后方法被启动,方法的执行与其他对象上的方法是并行的。当对象完成了自身的操作时,对象中止,等待进一步的服务请求。主动对象 对象状态的改变可以来自对象内部操作的执行。代表对象的进程不停地执行这些操作,从不挂起。13.用户界面设计过程中的核心活动 P230答:用户分析:理解用户所做的任务、工作环境、使用的其他系统、如何在工作中与他人交互等。系统原型开发:开发原型系统并展示给用户看,让他们指导界面的进化。界面评估:一个更正式的评估活动,在评估中收集有关用户对界面的真实体验信息。14.极限编程适合敏捷方法原则 P244答:(1)增量式开发时通过系统的小的频繁发布的版本来支持的,其间所采用的需求描述方法是基于客户情节或脚本的,这样的客户情节或脚本可以成为过程规划的根据。(2)客户的参与是通过全时雇佣到开发团队的方式。客户代表参与开发并负责定义系统的接受测试。(3)人是通过结对编程、集体对系统代码所有权、可以忍受的开发过程而无需超频的工作小时来运作的。(4)变更是通过经常性的系统版本、测试优先的开发以及连续的集成来支持的。通过持续的再分解来改善代码质量并使用不预期系统将来的变更的简单设计,来支持简洁性的维护。15.极限编程测试的关键特性 P246答: XP当中的测试的关键特性:(1)测试优先的开发。(2)来自脚本的增量式测试开发。(3)用户参与到测试开发和有效性验证中。(4)自动测试系统的使用。16.软件原型在软件开发过程中的使用方式答:(1)在需求工程过程中,原型可以帮助导出系统需求并验证系统需求的有效性。 (2)在系统设计阶段,原型可以用来探索特殊的软件解决方案和支持用户界面设计。 (3)在测试阶段,原型可以用来对准备移交给客户的系统运行背对背的测试。17.在规划软件复用时需要考虑的相关约束答:软件开发进度表 所预计的软件生命期开发团队的背景,技术和经验软件的危险程度和它的非功能性需求应用领域系统运行平台18.在集成商业限制系统中面临的问题答:对功能和性能缺乏控制商业现成系统间的互操作问题无法控制系统的进化COTS产品厂商的支持19.组件与对象之间有什么区别答:组件是可部署的实体组件不定义类型组件实现是不透明的组件是独立于语言的组件是标准化的20.基于组件的软件开发过程与传统的软件开发过程有什么不同答:(1)最初对用户需求的开发只需要是概要性的而不用十分详细,且鼓励信息持有者在定义他们的需求时尽可能地灵活。 (2)在过程的早期阶段根据可利用的组件来细化和修改需求。 (3)在系统体系结构设计完成后,会有一个进一步的组件搜索及设计精炼的活动。 (4)开发就是将已发现的组件集成在一起的组成过程。21.列举软件维护费用高的原因答:团队稳定性,合同责任人员技术水平 程序年龄和结构22.对软件可维护性评估有用的过程度量包括哪些答:纠正性维护请求的数目影响分析所需的平均时间实现一个变更请求的平均时间突出的变更请求的数目23.系统再工程过程中的行为有哪些答:源代码转换 反向工程 程序结构改善 程序模块化 数据再工程

38评论

岛是海洋的一块伤疤

第一题:我认为需要在测试前需要先写好测试计划,其中最重要的是本次测试使用的测试方法、使用的测试工具、测试环境。人员方面需要进行人员及进度的安排,每个测试阶段后的输出工件,还要有风险评估。在测试前将这些准备工作做到位,这样在测试的时候就会比较有条理。 第二题:控制测试质量,我认为最好是做好测试用例的设计,这样可以对测试的覆盖率进行控制。补充:如果时间充裕的话可以在设计用例后对其进行评审,这样可以提高测试质量。不过这个在实际的工作当中一般实现不了。。。。 下面列出的是网上的一个软测笔试题,好多单位在笔试的时候都会copy下来作为笔试题,我至少遇到两次了,其他的笔试题还有,但不一一列出了。 一、判断题(每题1分,12 分,正确的√,错误的╳) 1.软件测试的目的是尽可能多的找出软件的缺陷。() 2.Beta 测试是验收测试的一种。() 3.验收测试是由最终用户来实施的。() 4.项目立项前测试人员不需要提交任何工件。() 5.单元测试能发现约80%的软件缺陷。() 6.代码评审是检查源代码是否达到模块设计的要求。() 7.自底向上集成需要测试员编写驱动程序。() 8.负载测试是验证要检验的系统的能力最高能达到什么程度。() 9.测试人员要坚持原则,缺陷未修复完坚决不予通过。() 10.代码评审员一般由测试员担任。() 1 11.我们可以人为的使得软件不存在配置问题。() 12.集成测试计划在需求分析阶段末提交。() 二、不定项选择题(每题2 分,10分) 1.软件验收测试的合格通过准则是:() A. 软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。 B. 所有测试项没有残余一级、二级和三级错误。 C. 立项审批表、需求分析文档、设计文档和编码实现一致。 D. 验收测试工件齐全。 2.软件测试计划评审会需要哪些人员参加?() A.项目经理 B.SQA 负责人 C.配置负责人 D.测试组 3.下列关于alpha 测试的描述中正确的是:() A.alpha 测试需要用户代表参加 B.alpha 测试不需要用户代表参加 C.alpha 测试是系统测试的一种 D.alpha 测试是验收测试的一种 4.测试设计员的职责有:() A.制定测试计划 B.设计测试用例 C.设计测试过程、脚本 D.评估测试活动 5.软件实施活动的进入准则是:() A.需求工件已经被基线化 B.详细设计工件已经被基线化 C.构架工件已经被基线化 D.项目阶段成果已经被基线化 三、填空题(每空1分,24 分) 1.软件验收测试包括(正式验收测试)、(非正式验收测试和Alpha测试)、(Beta测试)三种类型。 2.系统测试的策略有功能测试、(性能测试)、(负载测试)、(压力测试)、易用性测试、(容量测试)、(强度测试)、 (兼容性测试又称)、(本地化测试)、(BVT测试)、(裸机测试)、(安全性测试)、()、(容错性测试)、(恢复测试)、()等15 种方法。 3.设计系统测试计划需要参考的项目文档有(需求规格说明书)、()和迭代计划。 4.对面向过程的系统采用的集成策略有()、()两种。 5.通过画因果图来写测试用例的步骤为、、、及把因果图转 换为状态图共五个步骤。 四、简答题(共37分) 1. 阶段评审与同行评审的区别。(4 分) 2 . 什么是软件测试。(3 分) 答:通过人工或自动化手段对系统进行测试,目的是为了验证系统是否满足预定功能或者是为了弄清楚实际结果与预期结果之间的差别。 3 . 简述集成测试的过程。(5 分) 答:将通过单元测试的单元模块按照设计要求组合起来再进行测试。重点检查程序接口处是否有问题。 过程:首先进行集成测试的测试计划

63评论

巴黎街东京雨

C语言笔试题(1) 第1题:完成文件的拷贝,srcFileName为源文件名,dstFileName 为目标文件名。 int copy_file(const char *srcFileName, const char *dstFileName); 第2题:设有文件, 请写出程序在文件的开头插入 字符串 “ file start: ”; 第3题: 已知 union un { short s; char a[3]; }; 求sizeof(union un)? 第4题: 请描述以下代码中的p, char(*(*p())[])(int, void (*)()) 第5题: 已知 union un { short s; char a[3]; }; 求sizeof(union un)? C语言笔试题(2) 第1题:已知 char a[] = “abcefg”, 求sizeof(a) 和 strlen(a); 第2题:1, 写程序完成M进制转N进制,M、N为1~10之间。 mton(const char* mNum, int m, char *nNum, int n); 第3题:完成16进制字符串相加,返回相加后的16进制字符串。 char* sum_str16(const char* str1, const char* str2); 第4题:完成strlen函数,要求除参数外,不能使用变量和库函数。 第5题:用链表完成结点的添加、删除操作。 typedef struct student { int studentNum, struct student *next; }STU; C语言笔试题(3) 第1题:两个字符串,s,t;把t字符串插入到s字符串中,s字符串有足够的空间存放t字符串 第2题:printf (“%d%dn”,++n, power(2,n)); 其中power(2,n)为实现一定功能的函数 如 2^n 。请问这种表示方法有什么潜在的问题? 第3题:printf (s); 请问这样的语句有没有问题?(s为一指向有效字符串的指针) 第4题:两段代码共存于一个文件,编译时有选择的编译其中的一部分,请问如何实现? 第5题:数据结构指针传给函数,函数能访问数据单元,但不能修改实际的内容,如何实现? C语言笔试题(4) 第1题:两个字符串,s,t;把t字符串插入到s字符串中,s字符串有足够的空间存放t字符串 第2题:char *a = “hello”; char *b = “hello”; if(a= =b) printf(“YES”); else printf(“NO”); 第3题:简述stack frame 的含义 第4题:printf (“%d%dn”,++n, power(2,n)); 其中power(2,n)为实现一定功能的函数 如 2^n 。请问这种表示方法有什么潜在的问题? 第5题:printf (s); 请问这样的语句有没有问题?(s为一指向有效字符串的指针) C语言笔试题(5) 第1题:在头文件中定义静态变量,可能产生什么问题? 第2题:malloc()与 calloc()的区别? 第3题:寄存器变量可不可以访问其地址?可否是全局变量?在什么场合使用寄存器变量? 第4题:“n” ‘n’ 的区别? 第5题:#include “” int main() { int a; int *p; p = &a; *p = 0×500; a = (int )(*(&p)); a = (int )(&(*p)); if(a == (int)p) printf(“equal !n”); else printf(“not equal !n”); } 请问本程序的输出显示是什么?

29评论

相关问答