版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1第1章软件质量和测试概述2内容提要1.1 软件特征与软件工程 1.1.1 软件分类 1.1.2 层次化软件工程 1.1.3 软件范型的转变 1.1.4 现代软件开发 1.2 软件质量 1.2.1 质量概念 1.2.2 质量运动 1.2.3 软件质量概念 1.2.4 软件质量评价体系与标准 1.3 软件测试与可靠性概述 1.3.1 软件测试的意义 1.3.2 软件测试的定义 1.3.3 软件测试方法 1.3.4 软件测试自动化 1.3.5 软件缺陷的修复费用 1.4 软件质量保证与测试人才的特点 1.4.1 现代软件研发对软件人才的需求 1.4.2 优秀的软件测试员应具备的素质 1.5 小结 31.1 软件特征与软件工程要理解软件的含义并全面地理解软件工程,我们首先要明确软件的特征,并据此知道软件与人类建造的其它事物之间的区别。IEEE定义对软件的定义如下:软件是计算机程序、规程以及可能的相关文档和运行计算机系统需要的数据。软件包含计算机程序、规程、文档和软件系统运行所必需的数据四个部分。4软件具有与硬件完全不同的特征软件是开发产生的,而不是用传统方法制造。软件不会像硬件一样有磨损。很多软件不能通过已有构件组装,只能自己定义。5硬件、软件失效曲线图61.1.1 软件分类当前的计算机软件分为七个大类,使得软件工程正面临持续的挑战:系统软件应用软件Web应用软件工程和科学软件嵌入式软件产品线软件人工智能软件7新的挑战也逐渐显现出来普适计算网络资源开源软件新经济81.1.2 层次化软件工程FritzBauer在NATO(北大西洋公约组织)会议上给出的定义仍是我们进一步展开讨论的基础:软件工程:是为了经济地获得可靠的和能在实际机器上高效运行的软件而建立和使用的好的工程原则。美国电气和电子工程师协会(InstituteofElectricalandElectronicsEngineers,IEEE)给出了一个更加综合的定义:软件工程:(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。(2)(1)中所述方法的研究。9软件过程、软件方法和软件工具10软件工程的视图抛开要工程化的实体,我们必须先回答下列问题:要解决的问题是什么?要用于解决该问题的实体具有什么特点?如何实现该实体?其解决方案是怎样的?如何建造该实体?采用什么方法去发现该实体设计和建造过程中产生的错误?当该实体的用户要求修改、适应和增强时,如何支持这些活动?11三个阶段我们可以把与软件工程相关的工作分为三个阶段,其中的每个阶段能够回答上述的一个或多个问题:定义阶段针对“做什么”开发阶段针对“如何做”维护阶段针对“改变”
12补充说明还有很多保护性活动用来补充说明在软件工程的一般视图中的各个阶段和相关步骤,这些典型的贯穿于整个软件过程中的活动包括:软件项目追踪和控制正式的技术复审软件质量保证软件配置管理文档的准备和产生可复用管理测试风险管理131.1.3 软件范型的转变141.1.4 现代软件开发传统软件开发和现代软件开发软件团队与软件开发人员的培养151.2 软件质量有些软件开发者仍然相信软件质量是在编码之后才应该开始担心的事情。这是荒谬的,因为软件质量保证(SoftwareQualityAssurance,SQA)是一种应用于整个软件过程的保护性活动,它包括:一种质量管理方法,有效的软件工程技术(方法和工具)在整个软件过程中采用的正式技术复审一种多层次的测试策略对软件文档及其修改的控制保证软件遵从软件开发标准的规程度量和报告机制161.2.1 质量概念我们应从以下几个方面考虑软件质量:软件结构方面功能与性能方面开发标准与文档方面171.2.2 质量运动全面质量管理通常都包括以下4个步骤:第1步是指一个连续的过程改进系统,其目标在于开发一个看的见的、可重复的和可度量的软件过程。第2步只第1步完成之后才可启动。这一步将检查影响过程的其它因素,并优化这些因素对过程的影响。例如,软件过程可能受到高层职员流动的影响,而该影响则是公司内部不断重组而引起的。一个稳定的公司组织会对软件质量的提高带来很大的帮助,所以第2步可以帮助管理者对公司重组方式提出建议。前面两个步骤关注的是过程,第3步(或称为“第五感觉”)则关注软件产品的用户,它是通过检查用户使用产品的方式,而导致产品本身的改进和潜在地改进产品的生产过程。第4步将管理者的注意从当前的产品上移开并拓宽。作为一个面向商业的步骤,该步骤通过观察产品的市场用途,来寻找产品在相关领域中的发展机会。在软件领域,第4步可以被视为一种发现有利可图的新产品,或视作寻找当前计算机系统的副产品用途的努力。181.2.3 软件质量概念IEEE关于软件质量的定义:软件质量是系统、部件或者过程满足规定需求的程度。系统、部件或者过程满足顾客或者用户需要或期望的程度。该定义相对客观,强调了产品(或服务)和客户/社会需求的一致性。ANSI关于软件质量的定义:按照ANSI(AmericanNationalStandardsInstitute,美国国家标准学会)在1983年的标准陈述,软件质量定义为“与软件产品满足规定的和隐含的需求的能力有关的特征和特性的全体”。具体包括软件产品中能满足用户给定需求的全部特性的集合,软件具有所期望的各种属性组合的程度,用户主观得出的软件是否满足其综合期望的程度,决定所用软件在使用中将满足其综合期望程度的软件合成特性。196个主要特征我们把各类软件综合起来看,可以列出下列6个主要特征:功能性:软件实现的功能达到要求的和隐含的用户需求以及设计规范的程度,可靠性:软件在指定条件和特定时间段内维持性能的能力程度,易使用性:用户使用该软件所付出的学习精力,效率:在指定条件下,软件功能与所占用资源之间的比值,可维护性:当发现错误、运行环境改变或客户需求改变时,程序能修改的容易程度,可移植性:将软件从一种环境移入另一种环境的容易程度。201.2.4 软件质量评价体系与标准IEEE给出软件质量保证的定义,软件质量保证(SQA)是:一种有计划的,系统化的行动模式,它是为项目或者产品符合己有技术需求提供充分信任所必需的。设计用来评价开发或者制造产品的过程的一组活动,与质量控制有区别。质量保证与质量控制的区别QA是对人、对过程,致力于使管理者、顾客和其他相关方相信有能力满足质量要求,更多的是体现在流程制度上;QC是对人事、对物,直接致力于满足质量要求,体现在质量把关的具体工作过程中。2122QAQC全称质量保证(QualityAssurance,QA)质量控制(QualityControl,QC)角色QA工程师测试工程师,评审员定义为了确保软件开发过程、工件符合预期的结果,依照过程和计划采取的一系列活动及其结果评价为了发现软件产品的错误、缺陷而进行工作的过程职责监控公司质量保证体系的运行情况,审计项目的实际执行情况和公司规范之间的差距,并出具统计分析报告和改进建议。是过程、产品的审计者。对每个阶段或者关键点的工件进行检查,评估工件是否符合预计的质量要求。关注各阶段的评审和测试缺陷。是产品质量检查者。分工原则QA只要检查项目按照过程进行了某项活动没有,产出了某个产品没有QC检查产品是否符合质量要求SQA活动为项目准备SQA计划。参与开发项目的软件过程描述。评审各项软件工程活动,对其是否符合定义好的软件过程进行核实。审计指定的软件工作产品,对其是否符合事先定义好的需求进行核实。确保软件工作及产品中的偏差已记录在案,并根据预定的规程进行处理。记录所有不符合的部分并报告给高级领导者。23SQA举例SQA实例24251.3 软件测试与可靠性概述1.3.1 软件测试的意义为什么要进行软件测试?视频Bug故事视频PIE模型Bug---GraceHopperdeBug261.3 软件测试与可靠性概述1.3.1 软件测试的意义迪斯尼狮子王缺陷英特尔浮点除法缺陷人造陨石坑缺陷程序员的千年虫问题Windows的输入法漏洞爱国者导弹缺陷271.3.2 软件测试的定义1983年,IEEE在提出的软件测试文档标准(IEEEStandardForSoftwareTestDocument),即IEEE829-1983中对软件测试进行了准确的定义:软件测试是使用人工或自动手段来运行或测定某个系统的过程,检验它是否满足规定的需求或者弄清预期结果与实际结果之间的差别。IEEE在1990年颁布的软件工程标准术语集中沿用了这一概念,该概念非常明确的提出了软件测试以检验是否满足需求为目标。其次,G.J.Myers在其经典论著《软件测试的艺术》中对软件测试提出如下观点:测试是程序的执行过程,目的在于发现错误,一个好的测试用例可以发现至今尚未发现的错误,一个成功的测试能发现至今未发现的错误。281.3.3 软件测试方法1.静态方法和动态方法2.黑盒测试、白盒测试和灰盒测试3.基于软件开发阶段的测试方法需求测试单元测试集成测试性能测试压力测试容量测试配置测试回归测试安装测试安全性测试291.3.4 软件测试自动化白盒测试工具功能测试工具负载压力测试工具测试管理工具301.3.5 软件缺陷的修复费用311.4 软件质量保证与测试人才的特点1.4.1 现代软件研发对软件人才的需求传统软件人才的特点创新软件人才的特点敢冒风险敢冒风险有雄心壮志有雄心壮志能学习,适应新环境能学习,适应新环境实事求是的作风创新精神有克服困难的毅力如果对问题有兴趣,则有热情、有主动性扎实的理论基础,尤其是数学独立从事研究的能力很强的编程能力题目想的远、做的深讲纪律、讲服从对什么事都有主见对许多事情都没有主见,即使有想法也不敢说直截了当地沟通甚至批评和争论32研发方法的差别创新研发方法非创新研发方法想着做事情坐着想事情经过科学手段、大量的数据、可重复的深入研究肤浅的、无用的、无法扩张的简单结果研究、理解、借用别人的结果不看别人的研究,或只抄袭别人的研究成果经过亲自的设计工程原型,证实对用户有用理论的、没用的纸上谈兵承认失败,从头开始不承认失败,永无止境地延续研究33现代软件研发对软件人才提出的要求专业基础和创新能力具备主人翁精神良好的团队精神从错误中学习的能力341.4.2 优秀的软件测试员应具备的素质软件测试员是探索者:软件测试员不会害怕进入陌生环境,他们喜欢拿到新的软件,安装在自己的机器上并观看结果。软件测试员是故障排除员:软件测试员善于发现问题的症结,他们喜欢解谜。软件测试员不放过蛛丝马迹:软件测试员总在不停地尝试。他们可能会碰到转瞬即逝或者难以证实的软件缺陷,当然,他们不会当作视偶然而轻易放过,而会想尽一切可能去发现它们。软件测试员具有创造性:这是对测试是显而易见的。软件测试员的工作是要想出富有创意审视超常的手段来寻找缺陷。软件测试员是追求完美者:软件测试员力求完美,但是当知道某些无法企及时,他们不去苛求,而是尽力接近目标。软件测试员判断准确:软件测试员要判断测试内容、测试时间、以及看到的问题是否是真正的缺陷。软件测试员注重策略和外交:软件测试员常常带来的坏消息。他们必须告诉程序员,你的程序很糟糕。好的软件测试员知道以怎样的策略来沟通这些问题,他们也能够和有时不够冷静的程序员合作。软件测试员善于说服:软件测试员找出的缺陷有时会被认为不重要且不用修复。这时测试员要善于清晰地表达自己的观点,说明软件缺陷为何需要修复,并且推进缺陷的修复。测试人员和开发人员的交流35361.5 小结从上面讨论的结果可知,软件质量保证是建立一套有计划
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 10.现代建筑教学设计初中美术浙教版九年级下册-浙教版
- 5.5 点击新材料教学设计初中物理沪粤版八年级上册-沪粤版2012
- 1.3 直角三角形全等的判定教学设计初中数学湘教版2012八年级下册-湘教版2012
- 2025-2026学年比轻重中班教案
- 5.3 算法的三种基本逻辑结构和框图表示法教学设计中职基础课-职业模块 服务类-语文版-(数学)-51
- 事业单位合并审计制度
- 人大教育培训工作制度
- 企业技术培训教育制度
- 优化审计人才管理制度
- 供应室感控培训教育制度
- 2026年安徽新闻出版职业技术学院单招职业技能考试题库含答案详解
- 第一单元连接世界的丝绸之路2丝路视觉笔记++课件+2025-2026学年人美版初中美术八年级下册
- 《林海雪原》主要情节与重要事件(速记清单)解析版-2025-2026学年六年级语文下册整本书阅读(统编版五四学制)
- 2026-2028年中国冰棍行业生态全景与战略纵深研究报告:政策、技术、资本与消费四重驱动下的产业重构与机遇地图
- 国家职业资格认证考试报名试题及答案
- 公司级安全教育培训考试卷测试题(答案)
- (正式版)DB51∕T 2732-2025 《用材林培育技术规程 杉木》
- 《西游记知识竞赛》题库及答案(单选题100道)
- DB34∕T 5225-2025 风景名胜区拟建项目对景观及生态影响评价技术规范
- 2026年苏州工业职业技术学院单招职业技能测试必刷测试卷附答案
- 2025年陕西省中考化学试题答案解读及备考指导课件
评论
0/150
提交评论