《软件工程》试题
![[��ǩ:����] [��ǩ:����]](https://www.xuefen.net//file/upload/img/7/462.jpg)
软件工程试题及答案免费下载
链接:https://pan.baidu.com/s/12gIJovXWNsAu530CPnVPgQ
提取码:j3l1
软件工程是一门研究用工程化方法构建和维护有效、实用和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计件有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,也提高了工作效率和生活效率。
2020下学期《软件工程》第06章在线测试
《软件工程》第06章在线测试
第一题、单项选择题(每题1分,5道题共5分)
1、选择程序设计语言的关键因素是( A )。
A. 项目应用领域 B. 软件执行环境
C. 软件开发方法 D. 算法和数据结构
2、项目应用领域不包括( D )。
A. 工程计算 B. 人工智能
C. 数据处理 D. 软件重用
3、注释的说法正确的是( C )。
A. 序言性注释应嵌入在源程序的内部 B. 每一行程序都要加注释
C. 修改程序也应修改注释 D. 功能性注释可说明数据状态
4、在编制程序时,应采纳的原则之一是( D )。
A. 不限制goto语句的使用 B. 减少或取消注释行
C.程序越短越好 D. 程序结构应有助于读者理解
5、提高程序效率的根本途径并非在于( D )。
A. 选择良好的设计方法 B. 选择良好的数据结构
C. 选择良好的算法 D. 对程序语句作调整
软件工程试题!帮忙啊!急急急急急!
一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1.“软件工程的概念是为解决软件危机而提出的”这句话的意思是( )A.强调软件工程成功解决了软件危机的问题B.说明软件危机的存在总是使软件开发不像传统工程项目那样容易管理C.说明软件工程这门学科的形成是软件发展的需要D.说明软件工程的概念,即:工程的原则、思想、方法可解决当时软件开发和维护存在的问题2.瀑布模型的主要特点是( )A.将开发过程严格地划分为一系列有序的活动B.将开发过程分解为阶段C.提供了有效的管理模式D.缺乏灵活性3.在软件工程的需求分析阶段,不属于问题识别内容的是( )A.功能需求B.性能需求C.环境需求D.输入/输出需求4.画某系统的数据流图时,顶层图有( )A.0张B.1张C.2张D.3张及其以上5.软件模块内聚性最强的是( )A.功能内聚B.通信内聚C.偶然内聚D.逻辑内聚6.最早提出软件系统维护问题的阶段是( )A.可行性分析B.需求分析C.概要设计D.详细设计7.SD(结构化设计)方法设计的结果是( )A.模块B.模块结构图C.模块的算法D.数据流图8.在进行软件测试时,首先应当进行以下哪项测试,然后再进行组装测试,最后再进行有效性测试( )A.单元测试B.系统测试C.集成测试D.确认测试9.软件详细设计阶段的任务是( )A.算法与数据结构设计B.功能设计C.调用关系设计D.输入/输出设计10.下列属于静态测试方法的是( )A.黑盒法B.路径覆盖C.白盒法D.人工检测11.Fortran语言主要作为以下哪个方面的语言( )A.科学工程计算B.系统软件C.事务处理D.人工智能12.用结构化语言来描述加工逻辑的外层结构时,以下不属于基本结构的是( )A.顺序结构B.选择结构C.嵌套结构D.重复结构l3.可维护软件的主要特性包括( )A.可理解性、可修改性、可移植性B.可使用性C.可维护性、可使用性、可靠性D.可测试性14.程序设计语言不具有的特性是( )A.心理特性B.工程特性C.应用特性D.技术特性15.下列不属于项目进度安排主要方法的是( )A.工程网络图B.Gantt图C.进度结构图D.任务资源表16.下列不属于通常冗余技术的是( )A.结构冗余B.信息冗余C.时间冗余D.代码冗余17.下列工具中,属于需求追踪工具的是( )A.在DBMS上的应用运行工具B.追踪和状态报告C.访问和版本控制机构D.文件和修改管理18.关于软件测试的目的,下面观点错误的是( )A.为了发现错误而执行程序的过程B.一个好的测试用例能够发现至今尚未发现的错误C.证明程序是正确、没有错误的D.一个成功的测试用例是发现了至今尚未发现的错误的测试19.在制定项目开发计划文档时,不包含的内容是( )A.项目概述B.实施计划C.测试计划D.交付期限20.面向对象的开发方法中,以下哪种方法原是面向Ada语言的,并处于面向对象开发方法的奠基性地位( )A.Booch方法B.Coad方法C.UML语言D.OMT方法二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。错填、不填均无分。21.可行性研究从技术可行性、经济可行性、________三方面进行分析。22.IDEF0方法用来描述系统的功能活动及其联系,建立系统的_______模型。23.结构化方法总的指导思想是_______逐层分解。24.在一段程序中,将多次出现的一组语句设计为一个子程序,供多个部分调用,这种情况出现的内聚称为________。25.软件部件的内部实现与外部可访问性分离,这是指软件的______。26.用来模拟被测模块的上级调用模块的模块称为_______。27.软件复杂性度量的参数很多,主要有规模、_______、结构、智能度。28.软件开发环境中最主要的组成部分是______。29.软件工程管理的具体内容包括对开发人员、组织机构、用户和______等方面的管理。30.增量模型根据增量方式和形式的不同,分为_____和原型模型。三、名词解释题(本大题共5小题,每小题3分,共15分)31.过程设计语言(PDL)32.可移植性33.渐增式测试34.详细设计35.条件覆盖四、简答题(本大题共4小题,每小题5分,共20分)36.软件生存周期可以分为几个阶段,每个阶段的提交物是什么?37.结构化分析的描述工具有哪些?简述结构化分析的步骤。38.什么是黑盒测试法?常用的黑盒测试方法有哪些?39.简述面向对象的特征。五、应用题(本大题共2小题,第40小题10分,第41小题15分,共25分) 40.某个学生成绩管理系统的部分功能如下:(1)基本信息管理:教务管理人员输入或修改学期教学执行计划、学生名单和教师名单;(2)学生选课:学生根据教学执行计划进行选课;(3)分配任课教师:教务管理人员为符合开课条件的课程分配教师,并打印任课通知单给教师;(4)成绩管理:每门课程的教师在考试评分结束后将考试成绩交给教务管理人员,教务管理人员输入、维护成绩,系统可生成成绩单(发给学生)、成绩统计分析表(发给教务管理人员)。请根据要求画出该问题的分层数据流图(要求画出顶层和0层数据流图)。一、单项选择题(在每小题的四个备选答案中选出一个正确答案,并将其号码填在题后的括号内。每小题1分,共20分) 1. “软件危机”是指( ) A. 计算机病毒的出现 B. 利用计算机进行经济犯罪活动 C. 软件开发和维护中出现的一系列问题 D. 人们过分迷恋计算机系统 2. DFD中的每个加工至少需要( ) A. 一个输入流 B. 一个输出流 C. 一个输入或输出流 D. 一个输入流和一个输出流 3. 为了提高模块的独立性,模块之间最好是( ) A. 控制耦合 B. 公共耦合 C. 内容耦合 D. 数据耦合 4. 下面关于PDL语言不正确的说法是( ) A. PDL是描述处理过程怎么做 B. PDL是只描述加工做什么 C. PDL也称为伪码 D. PDL的外层语法应符合一般程序设计语言常用的语法规则 5. 详细设计与概要设计衔接的图形工具是( ) A. DFD图 B. 程序图 C. PAD图 D. SC图 6. 不适合作为数据处理与数据库应用的语言是( ) A. SQL B. Cobol C. 4GL D. Lisp 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. 软件开发的各个阶段 14. 从目前情况来看,增量模型存在的主要问题是( ) A. 用户很难适应这种系统开发方法 B. 该方法的成功率很低 C. 缺乏丰富而强有力的软件工具和开发环境 D. 缺乏对开发过程中的问题和错误具有应付变化的机制 15. 下列有关软件工程的标准,属于行业标准的是( ) A. GB B. DIN C. ISO D. IEEE 16. 下列文档与维护人员有关的有( ) A. 软件需求说明书 B. 项目开发计划 C. 概要设计说明书 D. 操作手册 17. 在屏蔽软件错误的冗错技术中,冗余附加件的构成包括( ) A. 关键程序和数据的冗余存储和调用 B. 为检测或纠正信息在运算或传输中的错误须外加的一部分信息 C. 检测、表决、切换、重构、纠错和复算的实现 D. 实现错误检测和错误恢复的程序 18. ( )是为了确保每个开发过程的质量,防止把软件差错传递到下一个过程而进行的工作。A. 质量检测 B. 软件容错 C. 软件维护 D. 系统容错 19. 表示对象相互行为的模型是( )模型。A. 动态模型 B. 功能模型 C. 对象模型 D. 静态模型 20. CASE工具的表示集成是指CASE工具提供相同的( ) A. 编程环境 B. 用户界面 C. 过程模型 D. 硬件/操作系统 二、填空题(每空2分,共20分) 1. 作为计算机科学技术领域中的一门新兴学科,软件工程主要是为了解决________问题。2. 投资回收期就是使________等于最初的投资费用所需时间。3. 在IDEF0方法的一个活动图形中控制活动是指________。4. 划分模块时尽量做到________,保持模块的独立性。5. PAD图是一种________展开的二维树形结构。6. 对校正性维护应该从________的严重性开始。7. 类的实例化是________。8. 人们常用硬件可靠性的定量度量方法来度量软件的可靠性和可用性,常用的度量软件可靠性的两个指标是________和________。9. 将待开发的软件细化,分别估算每一个子任务所需要的开发工作量,然后将它们加起来,将得到软件的总开发量。这种成本估算方法称为________。三、名词解释(每小题3分,共15分) 1. 需求分析 2. 耦合性 3. 结构化程序设计 4. 状态图 5. 软件配置管理 四、简答题(每小题5分,共20分) 1. 简述演绎法调试的具体步骤。2. 简述增量模型和瀑布模型的本质区别。3. 简述设计一个容错系统的步骤。4. 简述在项目开发时,选择程序设计语言应考虑因素。五、应用题(第1题6分,第2小题8分,第3小题11分,共25分) 1. 某部门要处理大批单据所组成的事务文件,单据分为进货单和发货单两种,每种 单据由多行组成,每行包括零件号、零件名称、数量三个数据项。要求:用Jackson方法表示事务文件的数据结构。(6分) 2. 根据以下被测试的流程图,选择相应的答案。(8分) (1) A=2,B=0,X=4 (2)A=2,B=1,X=1 (3)A=2,B=0,X=1 A=1,B=1,X=1 A=3,B=0,X=3 A=1,B=1,X=2 ①在1-3的答案中满足判定覆盖的测试用例是________ (2分) ②在1-3的答案中满足条件覆盖的测试用例是________ (2分) ③在1-3的答案中满足判定/条件覆盖的测试用例是________ (2分) (4)A=2,B=0,X=4 (5)A=2,B=0,X=4 (6)A=2,B=0,X=4 A=2,B=1,X=1 A=2,B=2,X=1 A=1,B=1,X=1 A=1,B=0,X A=1,B=0,X=3 A=1,B=1,X=4 A=1,B=1,X=1 A=1,B=2,X=2 A=3,B=0,X=3 ④在4-6的答案中满足条件组合覆盖的测试用例是________(1分) ⑤在4-6的答案中满足路径覆盖的测试用例是________(1分) 3. 某电视购物公司采用面向对象技术实现商品销售计算机系统,基本需求如下: (1)公司提供多种类商品,每种商品通过委托订单来进行征订。(2)公司下属多个分公司,每个分公司负责本地区委托订单的收录,打印收款凭证单。(3)公司负责分类、统计各分公司送来的委托单,进行分类统计。要求:按照上述模型建立对象模型。(11分) 一、
1.C 2.D 3.D 4.B 5.D 6.D 7.B 8.D 9.D 10.D 11.C 12.B 13.A 14.C 15.D 16.C 17.D 18.A 19.A 20.B
二、
1.如何建立一个软件系统
2.积累的经济效益
3.所受到的约束条件
4.高内聚低耦合
5.有左往右
6.评价错误
7.对象
8.MTTF MTBF
9.自底向上估算方法
三、
1. 需求分析是指,开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈
述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程。
2. 耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。
3. 结构化程序设计是实现该目标的关键技术之一,它指导人们用良好的思想方法开发易于理解、易于验证的程序。结构化程序设计方法的基本要点是: 1)采用自顶向下、逐步求精的程序设计方法
2)使用三种基本控制结构构造程序 3)主程序员组的组织形式。
4. 状态图是一个标准的计算机概念,它是有限自动机的图形表示,它反映了状态与事件的关系,状态图确定了由事件序列引起的状态序列。
5. 软件配置管理,简称SCM,它用于整个软件工程过程。其主要目标是:标识变更;控制变更;确保变更正确地实现;报告有关变更。SCM是一组管理整个软件生存期各阶段中变更的活动。
四、
1.演绎法调试步骤:列出所有可能的错误原因的假设;排除不适当的假设;精化余于的假设;证明余于的假设。
2.瀑布模型属于整体开发模型,它规定在开始下一个阶段的工作之前,必须完成前一阶段的所有细节。而增量模型属于非整体开发模型,它推迟某些阶段或所有阶段中的细节,从而较早的产生工作软件。3.(1)按设计任务要求进行常会设计,尽量保证设计的正确
(2)对可能出现的错误分类,确定实现容错的范围
(3)按照“成本—效率”最优原则,选用某种冗余手段(结构,信息,时间)来实现对各类错误的屏蔽
(4)分析或验证上述冗余结构的容错效果
4.(1)项目的应用领域;(2)软件开发的方法 (3)软件执行的环境(4)算法和数据结构的复杂性(5)软件开发人员的知识(选自不倒翁的博客)
[软件测试题目]一次测试用例设计的完整的过程描述
黑盒测试(Black-box Testing,又称为功能测试或数据驱动测试)是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。
采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。
黑盒测试注重于测试软件的功能性需求,也即黑盒测试使软件工程师派生出执行程序所有功能需求的输入条件。黑盒测试并不是白盒测试的替代品,而是用于辅助白盒测试发现其他类型的错误。
黑盒测试试图发现以下类型的错误:
1)功能错误或遗漏;
2)界面错误;
3)数据结构或外部数据库访问错误;
4)性能错误;
5)初始化和终止错误。
一、黑盒测试的测试用例设计方法
·等价类划分方法
·边界值分析方法
·错误推测方法
·因果图方法
·判定表驱动分析方法
·正交实验设计方法
·功能图分析方法
等价类划分:
是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法.
1) 划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.
有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能.
无效等价类:与有效等价类的定义恰巧相反.
设计测试用例时,要同时考虑这两种等价类.因为,软件不仅要能接收合理的数据,也要能经受意外的考验.这样的测试才能确保软件具有更高的可靠性.
2)划分等价类的方法:下面给出六条确定等价类的原则.
①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类.
②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类.
③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类.
④在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类.
⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则).
⑥在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类.
3)设计测试用例:在确立了等价类后,可建立等价类表,列出所有划分出的等价类:
输入条件 有效等价类 无效等价类
... ... ...
... ... ...
然后从划分出的等价类中按以下三个原则设计测试用例:
①为每一个等价类规定一个唯一的编号.
②设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步.直到所有的有效等价类都被覆盖为止.
③设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步.直到所有的无效等价类都被覆盖为止.
边界值分析法
边界值分析方法是对等价类划分方法的补充.
(1)边界值分析方法的考虑:
长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.
使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.
(2)基于边界值分析方法选择测试用例的原则:
1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据.
2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据.
3)根据规格说明的每个输出条件,使用前面的原则1).
4)根据规格说明的每个输出条件,应用前面的原则2).
5)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例.
6)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例.
7)分析规格说明,找出其它可能的边界条件.
错误推测法
错误推测法: 基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法.
错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如,在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等,这些就是经验的总结. 还有,输入数据和输出数据为0的情况. 输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况. 可选择这些情况下的例子作为测试用例.
因果图方法
前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系,相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情,即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型).
因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.
利用因果图生成测试用例的基本步骤:
(1) 分析软件规格说明描述中,那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件),并给每个原因和结果赋予一个标识符.
(2) 分析软件规格说明描述中的语义.找出原因与结果之间,原因与原因之间对应的关系. 根据这些关系,画出因果图.
(3) 由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不不可能出现. 为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件.
(4) 把因果图转换为判定表.
(5) 把判定表的每一列拿出来作为依据,设计测试用例.
从因果图生成的测试用例(局部,组合关系下的)包括了所有输入数据的取TRUE与取FALSE的情况,构成的测试用例数目达到最少,且测试用例数目随输入数据数目的增加而线性地增加.
前面因果图方法中已经用到了判定表.判定表(Decision Table)是分析和表达多逻辑条件下执行不同操作的情况下的工具.在程序设计发展的初期,判定表就已被当作编写程序的辅助工具了.由于它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确.
判定表通常由四个部分组成.
条件桩(Co
ndition Stub):列出了问题得所有条件.通常认为列出得条件的次序无关紧要.
动作桩(Action Stub):列出了问题规定可能采取的操作.这些操作的排列顺序没有约束.
条件项(Co
ndition Entry):列出针对它左列条件的取值.在所有可能情况下的真假值.
动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作.
规则:任何一个条件组合的特定取值及其相应要执行的操作.在判定表中贯穿条件项和动作项的一列就是一条规则.显然,判定表中列出多少组条件取值,也就有多少条规则,既条件项和动作项有多少列.
判定表的建立步骤:(根据软件规格说明)
①确定规则的个数.假如有n个条件.每个条件有两个取值(0,1),故有 种规则.
②列出所有的条件桩和动作桩.
③填入条件项.
④填入动作项.等到初始判定表.
⑤简化.合并相似规则(相同动作).
B. Beizer 指出了适合使用判定表设计测试用例的条件:
①规格说明以判定表形式给出,或很容易转换成判定表.
②条件的排列顺序不会也不影响执行哪些操作.
③规则的排列顺序不会也不影响执行哪些操作.
④每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则.
⑤如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要.
黑盒测试的优点
1. 基本上不用人管着,如果程序停止运行了一般就是被测试程序crash了
2. 设计完测试例之后,下来的工作就是爽了,当然更苦闷的是确定crash原因
黑盒测试的缺点
1. 结果取决于测试例的设计,测试例的设计部分来势来源于经验,OUSPG的东西很值得借鉴
2. 没有状态转换的概念,目前一些成功的例子基本上都是针对PDU来做的,还做不到针对被测试程序的状态转换来作
3. 就没有状态概念的测试来说,寻找和确定造成程序crash的测试例是个麻烦事情,必须把周围可能的测试例单独确认一遍。而就有状态的测试来说,就更麻烦了,尤其不是一个单独的testcase造成的问题。这些在堆的问题中表现的更为突出。
黑盒测试(功能测试)工具的选择
那么,如何高效地完成功能测试?选择一款合适的功能测试工具并培训一支高素质的工具使用队伍无疑是至关重要的。尽管现阶段存在少数不采用任何功能测试工具,从事功能测试外包项目的软件服务企业。短期来看,这类企业盈利状况尚可,但长久来看,它们极有可能被自动化程度较高的软件服务企业取代。
目前,用于功能测试的工具软件有很多,针对不同架构软件的工具也不断推陈出新。这里重点介绍的是其中一个较为典型自动化测试工具,即Mercury公司的WinRunner。
WinRunner是一种用于检验应用程序能否如期运行的企业级软件功能测试工具。通过自动捕获、检测和模拟用户交互操作,WinRunner能识别出绝大多数软件功能缺陷,从而确保那些跨越了多个功能点和数据库的应用程序在发布时尽量不出现功能性故障。
WinRunner的特点在于: 与传统的手工测试相比,它能快速、批量地完成功能点测试; 能针对相同测试脚本,执行相同的动作,从而消除人工测试所带来的理解上的误差; 此外,它还能重复执行相同动作,测试工作中最枯燥的部分可交由机器完成; 它支持程序风格的测试脚本,一个高素质的测试工程师能借助它完成流程极为复杂的测试,通过使用通配符、宏、条件语句、循环语句等,还能较好地完成测试脚本的重用; 它针对于大多数编程语言和Windows技术,提供了较好的集成、支持环境,这对基于Windows平台的应用程序实施功能测试而言带来了极大的便利。
WinRunner的工作流程大致可以分为以下六个步骤:
1.识别应用程序的GUI
在WinRunner中,我们可以使用GUI Spy来识别各种GUI对象,识别后,WinRunner会将其存储到GUI Map File中。它提供两种GUI Map File模式: Global GUI Map File和GUI Map File per Test。其最大区别是后者对每个测试脚本产生一个GUI文件,它能自动建立、存储、加载,推荐初学者选用这种模式。但是,这种模式不易于描述对象的改变,其效率比较低,因此对于一个有经验的测试人员来说前者不失为一种更好的选择,它只产生一个共享的GUI文件,这使得测试脚本更容易维护,且效率更高。
2.建立测试脚本
在建立测试脚本时,一般先进行录制,然后在录制形成的脚本中手工加入需要的TSL(与C语言类似的测试脚本语言)。录制脚本有两种模式: Co
ntext Sensitive和Analog,选择依据主要在于是否对鼠标轨迹进行模拟,在需要回放时一般选用Analog。在录制过程中这两种模式可以通过F2键相互切换。
只要看看现代软件的规模和功能点数就可以明白,功能测试早已跨越了单靠手工敲敲键盘、点点鼠标就可以完成的阶段。而性能测试则是控制系统性能的有效手段,在软件的能力验证、能力规划、性能调优、缺陷修复等方面都发挥着重要作用。
3.对测试脚本除错(debug)
在WinRunner中有专门一个Debug Toolbar用于测试脚本除错。可以使用step、pause、breakpoint等来控制和跟踪测试脚本和查看各种变量值。
4.在新版应用程序执行测试脚本
当应用程序有新版本发布时,我们会对应用程序的各种功能包括新增功能进行测试,这时当然不可能再来重新录制和编写所有的测试脚本。我们可以使用已有的脚本,批量运行这些测试脚本测试旧的功能点是否正常工作。可以使用一个call命令来加载各测试脚本。还可在call命令中加各种TSL脚本来增加批量能力。
5.分析测试结果
分析测试结果在整个测试过程中最重要,通过分析可以发现应用程序的各种功能性缺陷。当运行完某个测试脚本后,会产生一个测试报告,从这个测试报告中我们能发现应用程序的功能性缺陷,能看到实际结果和期望结果之间的差异,以及在测试过程中产生的各类对话框等。
6.回报缺陷(defect)
在分析完测试报告后,按照测试流程要回报应用程序的各种缺陷,然后将这些缺陷发给指定人,以便进行修改和维护。
常用的功能测试方法
功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。常用的测试方法如下:
1. 页面链接检查:每一个链接是否都有对应的页面,并且页面之间切换正确。
2. 相关性检查:删除/增加一项会不会对其他项产生影响,如果产生影响,这些影响是否都正确。
3. 检查按钮的功能是否正确:如update,cancel,delete,save等功能是否正确。
4. 字符串长度检查: 输入超出需求所说明的字符串长度的内容,看系统是否检查字符串长度,会不会出错.
5. 字符类型检查: 在应该输入指定类型的内容的地方输入其他类型的内容(如在应该输入整型的地方输入其他字符类型),看系统是否检查字符类型,会否报错.
6. 标点符号检查: 输入内容包括各种标点符号,特别是空格,各种引号,回车键.看系统处理是否正确.
7. 中文字符处理: 在可以输入中文的系统输入中文,看会否出现乱码或出错.
8. 检查带出信息的完整性: 在查看信息和update信息时,查看所填写的信息是不是全部带出.,带出信息和添加的是否一致
9. 信息重复: 在一些需要命名,且名字应该唯一的信息输入重复的名字或ID,看系统有没有处理,会否报错,重名包括是否区分大小写,以及在输入内容的前后输入空格,系统是否作出正确处理.
10. 检查删除功能:在一些可以一次删除多个信息的地方,不选择任何信息,按”delete”,看系统如何处理,会否出错;然后选择一个和多个信息,进行删除,看是否正确处理.
11. 检查添加和修改是否一致: 检查添加和修改信息的要求是否一致,例如添加要求必填的项,修改也应该必填;添加规定为整型的项,修改也必须为整型.
12. 检查修改重名:修改时把不能重名的项改为已存在的内容,看会否处理,报错.同时,也要注意,会不会报和自己重名的错.
13. 重复提交表单:一条已经成功提交的纪录,back后再提交,看看系统是否做了处理。
14. 检查多次使用back键的情况: 在有back的地方,back,回到原来页面,再back,重复多次,看会否出错.
15. search检查: 在有search功能的地方输入系统存在和不存在的内容,看search结果是否正确.如果可以输入多个search条件,可以同时添加合理和不合理的条件,看系统处理是否正确.
16. 输入信息位置: 注意在光标停留的地方输入信息时,光标和所输入的信息会否跳到别的地方.
17. 上传下载文件检查:上传下载文件的功能是否实现,上传文件是否能打开。对上传文件的格式有何规定,系统是否有解释信息,并检查系统是否能够做到。
18. 必填项检查:应该填写的项没有填写时系统是否都做了处理,对必填项是否有提示信息,如在必填项前加*
19. 快捷键检查:是否支持常用快捷键,如Ctrl C Ctrl V Backspace等,对一些不允许输入信息的字段,如选人,选日期对快捷方式是否也做了限制。
20. 回车键检查: 在输入结束后直接按回车键,看系统处理如何,会否报错.您好!欢迎共同讨论!有时间逛逛IT实验室,天天软件测试网
.net软件工程师笔试题和面试题答案目
说明:
1. 本试题分可选题和必选题两部分。必选题需要根据题目要求回答。
2. 本试题考试时间为 0.5 小时。
3. 本试题完成后,请标明你的姓名以及联系方式(包括:Email、联系电话)。
注意事项:
1、在规定时间内自行选题(在可选题部分中),选题数目不能少于2个,难度不限,编程语言不限(除非题目中有特别说明)。
2、尽可能用代码段或函数完成,或自然语言来描述解题方法。
3、评分标准跟所选题目的数量和完成度无关,请尽可能展示自己的编程能力、思路、经验和风格。
可选题部分:
(1) 请使用目录树遍历的方法统计出指定逻辑驱动器的目录总数及文件总数,并显示硬盘空间浪费的百分比
> 类别:系统类
> 难度:中级
(2) 列出局域网中的所有工作组和计算机名,并可显示每一个计算机的共享目录
> 类别:系统类
> 难度:高级
(3) 写一个类似OICQ点对点消息发送软件,仅实现发送和接收的功能即可
> 类别:网络编程类
> 难度:高级
(4) 为DataGrid(WinForm)增加ComboBox样式的数据列
> 类别:数据库编程类
> 难度:中级
(5) 一维数组iArray[10],类型为int。请使用选择排序算法对其排序,并输出结果。
> 类别:数据算法
> 难度:初级
(6) 请新建一个类(名称为ClassA),该类必须含有三个属性:姓名(字符串),性别(布尔值),年龄(数值)。
用该类建立一个链表,该链表有以下算法:创建、添加、插入、删除和查找,算法内不用
考虑内存的分配与释放
> 类别:数据结构
> 难度:中级
Public Class ClassA{
Public string name;
Public boolean sex;
Public int age;
}
(7) 在上题的基础上,实现以下两个功能:
a. 保存该链表为二进制文件test.lib(存放在本题目路径之下)
b. 读取生成的二进制文件到链表中。
> 类别:数据结构
> 难度:中级
(8) 你所知道有哪些操作平台,谈谈你对他们的见解
> 类别:其它类
> 难度:无
(9) 你所知道有哪些编程语言,谈谈你对他们的看法,你使用过哪些语言,熟练程度
如何,编写过什么样的程序
> 类别:其它类
> 难度:无
(10) 请用VBs
cript或Javas
cript语言中任何一种,与CSS结合,编写出移动Layer的例子,具体效果与Windows窗体类似。
> 类别:Web
> 难度:中级
必选题部分(必须用VS2003开发):
(1) C#回答题:请描述抽象类、接口、结构三者的区别:
抽象类当中的属性和方法不能被其子类重写,接口只定义其中的属性和方法,其方法的实现部分必须在其继承的子类中实现,结构和类比较类似,也有其属性和方法,但不能被继承和实例化.
(2) C#编程题:在WinForm 中实现类似于Windows 资源管理器的功能,左边有目录树,点击目录树,在右边显示该目录下的所有文件。查看方式分:大图标、小图标、列表、详细资料等。
(3) 写一个简单的存储过程或触发器,要求能正确运行(数据库采用Oracle,自建测试表)
Create table test
(id int primary key,
Name varcha
r2(10) not null,
Address varcha
r2(50),
Tel varcha
r2(18)
);
Create or replace procedure InsertTest as
Declare IDN test.id%type;
Declare VName test.name%type;
Declare VAddress test.address%type;
Declare VTel test.tel%type;
Begin
Select nvl(decode(max(id),0,1,max(id)),1) + 1 into IDN
End
When
4 更多相关文章推荐参考:
安捷伦笔试真题
中兴数据库笔试真题
工商银行历年考试真题
《软件工程》第12章在线测试
《软件工程》第12章在线测试
剩余时间:
59:31
答题须知:1、本卷满分20分。
2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。
3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。
第一题、单项选择题(每题1分,5道题共5分)
1、项目管理包括进度管理、人员管理、成本管理和( C)。A. 时间管理 B. 程序管理 C. 质量管理 D. 计划管理
A、 B、
C、 D、
2、在变更控制中,管理各个用户存取和修改一个特定软件配置对象的权限是( C)。A. 异步控制 B. 同步控制 C. 存取控制 D. 基线控制
A、 B、
C、 D、
3、不属于软件项目进度安排的主要方法是(D )。A. 工程网络图 B. Gantt图 C. 任务资源表 D. IFD图
A、 B、
C、 D、
4、一个项目是否开发,从经济上来说是否可行,归根结底是取决于(A )。A. 成本估算 B. 项目计划 C. 工程管理 D. 工程网络图
A、 B、
C、 D、
5、软件工程比其他工程管理更为( B)。A. 容易 B. 困难 C. 迅速 D. 迟缓
A、 B、
C、 D、
第二题、多项选择题(每题2分,5道题共10分)
1、(本题空白。您可以直接获得本题的2分)
2、(本题空白。您可以直接获得本题的2分)
3、(本题空白。您可以直接获得本题的2分)
4、(本题空白。您可以直接获得本题的2分)
5、(本题空白。您可以直接获得本题的2分)
第三题、判断题(每题1分,5道题共5分)
1、(本题空白。您可以直接获得本题的1分)
2、(本题空白。您可以直接获得本题的1分)
3、(本题空白。您可以直接获得本题的1分)
4、(本题空白。您可以直接获得本题的1分)
5、(本题空白。您可以直接获得本题的1分)
软件工程导论练习题 (3)使用基本路径测试法,设计测试该伪码程序的测试用例
软件工程导论复习.ppt免费下载
链接:https://pan.baidu.com/s/1Hr_L9eEaQGjJWqcUiw-fZg
提取码:twhu
《软件工程导论》内容丰富,构思新颖,突破软件工程图书的传统框架,使整个软件工程体系更清晰,从思想和管理出发,自然延伸到流程、方法、工具和环境,重新阐释了软件工程体系。《软件工程导论》吸收了软件工程的最新进展,适应软件即服务(SaaS)的开发模式,增加了相应的内容,符合当今软件工程的实际需求
嵌入式软件工程师经典笔试题和面试题答案
1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)
#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL
我在这想看到几件事情:
1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)
2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。
3). 意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。
4). 如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。
记住,第一印象很重要。
2. 写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。
#define MIN(A,B) ((A) <= (B) (A) : (B))
这个测试是为下面的目的而设的:
1). 标识#define在宏中应用的基本知识。这是很重要的,因为直到嵌入(inline)操作符变为标准C的一部分,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。
2). 三重条件操作符的知识。这个操作符存在C语言中的原因是它使得编译器能产生比if-then-else更优化的代码,了解这个用法是很重要的。
3). 懂得在宏中小心地把参数用括号括起来
4). 我也用这个问题开始讨论宏的副作用,例如:当你写下面的代码时会发生什么事?
least = MIN(*p++,b);
3. 预处理器标识#error的目的是什么?
4. 嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?
这个问题用几个解决方案。我首选的方案是:
while(1)
{
}
一些程序员更喜欢如下方案:
for(;;)
{
}
这个实现方式让我为难,因为这个语法没有确切表达到底怎么回事。如果一个应试者给出
这个作为方案,我将用这个作为一个机会去探究他们这样做的
基本原理。如果他们的基本答案是:“我被教着这样做,但从没有想到过为什么。”这会
给我留下一个坏印象。
第三个方案是用 goto
Loop:
...
goto Loop;
应试者如给出上面的方案,这说明或者他是一个汇编语言程序员(这也许是好事)或者他
是一个想进入新领域的BASIC/FORTRAN程序员。
数据声明(Data declarations)
5. 用变量a给出下面的定义
a) 一个整型数(An integer)
b) 一个指向整型数的指针(A pointer to an integer)
c) 一个指向指针的的指针,它指向的指针是指向一个整型数(A pointer to a pointer
to an integer)
d) 一个有10个整型数的数组(An array of 10 integers)
e) 一个有10个指针的数组,该指针是指向一个整型数的(An array of 10 pointers to
integers)
f) 一个指向有10个整型数数组的指针(A pointer to an array of 10 integers)
g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a fu
nction that takes an integer as an argument and returns an integer)
h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型
数( An array of ten pointers to functions that take an integer argument and r
eturn an integer )
答案是:
a) int a; // An integer
b) int *a; // A pointer to an integer
c) int **a; // A pointer to a pointer to an integer
d) int a[10]; // An array of 10 integers
e) int *a[10]; // An array of 10 pointers to integers
f) int (*a)[10]; // A pointer to an array of 10 integers
g) int (*a)(int); // A pointer to a function a that takes an integer argument
and returns an integer
h) int (*a[10])(int); // An array of 10 pointers to functions that take an int
eger argument and return an integer
人们经常声称这里有几个问题是那种要翻一下书才能回答的问题,我同意这种说法。当我写这篇文章时,为了确定语法的正确性,我的确查了一下书。
但是当我被面试的时候,我期望被问到这个问题(或者相近的问题)。因为在被面试的这段时间里,我确定我知道这个问题的答案。应试者如果不知道所有的答案(或至少大部分答案),那么也就没有为这次面试做准备,如果该面试者没有为这次面试做准备,那么他又能为什么出准备呢?
Static
6. 关键字static的作用是什么?
这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用:
1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
3). 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。
大多数应试者能正确回答第一部分,一部分能正确回答第二部分,同是很少的人能懂得第三部分。这是一个应试者的严重的缺点,因为他显然不懂得本地化数据和代码范围的好处和重要性。
Const
7.关键字const是什么含意?
我只要一听到被面试者说:“const意味着常数”,我就知道我正在和一个业余者打交道。去年Dan Saks已经在他的文章里完全概括了const的所有用法,因此ESP(译者:Embedded Systems Programming)的每一位读者应该非常熟悉const能做什么和不能做什么.如果你从没有读到那篇文章,只要能说出const意味着“只读”就可以了。尽管这个答案不是完全的
答案,但我接受它作为一个正确的答案。(如果你想知道更详细的答案,仔细读一下Saks的文章吧。)如果应试者能正确回答这个问题,我将问他一个附加的问题:下面的声明都是什么意思?
co
nst int a;
int co
nst a;
co
nst int *a;
int * co
nst a;
int co
nst * a const;
前两个的作用是一样,a是一个常整型数。第三个意味着a是一个指向常整型数的指针(也就是,整型数是不可修改的,但指针可以)。第四个意思a是一个指向整型数的常指针(也就是说,指针指向的整型数是可以修改的,但指针是不可修改的)。最后一个意味着a是一个指向常整型数的常指针(也就是说,指针指向的整型数是不可修改的,同时指针也是不可修改的)。如果应试者能正确回答这些问题,那么他就给我留下了一个好印象。顺带提一句,也许你可能会问,即使不用关键字const,也还是能很容易写出功能正确的程序,那么我为什么还要如此看重关键字const呢?我也如下的几下理由:
1). 关键字const的作用是为给读你代码的人传达非常有用的信息,实际上,声明一个参数为常量是为了告诉了用户这个参数的应用目的。如果你曾花很多时间清理其它人留下的垃圾,你就会很快学会感谢这点多余的信息。(当然,懂得用const的程序员很少会留下的垃圾让别人来清理的。)
2). 通过给优化器一些附加的信息,使用关键字const也许能产生更紧凑的代码。
3). 合理地使用关键字const可以使编译器很自然地保护那些不希望被改变的参数,防止其被无意的代码修改。简而言之,这样可以减少bug的出现。
Volatile
8. 关键字volatile有什么含意 并给出三个不同的例子。
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:
1). 并行设备的硬件寄存器(如:状态寄存器)
2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)
3). 多线程应用中被几个任务共享的变量
回答不出这个问题的人是不会被雇佣的。我认为这是区分C程序员和嵌入式系统程序员的最
基本的问题。嵌入式系统程序员经常同硬件、中断、RTOS等等打交道,所用这些都要求vo
latile变量。不懂得volatile内容将会带来灾难。
假设被面试者正确地回答了这是问题(嗯,怀疑这否会是这样),我将稍微深究一下,看
一下这家伙是不是直正懂得volatile完全的重要性。
1). 一个参数既可以是const还可以是volatile吗?解释为什么。
2). 一个指针可以是volatile 吗?解释为什么。
3). 下面的函数有什么错误:
int square(volatile int *ptr)
{
return *ptr * *ptr;
}
下面是答案:
1). 是的。一个例子是只读的状态寄存器。它是volatile因为它可能被意想不到地改变。
它是const因为程序不应该试图去修改它。
2). 是的。尽管这并不很常见。一个例子是当一个中服务子程序修该一个指向一个buffer
的指针时。
3). 这段代码的有个恶作剧。这段代码的目的是用来返指针*ptr指向值的平方,但是,由
于*ptr指向一个volatile型参数,编译器将产生类似下面的代码:
int square(volatile int *ptr)
{
int a,b;
a = *ptr;
b = *ptr;
return a * b;
}
由于*ptr的值可能被意想不到地该变,因此a和b可能是不同的。结果,这段代码可能返不
是你所期望的平方值!正确的代码如下:
long square(volatile int *ptr)
{
int a;
a = *ptr;
return a * a;
}
位操作(Bit manipulation) 1 2
初级软件工程选择题,请高手赐教,做的好可以再追加20分
一、选择题
1.下列选项中,不属于软件危机主要表现的是( D )
2.下面不属于软件工程的三个要素的是( D )
3.下列描述中正确的是( D )
4.下列描述中正确的是( C ).
5.下列选项中不属于软件生命周期开发阶段任务的是( C )
6.在软件生命周期中,能准备地确定软件系统必须做什么和必须具备哪些功能的阶段是( D ).
7.在结构化方法中,软件功能分解属于下列软件开发中的阶段是( C )
8.软件需求分析阶段的工作,可以分为四个方面:需求获取,需求分析,编写需求规格说明书,以及( B )。
9.从工程管理角度,软件设计一般分为两步完成,它们是( A )
10.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流合法图符的是( A )
11.在数据流图(DFD)中,带有名字的箭头表示( D )
12.下列工具中为需求分析常用工具的是( D )
13.下面不属于软件设计原则的是( C )
14. 软件测试的目的是( A )
15. 两个或两个以上模块之间的关联的紧密程度称为( A )
16.检查软件产品是否符合需求定义的过程称为( A )
17.软件调试的目的是( )
18.下列叙述中正确的是( D )
19.下列叙述中,正确的是( D )
20.下列叙述中,正确的是( C )
软件测试工程师笔试试题
首先,我不急于回答你的问题
你先自己检查一下自己所说的话语中有没有错误,软件测试最关键在于是细心,认真。
其次,你的问题
1.你们是怎样进行回归测试的,一般进行几轮,具体说一下?
2.你们一个项目总工要写多少用例?
3.你知道一个项目代码有多大?
4.你们公司的测试流程?
5.在测试之前,你们干什么?
6.测试计划中,你们项目经理是依据什么给你们分配任务的?
7.你们的测试数据主要来自哪?
8.测试过程中与开发因为BUG发生冲突,你们公司怎样解决?
9.具体讲一下容量测试,强度测试,负载测试的区别?
10.你们公司是怎样进行评审的?
11.你写的项目时间是整个项目从开始到结束的时间,还是只是测试时间?
12.开发在做项目的时候,测试在干嘛?
1、 一般就是先进行冒烟测试,首先确定这些被测试的软件能够运行,然后进行第一轮的测试,测出来问题之后经过项目经理签字确认然后发给每个程序员进行修改,确认回归测试的日期,回归测试时主要测试修改过的部分,同时兼顾不能引发其他方面的问题。一般情况第一轮回归测试完成之后不再出现问题,但是实际过程中会出现第二轮回归测试,如果出现第三轮回归测试,我们将提交问题到质量问题报告中。
2、 测试用例的多少主要要根据项目的大小而定,项目比较大,业务比较复杂的测试用例相对比较多,相反,项目比较小,业务比较简单的测试用例相对比较少一些。不是测试用例多就好,而是测试用例复用性好就说明测试用例选择的好。
3、 根据项目而定。
团队规模
周期长短 10人以上 5人-10人 3-5人 3人以下
6个月以上 一类 一类 二类 三类
2个月-6个月 一类 二类 三类 四类
2个月以下 二类 三类 三类 四类
4、 测试流程:
按照测试计划,项目经理提交测试文档和代码或者可执行文件-测试经理按照测试计划布置测试任务-首先测试工程师进行冒烟测试冒烟测试通过之后进入功能测试-发现bug之后记录bug,并对bug进行管理-一轮测试完毕之后提交项目经理确认-项目经理确认之后进行修改任务分派-程序员进行修改-修改完成之后提交给项目经理确认-之后提交给测试组进行回归测试,如果没有问题测试结束,如果出现问题-重复上面的工作进行第二轮测试。
5、 按要求,在测试之前,开发计划编制完成之后编制测试计划,需求阶段我们应该做系统测试方案和系统测试用例,在设计阶段我们应该编制集成测试方案和集成测试用例,在编码阶段,我们应该编制单元测试方案和单元测试用例。但是实际生活中,我们只编制系统测试计划和系统测试用例。
6、 测试经理给我们分配的任务应该是按照项目开发计划和每一位测试人员的水平及技术特长而定的。
7、 测试数据一般来自于用户需求、概要、详细、数据库设计文档、测试用例或用户实际数据。
8、 依据需求,通过沟通来解决问题,如果需求中不明确则参考设计并听取分析员的意见。
9、 负载测试是一种性能测试,指数据在超负荷环境中运行,程序是否能够承担,响应时间是多少,测试的结果和时间有关系,比如速率、响应时间。
强度测试:在一定的负载条件下,在较长时间跨度内的系统连续运行给系统性能所造成的影响,测试的结果看硬件是否满负荷,比如内存溢出等。
容量测试:确定系统可处理同时在线的最大用户数,测试的结果主要是针对数据库里的数据。
10、 在开发计划、用户需求、需求分析规格说明书、概要设计、详细设计、数据库设计等文档完成之后都要进行评审,这里的评审一般都是同行评审。一般都是以正式会议的形式进行。
11、 项目时间一般是指从项目立项到客户验收汇款这一段时间。不包括维护阶段。
12、 开发做分析设计及编码的时候测试在写测试用例,准备测试数据。
最后,告诉你,我不是做软件测试的,但是希望我所知道的这些能给予你帮助,我还有一份测试文档,不知能否帮助你,需要的话请找我。
希望你能成为这方面的人才专家!
上述就是xuefen.net小编通过网络搜集整理关于《软件工程》试题的全部内容了,希望能帮助到大家。