软件工程 第7章:实现2基于过程测试
- 格式:ppt
- 大小:1.02 MB
- 文档页数:58
第7章实现1.下面给出的伪码中有一个错误。
仔细阅读这段伪码,说明该伪码的语法特点,找出并改正伪码中的错误。
字频统计程序的伪码如下:答:(1)错误:INSERT the extracted word into the table在这个后面,没有给这个word的occurrence count赋值为1。
(2)语法特点:该伪代码在循环结构中嵌套循环结构,并且在嵌套的循环结构中又嵌套了IF ELSE结构。
2.研究下面给出的伪码程序,要求:(1)画出它的程序流程图。
(2)它是结构化的还是非结构化的?说明理由。
(3)若是非结构化的,则:a.把它改造成仅用3种控制结构的结构化程序;b.写出这个结构化设计的伪码;c.用盒图表示这个结构化程序。
(4)找出并改正程序逻辑中的错误。
答:(1)程序流程图,如图7-8所示。
图7-8程序流程图(2)此程序是非结构化的,它有一个GOTO语句,并且是从一个循环体内转到循环体外的一条件语句内部。
(3)①修改后的伪码,如图7-9所示。
图7-9修改后的伪码②修改后程序的盒图,如图7-10所示。
图7-10修改后程序的盒图(4)程序中的错误:①语句“IF WORD=KEYWORD”里的变量“WORD”没有预先赋值。
②程序中没有预先输入T的值。
③“N=0”应该是“MATCH=0”。
3.在第2题的设计中若输入的N值或KEYWORD不合理,会发生问题。
(1)给出这些变量的不合理值的例子。
(2)将这些不合理值输入程序会有什么后果?(3)怎样在程序中加入防错措施,以防止出现这些问题?答:(1)N=1,KEYWORD=#。
(2)不合理的值输入程序后无法打印出任何信息。
(3)可以通过加入循环来防止出现这些错误的问题。
4.回答下列问题。
(1)什么是模块测试和集成测试?它们各有什么特点?(2)假设有一个由1000行FORTRAN语句构成的程序(经编译后大约有5000条机器指令),估计在对它进行测试期间将发现多少个错误?为什么?(3)设计下列伪码程序的语句覆盖和路径覆盖测试用例:答:(1)①模块测试时对每个单独的模块,分别用黑盒和白盒测试技术,测试它地功能是否正确,检查模块控制结构中的特定路径并发现最大数量的错误。
软件工程考核知识点-第7章-软件测试7.1 软件测试的目的及原则7.1.1 软件测试的目的(1)软件测试是为了发现错误而执行程序的过程。
(2)一个好的测试用例能够发现至今尚未发现的错误。
(3)一个成功的测试是发现了至今尚未发现的错误的测试。
因此,测试阶段的基本任务应该是根据软件开发各阶段的文档资料和程序的内部结构,精心设计一组“高产”的测试用例,利用这些实例执行程序,找出软件中潜在的各种错误和缺陷。
7.1.2软件测试的原则在软件测试中,应注意以下原则:(1)测试用例应由输入数据和预期的输出数据两部分组成。
这样便于对照检查,做到"有的放矢"。
(2)测试用例不仅选用合理的输入数据,还要选择不合理的输入数据。
这样能更多地发现错误,提高程序地可靠性。
对于不合理地输入数据,程序应拒绝接受,并给出相应提示。
(3)除了检查程序是否做了它应该做的事,还应该检查程序是否做了它不应该做的事。
例如程序正确打印出用户所需信息的同时还打印出用户并不需要的多余的信息。
(4)应制定测试计划并严格执行,排除随意性。
(5)长期保留测试用例。
测试用例的设计耗费很大的工作量,必须作为文档保存。
因为修改后的程序可能有新的错误,需要进行回归测试。
同时,为以后的维护提供方便。
(6)对发现错误较多的程序段,应进行更深入的测试。
有统计数字表明,一段程序中所发现的错误数越多,其中存在的错误概率也越大。
因为发现错误数多的程序段,其质量较差。
同时在修改错误过程中又容易引入新的错误。
(7)程序员避免测试自己的程序。
测试是一种"挑剔性"的行为,心理状态是测试自己程序的障碍。
另外,对需求规格说明的理解而引入的错误则更难发现。
因此应由别的人或另外的机构来测试程序员编写的程序会更客观,更有效。
7.2 测试方法软件测试方法一般分为两大类:动态测试方法与静态测试方法,而动态测试方法中又根据测试用例的设计方法不同,分为黑盒测试与白盒测试两类。
软件工程(山东科技大学)知到章节测试答案智慧树2023年最新第一章测试1.软件是一种( )参考答案:逻辑产品2.产生软件危机的原因主要与两个方面的问题有关,它们是()参考答案:软件产品本身的特点与其它工业产品不一样,而且在软件的开发和维护过程中用的方法不正确3.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称为( )参考答案:软件危机4.在软件研究过程中,CASE是()参考答案:指计算机辅助软件工程第二章测试1.以下软件生命周期模型中不属于演化模型的是()参考答案:瀑布模型2.下列关于原型模型的说法,错误的是()参考答案:原型必须是可以运行的,原型做得越复杂,说明开发团队的水平越高3.CMM提供了一个成熟度等级框架,下面哪一级不属于CMM成熟度等级()参考答案:优先级4.基于构件的开发模型利用预先包装好的软件构件(包括组织内部开发的构件和现存商品化构件COTS)来构造应用系统。
参考答案:对5.喷泉模型认为软件生命周期的各个阶段是相互重叠和多次反复的。
主要用于面向对象方法中。
参考答案:对第三章测试1.可行性分析的结论主要由以下几类()参考答案:其他都对2.需求分析中开发人员要从用户那里了解()。
参考答案:软件做什么3.需求分析是()。
参考答案:软件开发工作的基础4.在需求分析过程中,分析员要从用户那里解决的最重要的问题是明确软件做什么。
()参考答案:对5.软件需求规格说明书在软件开发中具有重要的作用,它是软件可行性分析的依据。
()参考答案:错第四章测试1.为了提高模块的独立性,模块内部最好是()。
参考答案:功能内聚2.一个模块的()太大一般是因为缺乏中间层次,应当适当增加中间层次的控制模块。
参考答案:扇出3.模块的内聚性最高的是()。
参考答案:功能内聚4.模块的耦合性可以按照耦合程度的高低进行排序,以下哪一项符合从低到高的正确次序()。
参考答案:无直接耦合,数据耦合,控制耦合,内容耦合5.模块划分的最重要的原则是模块独立性原则()参考答案:对第五章测试1.SA法的主要描述手段有( )参考答案:DFD图、数据词典、加工说明2.数据流图是常用的进行软件需求分析的图形工具,其基本符号是()参考答案:加工、数据流、数据存储和外部实体3.某系统软件结构如下图所示,该软件结构的宽度为( )参考答案:34.变换型的DFD图可看成是对输入数据进行转换而得到输出数据的处理,因此可以使用事务分析技术得到初始的模块结构图。
第7章自测题及参考答案一、名词解释1. 软件测试2.黑盒法3.白盒法4.渐增式测试5.非渐增式测试6.调试二、填空题1.软件测试是为了_____而执行程序的过程。
2.运行被测程序的方法称为_______测试。
3.动态测试中,主要测试软件功能的方法称为______法。
4.选择测试用例,使得被测程序中每个判定的每个分支至少执行一次,这种逻辑覆盖标准称为_______。
5.要覆盖含有循环结构的所有路径是不可能的,一般通过限制_____来测试。
6.用等价类划分法设计测试用例时,如果被测程序的某个输入条件规定了取值范围,则可确定一个合理的等价类和_______。
7.凭经验或直觉推测程序中可能存在的错误而设计测试用例的方法是_______。
8.集成测试中的具体方法是______。
9.确认测试阶段的两项工作是______。
10.在单元测试中,测试一个模块时,需要设计_______。
三、选择题1.测试的关键问题是( )。
A.如何组织软件评审B.如何选择测试用例C.如何验证程序的正确性D.如何采用综合策略2.软件测试用例主要由输入数据和( )两部分组成。
A.测试计划B.测试规则C.预期输出结果D.以往测试记录分析3.成功的测试是指运行测试用例后( )。
A.未发现程序错误B.发现了程序错误C.证明程序正确D.改正了程序错误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.集成测试时,能较早发现高层模块接口错误的测试方法为( )。
软件工程课程教学大纲(SoftwareEngineering)学时数:32其中:实验学时:6课外学时:0学分数:2适用专业:计算机科学与技术一、课程的性质、目的与任务《软件工程》是计算机科学与技术专业教学计划中一门综合性和实践性很强的核心课程,主要内容包括软件工程概述、可行性分析、需求分析、概要设计、详细设计、面向对象分析与设计、编码、软件质量与质量保证、项目计划与管理。
根据培养基层应用型人才的需要,本课程的目的与任务是使学生通过本课程的学习,了解软件项目开发和维护的一般过程,掌握软件开发的传统方法和最新方法,为更深入地学习和今后从事软件工程实践打下良好的基础。
二、课程教学的基本要求(-)基本概念和基本知识:软件与软件工程,生存周期与软件开发模式,结构化分析、设计与编码,面向对象分析、设计与编码,软件的评审、测试与维护,项目计划与项目管理。
(二)基本技能:能用软件工程的方法参与软件项目的分析、设计、实现和维护重点:系统分析、系统设计、系统实现、系统维护难点:需求分析、软件测试课程的教学要求在每一章教学内容之后给出,大体上分为三个层次:了解、理解和掌握。
了解即能正确判别有关概念和方法:理解是能正确表达有关概念和方法的含义;掌握是在理解的基础上加以灵活应用三、课程的教学内容、重点和难点第一章概论一、软件(一)软件的发展;(二)软件的定义;(三)软件的特点、软件的种类。
二、软件工程的概念(一)软件危机与软件工程的定义;(二)软件工程的目标;(三)软件工程的原则。
三、软件生存周期与软件开发模型(一)瀑布模型、原型模型、螺旋模型、基于四代技术模型、面向对象与组件模型、混合模型。
教学要求:软件和软件工程的基本概念,软件生命周期及软件开发的各个模型重点:软件生存周期与软件开发模型第二章可行性分析一、可行性研究的任务二、可行性研究的步骤三、系统流程图四、成本/效益分析第三章需求分析一、需求分析的任务与步骤(一)需求分析的任务;(二)需求分析的步骤;(三)需求分析的原则。
软件工程智慧树知到课后章节答案2023年下山东财经大学山东财经大学第一章测试1.软件没有相应的文档,且最终不能满足用户要求是软件危机的一种表现。
()答案:对2.软件本身的不可见性和复杂性随规模的增加呈指数上升是产生软件危机的主要原因。
()答案:错3.开发软件就是写程序。
()答案:错4.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称()。
答案:软件危机5.以下对软件工程描述正确地是()。
答案:采用经过时间考验而证明正确的管理技术。
;一门工程学科。
;经济地开发出高质量的软件并有效地维护它。
;结合最好的技术方法。
6.软件生命周期中所花费费用最多的阶段是()。
答案:软件维护。
7.软件是()。
答案:程序、数据及其文档的集合。
8.同螺旋模型相比,原型模型主要缺少()。
答案:风险分析9.在软件生存周期模型中,不适应变化需求的软件开发模型是()。
答案:瀑布模型10.针对高质量软件的生产的软件过程模型()。
答案:净室模型第二章测试1.可行性研究的技术可行性是指现有技术是否可行。
()答案:对2.可行性研究的成本效益分析是从经济方面讨论是否可行。
()答案:对3.可行性分析研究的目的是()。
答案:项目值得开发否4.描绘物理系统的传统工具是()。
答案:系统流程图5.数据字典的基本功能是()。
答案:数据定义。
6.使用数据流图对工资系统进行需求分析建模,外部实体是()。
答案:接受工资单的银行7.数据流图的作用包括()。
答案:可以逻辑模型考虑系统的物理实现;作为交流信息的工具;作为分析和设计的工具8.典型环境下各个开发阶段需要使用的人力的百分比最多的是()。
答案:综合测试第三章测试1.需求分析阶段的产品是()。
答案:需求规格说明书。
2.进行需求分析可使用多种工具,但是()不适用。
答案:PAD图3.软件需求规格说明的内容不应该包括()。
答案:算法的描述。
4.在考察系统的一些涉及时序和改变的状况时,要用动态模型来表示。
软件⼯程习题答案第1章软件⼯程概述参考答案⼀. 选择题1. B2. A3. B4. B5. D6. B7. D8. A9. D⼆. 填空题1. 设计编码测试2. 软件费⽤可靠性可维护性可重⽤性及⽣产率等3. 计算机软件开发和维护4. 分解抽象和信息隐蔽⼀致性确定性5. 软件的总⽬标待开发软件的需求6. ⼆三7. 计划阶段开发阶段维护阶段8. 软件需求明确9. 制定计划风险分析开发实施⽤户评估三. 名词解释1. 软件的定义如下:在运⾏中能提供所希望的功能和性能的指令集,使程序能正确运⾏的数据结构,描述程序研制过程和⽅法所⽤的⽂档。
2. 软件⼯程是指导计算机软件开发和维护的⼀门学科。
3. 软件危机指的是软件开发和维护过程中遇到的⼀系列严重问题。
4. 就是从提出软件产品开始,直到该软件产品被淘汰的全过程。
5. 瀑布模型⼜称⽣存周期模型,由B.M.Boehm提出,是软件⼯程的基础模型。
其核⼼思想是按⼯序将问题化简,将功能的实现与设计分开,便于分⼯协作。
6. 螺旋模型将瀑布模型与演化模型结合起来,并且加⼊两种模型均忽略了的风险分析,弥补了两者的不⾜。
四. 简答题1. 软件既是知识产品,⼜是与汽车,建筑物⼀样的⼯业产品,此外,软件还具有类似艺术,学术那样的知识性创造和特点,软件的特点如下:软件是⼀种逻辑实体,⽽不是具体的物理实体,因⽽它具有抽象性;软件是通过⼈们的智⼒活动,把知识与技术转化成信息的⼀种产品,是在研制、开发中被创造出来的;在软件的运⾏和使⽤期间,没有硬件那样的机械磨损、⽼化问题;软件的开发和运⾏经常受到计算机系统的限制,对计算机系统有着不同程度的依赖关系;软件的开发尚未完全摆脱⼿⼯的开发⽅式;软件的开发费⽤越来越⾼,成本相当昂贵;软件的开发是⼀个复杂的过程,因⽽管理是软件开发过程中必不可少的內容。
2. 软件危机主要表现如下:产品不符合⽤户的实际需要;软件开发⽣产率提⾼的速度远远不能满⾜客观需要,软件的⽣产率远远低于硬件⽣产率和计算机应⽤的增长速度,使⼈们不能充分利⽤现代计算机硬件提供的巨⼤潜⼒;软件产品的质量差;对软件开发成本和进度的估计常常不准确;软件的可维护性差;软件⽂档资料通常既不完整也不合格;软件的价格昂贵,软件成本在计算机系统总成本中所占的⽐例逐年上升。
软件工程知到章节测试答案智慧树2023年最新湖南工学院第一章测试1.()因素促使计算机系统越来越复杂。
参考答案:外部输入/输出选项的更加多样性;计算机内存和存储容量上的巨大增长;计算机体系结构方面的深刻变化2.下面的哪一个问题不再是现代软件工程师关注的问题。
()参考答案:为什么计算机硬件的成本这么高?3.软件会逐渐退化而不会磨损,其原因在于()。
参考答案:不断的变更使组件接口之间引起错误4.大多数软件仍然是定制开发的,其原因在于()。
参考答案:软件在不使用其他组件的情况下很容易构造出来5.软件工程的基本目标是()。
参考答案:开发高质量的软件6.下列说法中正确的是()。
参考答案:20世纪60年代提出了软件工程的概念7.用来辅助软件开发、运行、维护、管理、支持等过程中的活动的软件称为软件开发工具,通常也称为()工具。
参考答案:CASE第二章测试1.软件过程的基本活动是()。
参考答案:分析、设计、实现、测试、演化2.软件开发的瀑布模型是()。
参考答案:适用于需求被清晰定义的情况3.软件开发的增量模型是()。
参考答案:一种需要快速构造核心产品的好方法4.快速原型开发模型是()。
参考答案:适用于客户需求难以清楚定义的情况5.软件生存周期模型有多种,下列选项中,( )不是软件生存周期模型。
参考答案:功能模型6.包括风险分析的软件工程模型是()。
参考答案:螺旋模型7.软件开发过程是()。
参考答案:软件开发活动的集合8.增量模型本质上是()。
参考答案:线性顺序模型第三章测试1.下列哪个阶段属于问题定义时期()。
参考答案:可行性研究2.数据流图是常用的进行软件需求分析的图形工具,其基本元素包括()。
参考答案:加工、数据流、数据存储和外部实体3.判定表和判定树是数据流图中用以描述加工的工具,它通常描述的对象是()。
参考答案:组合组件4.绘制数据流图应依照什么设计思想展开()。
参考答案:自顶向下,逐步求精5.可行性分析是解决项目的()问题。