中科大软测期末复习_集思广益

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1软件定义:能够完成预定功能和性能的可执行的指令(计算机程序);使得程序能够适当地操作信息的数据结构;描述程序的操作和使用的文档.软件测试定义:IEEE/ANSI标准:在既定的状况条件下,运行一个系统或组建,观察记录结果,并对其某些方面进行评价的过程。《软件测试技巧》:软件测试是为了发现错误而运行程序的过程。广义软件测试的定义:由确认、验证、测试3方面组成。软件开发过程:需求分析(可行性报告,项目初步开发计划,需求规格说明,用户手册概要,测试计划);设计(概要:建立系统总体结构,划分功能模块;定义各功能模块接口;数据库设计;指定组装测试计划.详细:设计各模块具体实现算法;确定模块间的详细接口;指定模块测试方案)[设计说明书,测试计划]编码(编程,进行模块调试和测试,编写用户手册)[调试报告,用户手册]测试、维护(纠错、适应、增强、预防)软件质量:与软件产品满足规定的和隐含需求的能力有关的特性1.运行质量成本:企业内部损失成本、鉴定成本、预防成本和外部损失成本软件=程序(数据)+文档+服务2.软件产品组成部分:程序代码、帮助文件、用户手册、样本和示例、标签、产品支持信息、图表和标志、错误信息、广告与宣传材料、软件的安装、软件说明文件、测试错误提示信息3.软件特征:功能的多样性、实现的多样性、能见度低、结构的合理性差4.项目MM:全程负责整个软件项目的开发。系统设计师:设计整个系统构架或软件构思。程序员:负责设计、编写程序,并修改软件中的缺陷。软件测试员(QA):负责找出并报告软件产品的问题,与开发组密切合作,进行测试并报告发现的问题。技术制作、用户助手、用户培训员、手册编写和文件档案专员:负责编写软件产品附带的文件和联机文档。结构管理和制作人员:负责将程序员编写的全部文档资料合并成一个软件包5.软件生命周期:6.维护阶段可能遇到四类修改要完成:纠错、适应、增强、预防7.软件开发模型:a.瀑布模式(优点:保证整个软件产品较高的质量和系统在整体上的充分把握,使系统具备良好的扩展性和可维护性):易于理解、调研开发的阶段性、强调早期计划及需求调查、确定何时产生可交付的产品及何时进行评审和审查、强调产品测试大棒模式(既没有规格说明,没有经过设计,软件随客户需要不断被修改):优点(简单)几乎无计划。可能是开发者的“突发奇想”,项目成员精力都花在开发软件和编写代码上。缺点:开发过程非工程化,随意性大。最终的软件产品是什么样不可知。边写边改模式(在大棒模式基础上考虑了产品的要求。项目成员通常只有粗略的想法就进行简单的设计,然后开始漫长的编码、测试、修复这样一个循环的过程。在认为无法更精细的描述软件产品要求时,就发布产品):优点:能够较为迅速展现成果,适合需要快速制作而且用完就扔的小项目.缺点:编码和测试可能是长期循环往复的过程。原型模式(基本需求分析后,快速开发出产品原型,然后基于这个原型,更好了解客户需求,不断修改这个原型,到双方认可的程度,再详细分析、设计和编程,最终开发出令客户满意的产品)快速应用(RAD)模式(通过使用基于构件的开发方法来缩短产品开发周期,提高开发速度。实现的前提是做好需求分析,且项目范围明确,这点正好和原型模型相反)增量模式:描述软件产品不同阶段是按产品所具有的功能进行划分,先开发主要功能或用户最需要的功能,随着时间推进,不断增加新的辅助功能或次要功能,最终开发出强大的、功能完善的、高质量的、稳定的产品。迭代模式:描述软件产品不同阶段是按产品深度或细化程度来划分。先将产品的整个框架建立起来,在系统初期,已具有用户所需求全部功能。随着时间推进,不断细化已有功能或完善已有功能,这个过程好像是一个迭代的过程。最终实现一个强大、功能完善、高质量、稳定的产品螺旋模式:开始时不必详细定义所有细节,从小开始,定义重要功能,尽量实现,接受客户反馈,进入下一阶段,并重复上述过程,直到获得最终产品。敏捷开发敏捷方法论采用迭代/增量开发的过程模型:以人为核心、迭代、循序渐进的开发方法。组织上,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。时间上,相对于传统的瀑布式开发,迭代开发把软件生命周期分成很多个小周期(一般不大于2个月,建议2周)每一次迭代都可以生成一个可运行、可验证的版本并确保软件不断的增加新的价值敏捷开发方法:精益开发(LeanDevelopment)、极限编程(XP)[编写用户案例,架构规范,实施规划,迭代计划,代码开发、单元测试、验收测试]、Scrum(是一个敏捷开发框架,由一个开发过程,几种角色以及一套规范的实施方法组成.可运用于软件开发,项目维护,也可用来作为一种管理敏捷项目的框架)定义了四种角色:产品拥有者、利益相关者、Scrum专家、团队成员进入sprint开发周期,在此周期内,每天需要召开DailyScrummeeting敏捷开发原则和方法:迭代式开发、增量交付、开发团队和用户反馈推动产品开发、持续集成、开发团队自我管理MSF:经验知识库(若干原则和准则:基础原则:观念、项目管理准则、风险管理准则、就绪管理准则二种模型:小组模型、监管模型)UML代表着软件建模的发展趋势8.敏捷宣言:个体和交互胜过过程和工具、可以工作的软件胜过面面俱到的文档、客户合作胜过合同谈判、响应变化胜过遵循计划MSF检查点主要检查站和临时检查点MSF准则:风险管理:风险识别、分析、计划、跟踪、控制、学习就绪管理:定义、评估、变更(培训、进度跟踪),评价项目管理:项目范围、变更控制、预算、成本控制和时间表、沟通、供应商管理、9.RUP:面向对象且基于网络的程序开发方法论RUP软件开发生命周期是一个二维的软件开发模型RUP迭代式开发(生命周期):周期、阶段、迭代和里程碑周期(四阶段):初始、细化、构造、提交(动态结构:每个阶段分解为迭代)RUP迭代开发过程(迭代的个数、每个迭代的延续时间、目标)是受控的静态结构:RUP采用以下四个基本模型元素,组织和构造系统开发过程Workers(角色)、Activities(明确目的的独立工作单元)、Artifact(多种形式存在:模型、源代码、可执行文件和文档)、Workflows(产生一些有价值的Artifacts)两种组织WF的方式:核心工作流(9个(6个核心过程+3个核心支持),被轮流使用,在每一次迭代中以不同重点和强度重复)和迭代工作流RUP裁剪分以下几步:1)确定本项目需要哪些工作流。2)确定每个工作流需要哪些制品。3)以风险控制为原则确定4个阶段之间如何演进。4)确定每个阶段内的迭代计划。规划RUP的4个阶段中每次迭代开发的内容。5)规划工作流内部结构。通常用活动图的形式给出最佳软件工程实践:迭代式开发、管理需求、基于组件的体系结构、可视化建模、验证软件质量、控制软件变更10.不同的项目需要不同的方法论,一个项目的最佳过程是这个项目所能负担的最小过程自我定义的软件过程是最好的11.模型的是指:对现实的简化混合模型、12.建模目标:便于展现系统、允许指定系统的结构或行为、提供构造系统的模板、记录决策两种建模方法:基于算法(难维护)、面向对象(主要模块是对象或类)13.模型图:结构类(类图、对象图、组件图、配置图)、行为类(用例图、序列图、行为图、协作图、状态图)、模型管理类(软件包、子系统、模型)14.缺陷(破坏程序正常运行)error:在软件生存期内不希望或不可接受的人为错误,其结果是导致软件缺陷的产生。bug:是存在于软件(文档、数据、程序)之中不希望或不可接受的偏差。其结果是软件运行于某一特定条件时出现软件故障,这时称软件缺陷被激活。fault:运行过程中出现的不希望或不可接受的内部状态。此时若无适当措施(容错)加以及时处理,便产生软件失效。failture:是指软件运行时产生的一种不希望或不可接受的外部行为结果15.错误分类(软测观点):功能错误、系统错误、加工错误、数据错误、代码错误逻辑错误(按生存期不同阶段分):问题定义错误、规格说明错误、设计错误、编码错误16.缺陷构成(技术、团队、软件本身)17.软件缺陷状态:激活(问题还没解决)、已修正(问题解决或通过单元测试)、关闭或非激活(bug已改)、Hold(无法解决的bug)、Differed(不需解决)18.可靠性指标:MTBF:平均故障间隔时间(t失效时间)MTTF:平均故障时间软件测试则是保证软件质量、提高软件可靠性的最重要手段测试与开发:项目规划:负责从单元测试到系统测试的整个测试阶段的监控。需求分析:确定测试需求分析、系统测试计划的制定.评审后成为管理项目设计:确保集成测试计划和单元测试计划完成。编码:由开发人员进行自己负责部分测试代码.项目较大时,由专人进行编码阶段的测试任务。测试(单元集成系统):依据测试代码进行测试并提交相应测试状态报告和测试结束报告软件错误不可避免19.测试步骤:详细规定了如何设置、执行、评估特定的测试用例。精确和准确:准确是指得到的测试结果与真实值之间的接近程度。精确是指同样环境下重复测测试所得到的结果之间的重现性。确认和验证:确认是保证软件符合产品说明书的过程。验证是保证软件满足用户要求的过程。20.测试分类:按测试过程:单元、集成、确认、系统、验收。按测试用2例设计方法分:白盒(结构或逻辑驱动测试[语句覆盖、判定覆盖(支覆盖)、条件覆盖、判定/条件覆盖、条件组合覆盖、基本路径测试])、黑盒(功能或数据驱动测试)、灰盒测试(介于黑白之间)按实施对象分:Alpha测试(企业内部测试):由用户在开发环境下进行测试,也可由公司内部的用户在模拟实际操作环境下进行的受控测试。Beta测试(最终用户测试):是软件的多个用户在实际环境下进行的测试。第三方测试(独立测试)按执行方式分:人工测试:手工执行的测试;自动化测试按测试方式分:静态测试:只对被测程序进行特性分析(文档评审、代码检查、代码度量)包括检查单和静态分析方法测试的内容与选择的测试方法有关动态测试:必须真正运行被测试的程序(主要是白盒为主和黑盒为辅)通常对软件单元的功能、性能、接口、局部数据结构、独立路径、出错处理、边界条件和内存使用情况进行测试按测试形态分:建构性测试(当程序还是处于建设阶段时所进行的测试;是属于前置性的测试,它主要是偏重于程序端的功能测试,以确保程序执行运行正常);系统测试(针对概要设计,是针对系统的行为来做测试;是属于中后期的整合测试,所进行的测试是以使用者的观点为主,模拟外界使用者会如何的使用产品);特殊测试:根据产品的本质特性来安排或剔除特殊测试完全测试是不可能的,测试需要终止测试原则:尽早和不断测试;测试用例要有测试输入和对应的输出;程序员避免检查自己的程序;设计测试用例应包含合理的和不合理的输入条件;妥善保存测试计划,测试用例,出错统计和最终分析报告;测试需要终止;进行正确判断;对每一个测试做全面的检查;时间服从质量;合理取舍,根据风险分析决定哪些故障必须修复,哪些故障可以不修复21.好测试用例4特性:检测软件质量的有效性,是否能发现缺陷,或至少可能发现缺陷;可仿效的测试用例可以测试很多内容,因而减少测试用例的数量;经济性,测试用例的执行、分析和调试是否经济;测试用例的可修改性,每次软件修改后对测试用例的维护成本22.V模型价值:非常明确标明测试过程中的不同级别,并且描述了这些测试阶段和开发过程各阶段的对应关系23.(每阶段要检测)测试对象是程序需求分析验收测试概要测试(开发之后测试)系统测试详细设计集成测试编码单元测试价值明确标明测试过程中不同级别,并描述了这些测试阶段和开发过程各阶段的对应关系问题:测试在开发之后、测试对象是程序本身、易导致需求阶段的错误直到系统测试阶段才被发现24.W模型(整个开发周期测试对象:程序需求设计):是V模型的改进,主要思想:尽早和不断地进行软件测试。优点:强调了测试计划等工作的先行和对系统需求和设计的测试。缺点:没有对软件测试流程予以说明25.H模型(将测试作为独立流程,贯穿整个开发周期,与其他流程并行,同时测试准备和测试执行分

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功