




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1章 软件质量和测试概述1内容提要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小结21.1软件特征与软件工程要理解软件的含义并全面地理解软件工程,我们首先要明确
2、软件的特征,并据此知道软件与人类建造的其它事物之间的区别。IEEE定义对软件的定义如下:软件是计算机程序、规程以及可能的相关文档和运行计算机系统需要的数据。软件包含计算机程序、规程、文档和软件系统运行所必需的数据四个部分。3软件具有与硬件完全不同的特征软件是开发产生的,而不是用传统方法制造。软件不会像硬件一样有磨损。很多软件不能通过已有构件组装,只能自己定义。4硬件、软件失效曲线图 51.1.1软件分类当前的计算机软件分为七个大类,使得软件工程正面临持续的挑战:系统软件应用软件Web应用软件工程和科学软件嵌入式软件产品线软件人工智能软件 6新的挑战也逐渐显现出来 普适计算网络资源开源软件新经济
3、 71.1.2层次化软件工程Fritz Bauer在NATO(北大西洋公约组织)会议上给出的定义仍是我们进一步展开讨论的基础:软件工程:是为了经济地获得可靠的和能在实际机器上高效运行的软件而建立和使用的好的工程原则。美国电气和电子工程师协会(Institute of Electrical and Electronics Engineers,IEEE)给出了一个更加综合的定义:软件工程:(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。(2)(1)中所述方法的研究。8软件过程、软件方法和软件工具 9软件工程的视图 抛开要工程化的实体,我们必须先回答
4、下列问题:要解决的问题是什么?要用于解决该问题的实体具有什么特点?如何实现该实体?其解决方案是怎样的?如何建造该实体?采用什么方法去发现该实体设计和建造过程中产生的错误?当该实体的用户要求修改、适应和增强时,如何支持这些活动?10三个阶段我们可以把与软件工程相关的工作分为三个阶段,其中的每个阶段能够回答上述的一个或多个问题:定义阶段针对“做什么”开发阶段针对“如何做”维护阶段针对“改变” 11补充说明还有很多保护性活动用来补充说明在软件工程的一般视图中的各个阶段和相关步骤,这些典型的贯穿于整个软件过程中的活动包括:软件项目追踪和控制正式的技术复审软件质量保证软件配置管理文档的准备和产生可复用管
5、理测试风险管理121.1.3软件范型的转变131.1.4现代软件开发传统软件开发和现代软件开发软件团队与软件开发人员的培养141.2软件质量有些软件开发者仍然相信软件质量是在编码之后才应该开始担心的事情。这是荒谬的,因为软件质量保证(Software Quality Assurance,SQA)是一种应用于整个软件过程的保护性活动,它包括:一种质量管理方法,有效的软件工程技术(方法和工具)在整个软件过程中采用的正式技术复审一种多层次的测试策略对软件文档及其修改的控制保证软件遵从软件开发标准的规程度量和报告机制151.2.1质量概念我们应从以下几个方面考虑软件质量:软件结构方面功能与性能方面开发
6、标准与文档方面161.2.2质量运动全面质量管理通常都包括以下4个步骤:第1步是指一个连续的过程改进系统,其目标在于开发一个看的见的、可重复的和可度量的软件过程。第2步只第1步完成之后才可启动。这一步将检查影响过程的其它因素,并优化这些因素对过程的影响。例如,软件过程可能受到高层职员流动的影响,而该影响则是公司内部不断重组而引起的。一个稳定的公司组织会对软件质量的提高带来很大的帮助,所以第2步可以帮助管理者对公司重组方式提出建议。前面两个步骤关注的是过程,第3步(或称为“第五感觉”)则关注软件产品的用户,它是通过检查用户使用产品的方式,而导致产品本身的改进和潜在地改进产品的生产过程。第4步将管
7、理者的注意从当前的产品上移开并拓宽。作为一个面向商业的步骤,该步骤通过观察产品的市场用途,来寻找产品在相关领域中的发展机会。在软件领域,第4步可以被视为一种发现有利可图的新产品,或视作寻找当前计算机系统的副产品用途的努力。171.2.3软件质量概念IEEE关于软件质量的定义:软件质量是系统、部件或者过程满足规定需求的程度。系统、部件或者过程满足顾客或者用户需要或期望的程度。该定义相对客观,强调了产品(或服务)和客户/社会需求的一致性。ANSI关于软件质量的定义:按照ANSI(American National Standards Institute,美国国家标准学会)在1983年的标准陈述,软
8、件质量定义为“与软件产品满足规定的和隐含的需求的能力有关的特征和特性的全体”。具体包括软件产品中能满足用户给定需求的全部特性的集合,软件具有所期望的各种属性组合的程度,用户主观得出的软件是否满足其综合期望的程度,决定所用软件在使用中将满足其综合期望程度的软件合成特性。186个主要特征我们把各类软件综合起来看,可以列出下列6个主要特征:功能性:软件实现的功能达到要求的和隐含的用户需求以及设计规范的程度,可靠性:软件在指定条件和特定时间段内维持性能的能力程度,易使用性:用户使用该软件所付出的学习精力,效率:在指定条件下,软件功能与所占用资源之间的比值,可维护性:当发现错误、运行环境改变或客户需求改
9、变时,程序能修改的容易程度,可移植性:将软件从一种环境移入另一种环境的容易程度。191.2.4软件质量评价体系与标准IEEE给出软件质量保证的定义,软件质量保证(SQA)是:一种有计划的,系统化的行动模式,它是为项目或者产品符合己有技术需求提供充分信任所必需的。设计用来评价开发或者制造产品的过程的一组活动,与质量控制有区别。20质量保证与质量控制的区别QA是对人、对过程,致力于使管理者、顾客和其他相关方相信有能力满足质量要求,更多的是体现在流程制度上;QC是对人事、对物,直接致力于满足质量要求,体现在质量把关的具体工作过程中。2122SQA活动为项目准备SQA计划。参与开发项目的软件过程描述。
10、 评审各项软件工程活动,对其是否符合定义好的软件过程进行核实。 审计指定的软件工作产品,对其是否符合事先定义好的需求进行核实。确保软件工作及产品中的偏差已记录在案,并根据预定的规程进行处理。记录所有不符合的部分并报告给高级领导者。23SQA举例SQA实例241.3软件测试与可靠性概述1.3.1软件测试的意义为什么要进行软件测试?视频 Bug故事视频 PIE模型Bug-Grace HopperdeBug251.3软件测试与可靠性概述1.3.1软件测试的意义迪斯尼狮子王缺陷英特尔浮点除法缺陷人造陨石坑缺陷程序员的千年虫问题Windows的输入法漏洞爱国者导弹缺陷261.3.2软件测试的定义1983
11、年,IEEE在提出的软件测试文档标准(IEEE Standard For Software Test Document),即IEEE 829-1983中对软件测试进行了准确的定义:软件测试是使用人工或自动手段来运行或测定某个系统的过程,检验它是否满足规定的需求或者弄清预期结果与实际结果之间的差别。IEEE在1990年颁布的软件工程标准术语集中沿用了这一概念,该概念非常明确的提出了软件测试以检验是否满足需求为目标。其次,G. J. Myers在其经典论著软件测试的艺术中对软件测试提出如下观点:测试是程序的执行过程,目的在于发现错误,一个好的测试用例可以发现至今尚未发现的错误,一个成功的测试能发现
12、至今未发现的错误。271.3.3软件测试方法1. 静态方法和动态方法2. 黑盒测试、白盒测试和灰盒测试3. 基于软件开发阶段的测试方法需求测试单元测试集成测试性能测试压力测试容量测试配置测试回归测试安装测试安全性测试281.3.4软件测试自动化白盒测试工具功能测试工具负载压力测试工具测试管理工具291.3.5软件缺陷的修复费用301.4软件质量保证与测试人才的特点1.4.1现代软件研发对软件人才的需求传统软件人才的特点创新软件人才的特点敢冒风险敢冒风险有雄心壮志有雄心壮志能学习,适应新环境能学习,适应新环境实事求是的作风创新精神有克服困难的毅力如果对问题有兴趣,则有热情、有主动性扎实的理论基础
13、,尤其是数学独立从事研究的能力很强的编程能力题目想的远、做的深讲纪律、讲服从对什么事都有主见对许多事情都没有主见,即使有想法也不敢说直截了当地沟通甚至批评和争论31研发方法的差别 创新研发方法非创新研发方法想着做事情坐着想事情经过科学手段、大量的数据、可重复的深入研究肤浅的、无用的、无法扩张的简单结果研究、理解、借用别人的结果不看别人的研究,或只抄袭别人的研究成果经过亲自的设计工程原型,证实对用户有用理论的、没用的纸上谈兵承认失败,从头开始不承认失败,永无止境地延续研究32现代软件研发对软件人才提出的要求 专业基础和创新能力具备主人翁精神良好的团队精神从错误中学习的能力331.4.2优秀的软件
14、测试员应具备的素质软件测试员是探索者: 软件测试员不会害怕进入陌生环境,他们喜欢拿到新的软件,安装在自己的机器上并观看结果。软件测试员是故障排除员:软件测试员善于发现问题的症结,他们喜欢解谜。软件测试员不放过蛛丝马迹:软件测试员总在不停地尝试。他们可能会碰到转瞬即逝或者难以证实的软件缺陷,当然,他们不会当作视偶然而轻易放过,而会想尽一切可能去发现它们。软件测试员具有创造性:这是对测试是显而易见的。软件测试员的工作是要想出富有创意审视超常的手段来寻找缺陷。软件测试员是追求完美者:软件测试员力求完美,但是当知道某些无法企及时,他们不去苛求,而是尽力接近目标。软件测试员判断准确:软件测试员要判断测试内容、测试时间、以及看到的问题是否是真正的缺陷。软件测试员注重策略和外交:软件测试员常常带来的坏消息。他们必须告诉程序员,你的程序很糟糕。好的软件测试员知道以怎样的策略来沟通这些问题,他们也能够和有时不够冷静的程序员合作。软件测试员善于说服:软件测试员找出的缺陷有时会被认为不重要且不用修复。这时测试员要善于清晰地表达自己的观点,说明软件缺陷为何需要修复,并且推进缺陷的修复。34测试人员和开发人员的交流351.5小结从上面讨论的结果可知,软件质量保证是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第3课《字符编码》教学设计 2023-2024学年 浙教版四年级下册信息科技
- pcie4复位信号阻抗控制要求
- nm联轴器结构特点
- 2024学位基本条件
- 七年级历史上册 第四单元 三国两晋南北朝时期:政权分立与民族融合 第19课 北魏政治和北方民族大交融教学设计 新人教版
- 2024景德镇陶瓷大学硕士研究生招生计划
- 三年级信息技术下册 卡通语录教学设计 龙教版
- 九年级化学下册 第十一单元 盐 化肥 实验活动8 粗盐中难溶性杂质的去除教学设计 (新版)新人教版
- 防侵犯教育课件小学版
- 学校教师规范办行为培训
- 公司新员工入职登记表(模板)
- 新疆大地构造单元划分论文(董连慧)2017最新整理
- 软件著作权申请课件
- 广州市三年级下册英语单词
- BD 420008-2015 全球卫星导航系统(GNSS)导航电子地图应用开发中间件接口规范
- 7.2气敏传感器解析
- 钢板桩项目方案设计(范文参考)
- 山钢钢板材质单
- 男性公民兵役登记表.docx
- 员工技能等级评定方案汇编
- 景津压滤机说明书(共62页)
评论
0/150
提交评论