软件测试工程师面试宝典.doc

上传人:jian****018 文档编号:10211689 上传时间:2020-04-10 格式:DOC 页数:60 大小:540.94KB
返回 下载 相关 举报
软件测试工程师面试宝典.doc_第1页
第1页 / 共60页
软件测试工程师面试宝典.doc_第2页
第2页 / 共60页
软件测试工程师面试宝典.doc_第3页
第3页 / 共60页
点击查看更多>>
资源描述
软件测试工程师面试宝典软件测试工程师必备素质计算机专业技能基本常识l 计算机基础知识l 软件测试基本知识软件质量,软件质量管理基础知识,软件测试概念,软件测试标准,软件测试项目管理,测试流程管理、缺陷管理、软件测试技术及方法,自动化测试概念、框架、流程,自动化测试技术等知识。好多人觉得自动化测试就是使用自动化测试工具,其实各种工具只是自动化测试实施的一个有效利器,如何建立一个脱离工具的自动化测试框架远远比研究如何使用测试工具复杂,困难的多。l 软件开发基本知识(软件工程知识,理解软件开发方法及过程)编程能力C/C+,VB,VC,Java,.net,ASP,Javascript等。具体要求要视公司的具体项目或产品来定。但一般以C为基本要求。具备一定的算法设计能力,测试工程师至少应该掌握Java、C#、C+之类的一门语言以及相应的开发工具。数据库知识SQL Server,Oracle,Mysql,Sybase等。一般对测试人员的要求就是要求会使用,然后熟练使用SQL语句进行查询,修改,添加,删除数据操作。数据库知识则是更应该掌握技能,现在的应用系统几乎离不开数据库。因此不但要掌握基本的安装、配置,还要掌握SQL。测试人员至少应该掌握Mysql、MS Sqlserver、Oracle等常见数据库的使用。操作系统Windows,Linux(常用的RedHat,SUSE,Debian)/Unix(FreeBSD,Solaris,HP-UX,AIX,Mac)系统。操作系统和中间件方面,应该掌握基本的使用以及安装、配置等。例如很多应用系统都是基于Unix、linux来运行的,这就要求测试人员掌握基本的操作命令以及相关的工具软件。而WebLogic、Websphere等中间件的安装、配置很多时候也需要掌握一些。 网络知识在网络方面,测试人员应该掌握基本的网络协议以及网络工作原理,尤其要掌握一些网络环境的配置,这些都是测试工作中经常遇到的知识。 自动化测试工具功能测试工具:Quick Test Pro, Win Runner, Robot, QARun 性能测试工具:LoadRunner, Robot, QALoad, WebLoad, Was 白盒测试工具:Purify, DevParter, Logiscope, C+Test, JTest 测试管理工具:Test Director, Test Manager, QACenter, Test View Manager缺陷管理工具:ClearQuest, TrackRecord, Bugzilla实战能力(工作经验)u 公司的测试流程u 公司的具体缺陷管理流程(提交bug报告,追踪bug状态)u 测试环境的搭建及管理u 测试计划,测试用例,测试报告等相关文档的编写外语u 英语u 日语行业知识行业主要指测试人员所在企业涉及的行业领域,例如很多IT企业从事石油、电信、银行、电子政务、电子商务等行业领域的产品开发。行业知识即业务知识,是测试人员做好测试工作的又一个前提条件,只有深入地了解了产品的业务流程,才可以判断出开发人员实现的产品功能是否正确。 很多时候,软件运行起来没有异常,但是功能不一定正确。只有掌握了相关的行业知识,才可以判断出用户的业务需求是否得到了实现。 行业知识与工作经验有一定关系,通过时间即可以完成积累。60软件测试基本理论知识试题汇总一、判断题 1软件测试的目的是尽可能多的找出软件的缺陷。( )2Beta 测试是验收测试的一种。( )3验收测试是由最终用户来实施的。( )4项目立项前测试人员不需要提交任何工件。( )5单元测试能发现约80%的软件缺陷。( )6代码评审是检查源代码是否达到模块设计的要求。( )7自底向上集成需要测试员编写驱动程序。( )8负载测试是验证要检验的系统的能力最高能达到什么程度。( )9测试人员要坚持原则,缺陷未修复完坚决不予通过。( )10代码评审员一般由测试员担任。( )11我们可以人为的使得软件不存在配置问题。( )12集成测试计划在需求分析阶段末提交。( )13、好的测试员不懈追求完美。( ) 14、测试程序仅仅按预期方式运行就行了。( ) 15、不存在质量很高但可靠性很差的产品。( ) 16、软件测试员可以对产品说明书进行白盒测试。() 17、静态白盒测试可以找出遗漏之处和问题。( ) 18、总是首先设计白盒测试用例。( ) 19、可以发布具有配置缺陷的软件产品。( ) 20、所有软件必须进行某种程度的兼容性测试。( ) 21、所有软件都有一个用户界面,因此必须测试易用性。( ) 22、测试组负责软件质量。( )参考答案1、Y软件测试的目的就是为了发现软件中的缺陷,从这个意义上面说上面的这个论断是正确的。不少人会认为软件测试可以保证软件的质量,其实这个观点是错误,测试只是软件质量控制中的一个角色,其活动并不能达成软件质量保证的效果。所以不要认为一个公司里面如果有了软件测试人员,产品的质量就会好起来。2、YBeat测试和验收测试是两种不同的测试。验收测试的目的是为了以发现”未实现的需求”为目的,以评估”适合使用”为目标,该类测试的不是以发现缺陷为主要目的。beta测试是一模拟真实的使用环境从而发现缺陷的一种测试。所以两者之间的是非包容关系。3、N上面说到了验收测试的目的和目标,所以验收测试也可是是软件生产的企业内部人员来实施。例如产品经理。当软件以项目的形式出现,那么验收测试由最终用户来实施的情况是比较长见的。但是对于产品形式的软件,生产企业内部的验收测试会更多。4 N 应该说这道题目没有明确的答案,在项目立项前测试人员是不是要把一些准备工作以工件的形式给记录下来是完全取决于该企业的软件开发过程的要求。同时不同企业,立项前要达成的一些必要条件也是大相径庭的。应该说这一题目出的不是很好,如果你是出题人这家企业的测试工程师,那么就应该有一个明确的答案。5 N 同样这一题目也没有标准答案。因为该数据的来源和其统计的方法,样本都没有一个工业标准。这样出来的数据同样不具有权威性。这里我可以说一个简单的例子,在用ASP,php这类脚本语言开发网页的时候是根本没有复杂的单元测试。那么这样的数字应用在网站开发上面是否有意义,还是值得商榷的。所以这道题目出的不好,没有明确的答案6 N 代码审查是一种静态技术,从这个意义上说代码复查是需要和其他的一些动态测试技术配合才能检查代码是否符合设计的要求7 Y 这道题目大家看下top-down 和 down-top的集成测试示意图就能得出明确的答案。这里需要了解的是什么是驱动测试程序,什么是桩程序。如果集成组件数量众多,多关系层次,那么不论是什么类型的集成测试。驱动程序和桩程序都是需要开发的。8 N 关于负载测试和压力测试在论坛中的帖子中有详细的解释,大家可以去看一下就能得出正确的答案9 N 同样,这一题没有正确的答案。缺陷是否修复是需要听取测试人员的意见,但测试人员的意见非决定性。所以还是要看一个企业赋予测试人员有多大的权力。10 N 如果测试员有这个水平,那么当然是可以参加的。不过大多数的企业不会让普通的测试人员参与代码的评审。11 N 首先大家先搞清楚什么是配置管理什么是软件配置,从这道题目中看不出出题人想问的是关键工程中的配置管理还是单纯的软件配置。但是可以肯定的是不论是何种情况,答案均是否定的。 12 N 集成测试计划在开发人员完成软件集成计划之后就可以开始进行了。所以在需求分析阶段之后提交是不现实的事情,应该在软件的设计阶段后,编码前。13、 N 14、 N 15、 N 软件可靠性是软件系统在规定的时间内及规定的环境条件下,完成规定功能的能力软件质量就是“软件与明确地和隐含地定义的需求相一致的程度”。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的隐含特征的程度。16、 N 17、Y 18、 N 19、 Y 20、 Y 21、 Y22、 N 软件测试是保障软件质量的手段之一,但不是唯一手段,软件测试是软件产品质量高的必要非充分条件。二、不定项选择题1软件验收测试的合格通过准则是:( )A 软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。B 所有测试项没有残余一级、二级和三级错误。C 立项审批表、需求分析文档、设计文档和编码实现一致。D 验收测试工件齐全。2软件测试计划评审会需要哪些人员参加?( ) A项目经理BSQA 负责人C配置负责人D测试组3下列关于alpha 测试的描述中正确的是:( )Aalpha 测试需要用户代表参加Balpha 测试不需要用户代表参加Calpha 测试是系统测试的一种Dalpha 测试是验收测试的一种4测试设计员的职责有:( )A制定测试计划B设计测试用例C设计测试过程、脚本D评估测试活动5软件实施活动的进入准则是:( )A需求工件已经被基线化B详细设计工件已经被基线化C构架工件已经被基线化D项目阶段成果已经被基线化6.下面哪些属于动态分析( ) A 代码覆盖率 B 模块功能检查 C 系统压力测试 D 程序数据流分析 7.下面哪些属于静态分析( ) A、 代码规则检查 B、 序结构分析 C、 序复杂度分析 D、 内存泄漏 8 从测试技术角度,正确的选择是( ),给出各自的含义? A、 静态测试 B、 黑盒测试 C、 动态测试 D、 白盒测试 9 从测试阶段角度,测试正确的顺序是( ),同时给出所选择的正确策略含义和被测对象是什么? A、 单元测试 B、 集成测试 C、 系统测试 D、 确认测试 10、 下面角色不属于集成计划评审的是( ) A、 配置经理 B、 项目经理 C、 测试员 D、 编码员 11、软件测试设计活动主要有( ) A、 工作量分析 B、 确定并说明测试用例 C、 确立并结构化测试过程 D、 复审并评估测试覆盖 12、不属于集成测试步骤的是( )A、 制定集成计划 B、 执行集成测试 C、 记录集成测试结果 D、 回归测试 13、属于软件测试活动的输入工件的是( ) A、 软件工作版本 B、 可测试性报告 C、 软件需求工件 D、 软件项目计划参考答案1、ABCD回答这道题,你必须是这家企业的员工。前面说到了验收测试的目的和目标,一个是需求必须实现,二是证明软件是适合使用的。这样能满足这两个通用标准就可以了。当然有些软件企业会对验收测试标准做一些调整。2、ABCD 上面的4种角色都需要参与 3、AD 首先大家需要知道alpha测试是系统级别的测试,该测试是在一个受控的环境中进行的。用户需要直接参与进来。所以答案应该是AD 4、BC合理的答案的是BC,同时要看软件企业对该类人员的职责是如何定义。5、ABC先要了解一下什么是基线。这个是软件配置管理中一个重要的概念。工作产品必须纳入到一定的基线里面。所以选择ABC是必定的,至于是否选择D要看这家企业自身的标准了。6、BC 7、 ABC 8、CD 9、ABCD 10、A 11、ABCD 12、D 13、C三、填空题1、 软件实施活动的输出工件有_ 、_ 、_ 、_ 。 2、 代码评审主要做_工作。 3、 软件实施活动中集成员的职责是_。 4、 验证与确认软件实施活动主要有_、代码评审_、_ 、_ 、_ 、SQA 验证。 5、_表明测试已经结束。 6、 软件测试的目的是 _。 7、 软件测试主要分为_、_、_、_四类测试。 8、 软件测试活动有_、_、_ 、_ 、_ 、_ 、_、_八个步骤。 9、 软件测试活动的输出工件有_、_、_、_ 、_。 10、软件测试角色有_、_ 、_ 、_。 11软件验收测试包括_、_、_三种类型。12系统测试的策略有_、_、_、_、_、_、_、_、_、_、_、_、_、_、_等15 种方法。 13设计系统测试计划需要参考的项目文档有_、_、和_。 14对面向过程的系统采用的集成策略有_,_两种。 15通过画因果图来写测试用例的步骤为及把因果图转换为状态图共五个步骤。 参考答案 1、 无 2、关于代码和详细设计相一致、在编码阶段没有引入新的错误等方面的保证 3、无 4、验证与确认软件实施活动主要有需求规格说明验证 、软件测试团队组织管理 、设计规格说明验证 、代码验证 、软件测试计划管理 、交付验证 、SQA 验证。5、测试需求中列出的所有功能及测试过程中发现缺陷的回归测试均已完成表明测试已经结束。 6、 软件测试的目的是 尽可能多的找出软件的缺陷。7、 软件测试主要分为单元测试、集成测试、系统测试、验收测试四类测试。 8、 软件测试活动有制定测试计划、方案、设计和生成测试用例 、准备测试数据 、执行测试管理缺陷 、生成测试报告 、测试评估、测试结束八个步骤。 9、 软件测试活动的输出工件有测试计划、测试方案、测试用例、测试报告 、缺陷报告 。 测试计划-输出测试计划测试设计-输出测试方案测试实现-输出测试用例、测试规程、测试脚本测试执行-输出测试报告测试日志缺陷报告那实施活动的输出工件是不是有需求规格说明书、用户手册、开发总结、测试总结呢?10、软件测试角色有测试管理人员、测试方案工程师 、测试工程师 、测试员 。 11、软件验收测试包括正式验收测试、alpha测试、beta测试三种测试。 12系统测试的策略有功能测试、性能测试、文档测试、配置测试、安装和卸载的测试、用户界面测试、可用性测试、兼容性测试、易用性测试、安全测试、压力测试、负载测试、回归测试、比较测试、故障恢复测试等15 种方法。13设计系统测试计划需要参考的项目文档有软件测试计划、软件需求工件、和迭代计划。 14对面向过程的系统采用的集成策略有自顶向下,自底向上两种。 15通过画因果图来写测试用例的步骤为及把因果图转换为状态图共五个步骤。 分析软件规格说明描述中的原因和结果,并为每个原因和结果赋予一个标识符。根据因果关系画因果图在因果图上用一些记号标明约束或限制条件把因果图转换成判定表根据判定表设计测试用例利用因果图生成测试用例的基本步骤是: 分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。 分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系? 根据这些关系,画出因果图。 由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。 把因果图转换成判定表。 把判定表的每一列拿出来作为依据,设计测试用例四、名词解释软件工程、黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试、测试、测试、 驱动模块、桩模块、静态测试、 回归测试、动态测试、等价划分法、边界值分析法软件工程:概括的说,软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效的维护它,这就是软件工程。软件测试: 标准定义:使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。最终目的是令客户满意。 针对测试人员的定义:以发现错误为目的,努力发现产品中每个可以想象到的故障或弱点的过程。 综合定义:软件测试是贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程, 其目的是尽快尽早地发现在软件产品中所存在的各种问题与用户需求、预先定义的不一致性。黑盒测试(black-box testing):在知道产品应该具有的功能的条件下,检验每个功能是否都能正常使用的测试方法。 又称功能测试,指的是把被测的软件看作是一个黑盒子,完全不考虑程序的内部结构和处理过程,只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接受输入数据产生正确的输出信息,并且保持外部信息的完整性。黑盒测试是在程序接口进行的测试。白盒测试(white-box testing):在知道产产品内部工作过程的条件下,检验产品内部动作是否按照规格说明书的规定正常进行的测试方法。又称结构测试,指的是把程序看成装载一个透明的白盒子里面,也就是完全了解程序的结构和处理过程。按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。单元测试(unit-testing): 指对软件中的最小可测试单元进行检查和验证。集成测试(integration testing):指将通过测试的单元模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部分。系统测试(system-testing): 指的是将整个软件系统看作一个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行测试。验收测试(acceptance testing):又称确认测试,指的是在系统测试的后期,以用户测试为主,或有测试人员等质量保障人员共同参与的测试。它的目标是验证软件的有效性。(Alpha)测试: 测试由用户在开发者的场所进行,并且在开发者对用户的“指导”下进行的测试。开发者负责记录错误和使用中遇到的问题。 测试指的是由用户、测试人员、开发人员等共同参与的内部测试。(Beta)测试: 测试由软件的最终用户在一个或多个客户场所进行。开发者通常不在现场,因此测试是软件在开发者不能控制的环境中的“真实”应用。 测试指的是内测后的公测,即完全交给最终用户测试。驱动模块(driver):模拟被测模块的上级模块,驱动模块用来接收测试数据,启动被测试模块并输出结果。桩模块(stub): 是指模拟被测模块所调用的模块。静态测试(static testing):是指不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误的过程。动态测试(dynamic testing):是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。所以我们判断一个测试属于静态测试还是动态测试,唯一的标准就是看是否运行程序。回归测试(regression testing): 是指对软件的新的版本测试时,重复执行上一个版本测试时的用例。等价划分法(Equivalence Class Testing): 等价类划分法是一种黑盒测试技术,它不考虑程序的内部结构,只是根据软件的需求说明来对输入的范围进行细分,然后再从分出的每一个区域内选取一个有代表性的测试数据。边界值分析法(Boundary Value Testing):边界值分析方法是对等价类划分方法的补充。长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误。五、简答题 请根据您以往的学习和工作经历,结合您的个人经验回答以下问题。您可以尽可能详细和完整的表达出自己的思想,如果书写空间不够,您可以将答案写在题目所在页的背面。如果需要稿纸请同接待人员联系。1、试述软件的概念和特点?软件复用的含义?构件包括哪些? 软件的概念:软件是程序、数据结构和相关文档的集合,用于实现所需要的逻辑方法、过程或控制。软件是把知识与技术紧密结合的智力成果,是在研制、开发中被创造出来的一种信息产品。 软件的特点:抽象性软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。不会磨损在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题,但软件维护比硬件维护要负责的多。软件开发工作最大、开发效率低、成本高,但复制容易、成本极低。对计算机系统的依赖性软件具有无形性,可以多次使用,但商业寿命较短。 软件复用(SoftWare Reuse): 软件复用是将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费,提高软件生产力和质量的一种重要技术。 构件:构件是系统中实际存在的可更换部分,它实现特定的功能,符合一套接口标准并实现一组接口。构件代表系统中的一部分物理实施,包括软件代码(源代码、二进制代码或可执行代码)或其等价物(如脚本或命令文件)。2、瀑布模型和螺旋模型的主要区别是什么?(1)瀑布模型强调的保证软件的质量,忽略人力,时间,资源等成本因素,以质量为第一目标,每次需求发生变更都要从头再来,适合于一些大型稳定的项目。 螺旋模型是一种增量迭代开发的模型,每一次循环都是一次版本的升级,可提高软件的适应能力。比较适合于前期需求不稳定,后期需求新增变更较多的项目。(2)瀑布模型是基于质量的, 是由文档驱动的。螺旋模型是风险驱动的,更需要经验丰富的风险评估知识和水平。3、软件开发模型和软件生命周期的概念是什么?两者有何区别? 软件生命周期是软件从提出开发开始到最终灭亡所经历的时期。大体上分为软件定义、软件开发和软件维护三个阶段。软件开发模型是软件开发全过程、软件开发活动以及它们之间关系的的结构框架。其作用是为软件项目的管理提供里程碑和进度表,为软件开发提供原则和方法。软件开发模型主要有:以软件需求可完全确定为前提的瀑布模型在软件开发初期只能提供基本需求所采用的渐进式开发模型。如原型模型、螺旋模型 以形式化开发方法为基础的变换模型。4、净室软件工程的策略是什么?净室软件工程是一种在软件开发过程中强调建立正确性的需要的方法,通过在第一次正确地书写代码增量并在测试前验证它们的正确性,从而避免依赖于成本很高的错误消除过程。 净室软件工程可用如下三个关键策略来刻画:置于统计过程控制之下的增量开发,基于函数的规范、设计和验证以及统计测试和软件认证。采用这些策略可改进技术生产过程,可以降低软件开发中的风险,以合理的成本开发出高质量的软件。5、什么是数据的对立性?有几个层次?数据独立性是指:应用程序和数据库的数据结构之间相互独立,不受影响。分为物理独立性和逻辑独立性两个层次。(1) 物理数据独立性:如果数据库的内模式要进行修改,即数据库的存储设备和存储方法有所变化,那么模式/内模式映象也要进行相应的修改,使概念模式尽可能保持不变。也就是对内模式的修改尽量不影响概念模式。(2) 逻辑数据独立性:如果数据库的概念模式要进行修改,如增加记录类型或增加数据项,那么外模式/模式映象也要进行相应的修改,使外模式尽可能保持不变。也就是概念模式的修改尽量不影响外模式和应用程序。6、网状、层次数据模型与关系数据模型的最大的区别是什么? 网状、层次数据模型与关系数据模型的最大区别在于表示和实现实体之间的联系的方法:网状、层次数据模型是通过指针链,而关系数据模型是使用二维表。7、dbms读取一条记录时发生哪些事件?8、什么是软件质量?软件包是什么?概括地说,软件质量就是“软件与明确地和隐含地定义的需求相一致的程度”。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的隐含特征的程度。软件包(SoftWare Package)是指具有特定的功能,用来完成特定任务的一个程序或一组程序。软件包由一个基本配置和若干可选部件构成,既可以是源代码形式,也可以是目标码形式。用户手册和指南等文档是软件包的重要组成部分。9、软件产品质量特性是什么? 确保软件质量优良程度的内部因素称为软件质量特性。比较权威的软件质量特性划分应推Boehm提出的十二个基本质量特性。分别为:设备无关性、完整性、精度、一致性、设备效率、可访问性、可通讯性、结构性、自说明性、简明性、易读性、可扩充性。10、什么是软件质量保证? 其主要任务是什么? 软件质量保证:为确保软件开发过程和结果符合预期要求而建立的一系列规程,以及依照规程和计划采取的一系列活动及其结果评价。 主要任务:(1)用户要求定义(2)力争不重复劳动(3)掌握开发新软件的方法(4)组织外部力量协作(5)排除无效劳动(6)发挥每个开发者的能力(7)提高软件开发的工程能力(8)提高计划和管理质量 为了提高软件的质量和软件的生产率,软件质量保证的主要任务大致可归结为8点。 (1)用户要求定义:软件质量保证人员必须熟练掌握正确定义用户要求的技术,包括熟练使用和指导他人使用定义软件需求的支持工具。必须十分重视领导全体开发人员收集和积累有关用户业务领域的各种业务的资料和技术技能。 (2)力争不重复劳动:利用已有软件成果是提高软件质量和软件生产率的重要途径。为此,不要只考虑如何开发新软件,而首先应考虑哪些既有软件可以复用,并在开发过程中,随时考虑所生产软件的复用性。 (3)掌握开发新软件的方法:对开发新软件的方法已经过长期的探索和积累,最普遍公认的成功方法就是软件工程学方法。标准化、设计方法论、工具化等都属此列。应当在开发新软件的过程中大力使用和推行软件工程学中所介绍的开发方法和工具。 (4)组织外部力量协作:一个软件自始至终由同一软件开发单位来开发也许是最理想的。但在现实中常常难以做到。因此需要改善对外部协作部门的开发管理。必须明确规定进度管理、质量管理、交接检查、维护体制等各方面的要求,建立跟踪检查的体制。 (5)排除无效劳动:最大的无效劳动是因需求规格说明有误、设计有误而造成的返工。定量记录返工工作量,收集和分析返工劳动花费的数据非常重要。另一种较大的无效劳动是重复劳动,即相似的软件在几个地方同时开发。这多是因软件开发计划不当,或者开发信息不流畅造成的。为此,要建立互相交流、信息往来通畅、具横向交流特征的信息流通网。 (6)发挥每个开发者的能力:软件生产是人的智能生产活动,它依赖于人的能力和开发组织团队的能力。开发者必须有学习各专业业务知识、生产技术和管理技术的能动性。管理者或产品服务者要制定技术培训计划、技术水平标准,以及适用于将来需要的中长期技术培训计划。 (7)提高软件开发的工程能力:要想生产出高质量的软件产品必须有高水平的软件工程能力。即在软件开发环境或软件工具箱的支持下,运用先进的开发技术、工具和管理方法开发软件的能力。 (8)提高计划和管理质量:对于大型软件项目来说,提高工程项目管理能力极其重要。提高管理能力的方法是重视和强化项目开发初期计划阶段的项目计划评价,计划执行过程中及计划完成报告的评价。将评价、评审工作在工程实施之前就列入整个开发工程的工程计划之中。正确地评价开发计划和实施结果,不仅可以提高软件开发项目管理的精确度,还可以积累项目管理经验资料,提高日后进行项目预算的精确度。所以对“计划”的质量管理非常重要。11、软件质量保证体系是什么? 国家标准中与质量保证管理相关的几个标准是什么? 他们的编号和全称是什么?软件质量保证体系为满足质量要求和实施质量管理,进行全部有计划和有系统的活动所需的组织结构、程序、过程和资源的总称。GBT 19001质量体系设计开发、生产、安装和服务的质量保证模式(idtISO 9001)GBT 19002质量体系生产和安装的质量保证模式(idt ISO 9002)GBT 19003质量体系最终检验和试验的质量保证模式(idt ISO 9003)GBT 19004质量管理和质量体系要素指南(idt ISO 9004)12、为什么要进行软件测试?软件测试的目的是什么? 为什么进行单元测试? 任何软件在开发过程中都会留下缺陷,带有缺陷的软件产品如果提交出去,可能会给公司带来不可估量的损失,我们必须在客户之前发现尽可能多的问题,从而保障客户满意。测试阶段的根本目标是尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。单元测试一般来说非常必要:(1)现在强调测试的尽早介入。相对而言,单元测试会在开发比较早的阶段就会进行,发现和修改缺陷的成本比较低,效率比较高。(2)代码级的很多问题,通过相对后期的系统测试是很难发现的,或者发现问题的成本非常大。13、什么是软件测试?软件测试的目的与原则、策略以及软件测试的意义?软件测试:使用人工或自动手段,努力发现产品中每个可以想象到的故障或弱点的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。最终目的是令客户满意。软件测试原则:l 应该在测试开始之前的相当长时间,就制定出测试计划。l 测试应该从小规模开始,并逐步进行“大规模”测试l 穷举测试是不可能的。l 所有的测试都应该能追溯到用户需求。l 应把“尽早和不断地进行软件测试”作为软件开发者的座右铭。实践证明单元测试能够尽早发现问题,减少后期测试的错误量。可以采用Junit和Jtest来辅助进行单元测试。 l 测试用例应由测试输入数据、测试执行步骤和与之对应的预期输出结果三部分组成。l 应当避免由程序员检查自己的程序。(指后期系统测试阶段,不包括单元测试) l 测试用例的设计要确保能覆盖所有可能路径。在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。不合理的输入条件是指异常的,临界的,可能引起问题的输入条件。l 充分注意测试中的群集现象即缺陷的二八定理。经验表明,测试后程序残存的错误数目与该程序中已发现的错误数目或检错率成正比。应该对错误群集的程序段进行重点测试。 l 严格执行测试计划,排除测试的随意性。 测试计划应包括:所测软件的功能,输入和输出,测试内容,各项测试的进度安排,资源要求,测试资料,测试工具,测试用例的选择,测试的控制方法和过程,系统的配置方式,跟踪规则,调试规则,以及回归测试的规定等等以及评价标准。l 应当对每一个测试结果做全面的检查。 l 妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。 l 对于相对复杂的产品或系统来说,没有Bugs是不可能的,我们只能想办法把软件的Bug数控制在可以忍受的范围内。l 缺陷具有免疫性,测试人员要根据新版本的特点去修改维护测试用例。l 为了达到最佳的测试效果,应该由独立的第三方来从事测试工作。软件测试策略: 数据完整性测试功能测试易用性原则(用户界面的测试、优秀UI的7个组成要素、软件中的辅助特性)性能测试配置测试兼容性测试本地化测试 软件测试策略是为软件工程过程定义的一个软件测试的模板,也就是把特定的测试用例方法放置进去的一系列步骤。 软件测试的策略、方法和技术是多种多样的。对于软件测试技术,可以从不同的角度加以分类:从是否需要执行被测软件的角度,可分为静态测试和动态测试。从测试是否针对系统的内部结构和具体实现算法的角度来看,可分为白盒测试和黑盒测试。l 静态测试与动态测试 所谓静态测试是指不运行被测程序本身,仅通过分析或检查源程序的文法、结构、过程、接口等来检查程序的正确性。静态测试包括代码检查、静态结构分析、代码质量度量等。它可以由人工进行,也可以借助软件工具自动进行。动态测试是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能。动态测试包括:(1)功能确认与接口测试(2)覆盖率分析(3)性能分析(4)内存分析l 黑盒测试与白盒测试若测试规划是基于产品的功能,目的是检查程序各个功能是否能够实现,并检查其中的功能错误,则这种测试方法称为黑盒测试(Black-box Testing)方法。黑盒测试又称为功能测试、数据驱动测试和基于规格说明的测试。它是一种从用户观点出发的测试,一般被用来确认软件功能的正确性和可操作性。黑盒测试的方法有a.等价类划分b.因果图法c.边值分析d.决策表法若测试规划基于产品的内部结构进行测试,检查内部操作是否按规定执行,软件各个部分功能是否得到充分使用,则这种测试方法称为白盒测试(White-box Testing)方法。其主要方法有逻辑驱动、基路测试等,主要用于软件验证。l 软件测试过程 单元测试针对每个程序的模块,主要测试5个方面的问题:模块接口、局部数据结构、边界条件、独立的路径和错误处理。集成测试:自顶向下的测试、自底向上的测试、回归测试、烟雾测试系统测试:恢复测试、安全测试、压力测试、性能测试确认测试:a测试、b测试软件调试:蛮力法、回溯法、原因排除法软件测试的意义:a. 发现软件错误;b. 有效定义和实现软件成分由低层到高层的组装过程;c. 验证软件是否满足任务书和系统定义文档所规定的技术 d. 为软件质量模型的建立提供依据。14、软件测试项目从什么时候开始?为什么?软件测试应该在需求分析阶段就介入,因为测试的对象不仅仅是程序编码,应该对软件开发过程中产生的所有产品都测试,并且软件缺陷存在放大趋势.缺陷发现的越晚,修复它所花费的成本就越大.15、需求分析的任务是什么?有什么作用?需求分析的过程和意义?需求分析的任务: 深入描述软件的功能和性能 确定软件设计的约束和软件同其它系统元素的接口细节 定义软件的其它有效性需求需求分析的作用:确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。需求分析的过程和意义: (1) 问题识别n 从系统的角度来理解软件并评审软件范围是否恰当n 确定对目标系统的综合要求,即软件的需求n 提出这些需求实现条件,以及需求应达到的标准(2) 分析与综合从信息流和信息结构出发,逐步细化所有的软件功能,找出系统各元素之间的联系、接口特性和设计上的约束,分析它们是否满足功能要求,是否合理。剔除其不合理的部分,增加其需要部分。最终综合成系统的解决方案,给出目标系统的详细逻辑模型。(3) 编制需求分析阶段的文档n 软件需求说明书n 数据要求说明书n 初步的用户手册n 修改、完善与确定软件开发实施计划(4) 需求分析评审n 系统定义的目标是否与用户的要求一致;n 系统需求分析阶段提供的文档资料是否齐全;n 文档中的所有描述是否完整、清晰、准确反映用户要求;n 与所有其它系统成分的重要接口是否都已经描述;n 被开发项目的数据流与数据结构是否足够,确定;n 所有图表是否清楚,在不补充说明时能否理解;n 主要功能是否已包括在规定的软件范围之内,是否都已充分说明;n 设计的约束条件或限制条件是否符合实际;n 开发的技术风险是什么;n 是否考虑过软件需求的其它方案;n 是否考虑过将来可能会提出的软件需求;n 是否详细制定了检验标准,它们能否对系统定义是否成功进行确认;需求分析的意义:软件工程理论认为,在软件生命周期中,需求分析(Requirements Analysis)是最重要的一个阶段。软件需求分析的质量对软件开发的影响是深远的、全局性的,高质量需求对软件开发往往起到事半功倍的效果,所谓“磨刀不误砍柴功”。在后续阶段改正需求分析阶段产生的错误将付出高昂的代价。16、请画出软件测试活动的流程图。(8 分)测试需求-测试计划-测试用例设计-执行测试用例-结果分析-缺陷解决-回归测试17、试叙述对一个软件项目测试的全过程。(10 分) (1)项目经理通过和客户的交流,完成需求文档,由开发人员和测试人员共同完成需求文档的评审,评审的内容包括:需求描述不清楚的地方和可能有明显冲突或者无法实现的功能的地方。项目经理通过综合开发人员,测试人员以及客户的意见,完成项目计划。然后SQA进入项目,开始进行统计和跟踪 (2)开发人员根据需求文档完成需求分析文档,测试人员进行评审,评审的主要内容包括是否有遗漏或者双方理解不同的地方。测试人员完成测试计划文档,测试计划包括的内容上面有描述。 (3)测试人员根据修改好的需求分析文档开始写测试用例,同时开发人员完成概要设计文档,详细设计文档。此两份文档成为测试人员撰写测试用例的补充材料。 (4)测试用例完成后,测试和开发需要进行评审。 (5)测试人员搭建环境 (6)开发人员提交第一个版本,可能存在未完成功能,需要说明。测试人员进行测试,发现BUG后提交给BugZilla。 (7)开发提交第二个版本,包括Bug Fix以及增加了部分功能,测试人员进行测试。 (8)重复上面的工作,一般是3-4个版本后BUG数量减少,达到出货的要求。 (9)如果有客户反馈的问题,需要测试人员协助重现以及回归测试。 18、软件测试主要分为哪四类测试?软件测试主要分为单元测试、集成测试、系统测试、验收测试四类测试。19、软件测试分为几个阶段?各阶段的测试策略和要求是什么?每个阶段都应用什么测试方法? 从测试实际的前后过程来看,软件测试的过程是由一系列的不同测试阶段所组成,这些软件测试的步骤分为:需求分析审查、设计审查、单元测试、集成测试(组装测试)、功能测试、系统测试、验收测试、回归测试(维护)等。阶 段要求测试方法、策略需求分析审查Requirements Review需求定义要准确、完整和一致, 真正理解客户的需求黑盒测试设计审查Design Review系统结构的合理性、处理过程的正确性、数据库的规范化、模块的独立性等清楚定义测试计划的策略、范围、资源和风险,测试用例的有效性和完备性黑盒测试单元测试Unit Testing遵守规范、模块的高内聚性、功能实现的一致性和正确性白盒测试集成测试Integration Testing接口定义清楚且正确、模块或组件一起工作正常、能集成为完整的系统黑盒测试白盒测试功能验证Functionality Testing模块集成 功能的正确性、适用性系统测试System Testing系统能正常地、有效的运行,包括性能、可靠性、安全性、兼容性等。黑盒测试验收测试Acceptance Testing向用户表明系统能够按照预定要求那样工作,使系统最终可以正式发布或向用户提供服务。用户要参与验收测试,包括测试(内部用户测试)、测试(外部用户测试)黑盒测试正式验收测试测试测试版本发布Release软件发布包、软件发布检查表(清单)维护Maintance要求:新的或增强的功能正常、原有的功能正常,不能出现回归缺陷20、请描述软件测试活动的生命周期。在测试生命周期,测试过程分为几个阶段,以及各个阶段的含义?基于软件工程学的思想,测试计划、测试设计、测试开发、测试执行、缺陷跟踪、测试评估6个环节共同构成整个软件测试生命周期。在测试生命周期内,软件测试过程按照测试的先后次序可分为4个步骤进行:单元测试、集成测试、确认测试和系统测试,最后进行验收测试。(1)单元测试:是指对软件中的最小可测试单元进行检查和验证。(2)集成测试:是单元测试的下一个阶段,是指将通过测试的单元模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部分。(3)确认测试:完成集成测试以后,要对开发工作初期制定的确认准则进行检验。确认测试是检验所开发的软件能否满足所有功能和性能需求的最后阶段,通常均采用黑盒测试方法。(4)系统测试:指的是将整个软件系统看做一个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行的测试。(5)验收测试:指的是在系统测试的后期,以用户测试为主,或有测试人员等质量保障人员共同参与的测试,他也是软件正式交给用户使用的最后一道工序。21、在软件测试各个阶段的结果文件是什么?包括什么内容? 测试计划测试计划,测试设计测试用例 测试执行缺陷报告,测试评估测试总结报告测试计划的内容会因不同的项目以及项目的大小而有所不同,一般而言在测试计划中应该清晰描述以下内容: 测试目标测试概要测试范围重点事项质量目标资源需求人员组织测试策略发布提交测试进度和任务人员安排 测试开始/完成/延迟/继续的标准测试用例指的是在测试执行之前设计的一套详细的测试方案,包括测试环境、测试步骤、测试数据和预期结果。缺陷报告主要包括:缺陷编号 缺陷标题报告者创建时间所属版本开发的接口人员缺陷重现过程严重程度(致命、严重、一般、提示)优先级缺陷状态缺陷简单描述缺陷详细描述(操作环境、操作步骤、使用数据、简单分析等)修改记录(修改内容、结果及修改人员签字/日期)缺陷解决方案,解决人&解决日期确认内容、结果及确认人员签字/日期遗留问题测试总结和改进建议BUG附件(给出相关的日志和截图)备注测试总结报告内容包括:u 引言:编写目的、背景、用户群、 参考资料、测试对象、测试阶段、测试工具 u 测试概要u 测试环境 软硬件配置、 网络拓扑方案 u 测试结果及发现 功能测试 :版本走势 、模块分布 、严重程度分布、BUG引入阶段分析、BUG状态分布图、BUG修改人分布图 性能测试u 测试结论:功能、 易用性、 效率、兼容性 u 分析摘要:能力、遗留缺陷的影响、建议、评价 u 度量:资源消耗、缺陷密度 22、按照瀑布模型软件开发都分哪几个阶段?对应的测试环节又分哪几个阶段?随着全面质量管理思想在软件开发领域的应用,软件测试也由最初的只针对软件成品扩展到了针对软件半成品与过程产品的全过程测试。按照瀑布模型软件开发都分为软件需求分析、软件概要设计、软件详细设计、编码、集成、验收等各个工程阶段。 相应地,各阶段所开展的测试分别为需求测试、架构测试、详细设计测试、单元测试、集成测试以及验收测试等。这样的软件测试涵盖了软件开发的整个工程过程,对于识别与控制软件缺陷、提高软件质量起到了很明显的成效。23、测试生命周期、测试过程分为几个阶段,以及各阶段的含义?测试生命周期:测试计划、测试设计、测试开发、测试执行、缺陷跟踪、测试评估测试计划:由测试经理或测试组长根据需求规格说明书或界面原型来编写测试计划,生成测试计划文档。测试设计:在概要设计和详细设计阶段,由测试设计人员根据需求规格说明书或是界面原型来进行测试设计,主要包括编写测试用例、设计测试策略等,主要生成测试用例文档。测试开发:开发桩模块和驱动模块,建立可重用的自动测试,维护测试对于测试需求的可跟踪性。测试执行:在开发编码后期,有测试执行人员参考需求规格说明书和测试用例来对系统进行测试实施,这里面又包括了单元测试、集成测试、系统测试,主要生成大量的缺陷报告。缺陷跟踪: 或称Bug管理,是产品开发(尤其是软件开发)和维护过程中重要的辅助工具,用于跟踪记录产品的缺陷、需求变更等,作为沟通开发人员与测试人员、客户的沟通的桥梁,保障产品开发流程更加协调。 测试评估:在项目的后期,由测试经理或测试组长评估一下测试的过程和结果,为下一阶段或是下一个项目的测试积累一些经验和教训,一般生成一个测试总结报告。软件测试过程是软件开发的逆过程。按照测试的先后次序可分为4个步骤进行:单元测试、集成测试、确认测试和系统测试,最后进行验收测试。(1)单元测试:是指对软件中的最小可测试单元进行检查和验证。(2)集成测试:是单元测试的下一个阶段,是指将通过测试的单元模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部分。(3)确认测试:完成集成测试以后,要对开发工作初期制定的确认准则进行检验。确认测试是检验所开发的软件能否满足所有功能和性能需求的最后阶段,通常均采用黑盒测试方法。(4)系统测试:指的是将整个软件系统看做一个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行的测试。(5)验收测试:指的是在系统测试的后期,以用户测试为主,或有测试人员等质量保障人员共同参与的测试,他也是软件正式交给用户使用的最后一道工序。24、软件测试应该划分几个阶段?简述各个阶段应重点测试的点?各个阶段的含义?软件测试分为单元测试、集成测试、系统测试、验收测试四个阶段,有时需要进行回归测试。 (1)单元测试:是指对软件中的最小可测试单元进行检查和验证,要注重逻辑的覆盖。(2)集成测试:是单元测试的下一个阶段,是指将通过测试的单元模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部分,主要注重接口的覆盖。(3)系统测试:指的是将整个软件系统看做一个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行的测试,主要注重需求的覆盖。(4)验收测试:指的是在系统测试的后期,以用户测试为主,或有测试人员等质量保障人员共同参与的测试,他也是软件正式交给用户使用的最后一道工序。验收测试是对于项目类的软件而说的。相对的,对于产品类的软件,就不要验收测试。就要进行,Alpha测试以及Beta测试。回归测试,是指对软件的新的版本测
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑环境 > 建筑工程


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!