软件质量保证及测试 第二章 软件测试基本概念_第1页
软件质量保证及测试 第二章 软件测试基本概念_第2页
软件质量保证及测试 第二章 软件测试基本概念_第3页
软件质量保证及测试 第二章 软件测试基本概念_第4页
软件质量保证及测试 第二章 软件测试基本概念_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件测试方法和技术第2章软件测试的基本概念第2章软件测试的基本概念2.1软件缺陷2.2软件测试的分类2.3静态测试与动态测试2.4主动测试与被动测试2.5黑盒测试与白盒测试2.6软件测试级别2.7软件测试计划与用例2.8专业测试人员的责任和要求缺陷是质量的对立面2.1软件缺陷2.1.1软件质量的内涵2.1.2软件缺陷的定义2.1.3软件缺陷的产生2.1.4软件缺陷的构成2.1.5修复软件缺陷的代价软件质量的内涵软件质量:软件产品满足规定的和隐含的与需求能力有关的全部特征和特性。包括:软件产品满足使用要求的程度软件各种属性的组合程度用户对软件产品的综合反映程度软件在使用过程中满足用户要求的程度

软件质量模型从测量的角度看,影响软件质量的因素可以分为两大类:可直接测量(如每个功能点的错误);间接度量(如可用性、可维护性)1、McCall模型McCall软件质量模型产品转换产品修改产品运行正确性可靠性效率完整性可用性可移植性重复性互用性可维护性可测试性灵活性ISO9126软件质量三层模型软件产品质量属性根据ISO9126,软件产品质量可以归纳为以下属性:(1)功能性(functionlity):在指定条件下,软件产品满足明确和隐含要求功能的能力匹配性:软件为指定的任务和用户目标提供一组合适功能的能力精确性:软件提供所需精确度的正确或相符结果及效果的能力互用性:软件产品与一个或更多规定系统进行交互的能力安全性:软件产品保护信息和数据的能力(2)可靠性(reliability):在指定条件使用时,软件产品维持规定的性能级别的能力成熟性:软件产品为避免由软件中错误而导致失效的能力容错能力:在软件失效或者违反规定的接口的情况下,软件产品维持规定的性能级别的能力可恢复性:在发生故障的情况下,软件重建规定的性能级别并恢复受直接影响的数据的能力软件产品质量属性(3)可用性(usability):在指定条件使用时,软件产品被理解、学习、使用和吸引用户的能力可理解性:完成特定任务的功能明显性和适用性可学习性:软件产品使用户能学习它的应用的能力可操作性:软件产品使用户能操作和控制它的能力*吸引性:软件产品吸引用户的能力软件产品质量属性(4)效率(efficiency):在规定条件下,相对于所用资源数量,软件产品提供适当性能的能力时间表现:在规定条件下,软件产品执行其功能时,提供适当的响应和处理时间以及吞吐量的能力资源表现:在规定条件下,软件产品执行其功能时,使用合适的数量和类型的资源的能力软件产品质量属性(5)可维护性(maintainability):软件产品可被修改的能力,包括修正、改进或软件适应环境、需求和功能规格说明中的变化可分析性:软件诊断缺陷或失效原因以及判定修改部分的能力可变化性:软件产品使指定的修改可以被实现的能力稳定性:软件产品避免由于软件修改而造成意外结果的能力可测试性:软件产品使已修改软件能被确认的能力软件产品质量属性(6)可移植性(portability):软件产品从一种环境迁移到另外一种环境的能力适应性:软件产品无需采用手段就可能适应不同的指定环境的能力易安装性:软件产品在指定环境中被安装的能力一致性:软件在公共环境中分享资源与其它独立软件共存的能力可替换性:在环境、目的相同的情况下替代另一个指定软件的能力软件产品质量属性14根据ISO/IECTR9126(2003)或ISO/IEC25000(2010)系列标准,软件质量可以分为:内部质量、外部质量、使用质量,三者关系如图:软件质量模型内部和外部质量模型使用质量模型16使用质量有效性生产率安全满意度软件质量的度量

17软件质量的度量主要是根据软件生存周期中对软件质量的要求所进行的一项活动。它主要分为三方面:外部度量、内部度量和使用度量。外部度量—测试和使用软件产品过程中进行内部度量—软件设计和编码过程中进行使用质量的度量—在用户使用过程中完成的2.1.2软件缺陷的定义IEEE(1983)729软件缺陷一个标准的定义:从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。软件缺陷的现象功能、特性没有实现或部分实现设计不合理,存在缺陷实际结果和预期结果不一致运行出错,包括运行中断、系统崩溃、界面混乱数据结果不正确、精度不够用户不能接受的其他问题,如存取时间过长、界面不美观软件缺陷的产生技术问题算法错误,语法错误,计算和精度问题,接口参数传递不匹配团队工作沟通不充分,误解软件本身文档错误、用户使用场合(userscenario),时间上不协调、或不一致性所带来的问题系统的自我恢复或数据的异地备份、灾难性恢复等问题软件缺陷构成需求41%初步设计12%设计24%代码23%缺陷成本2.2软件测试的分类(1)按照是否运行程序划分为:静态测试、动态测试(2)按照测试的方法划分为:主动测试、被动测试(3)按照测试用例设计方法划分为:白盒测试、黑盒测试、灰盒测试(4)按照开发阶段划分为:单元测试、集成测试、系统测试、验收测试、α测试、β测试(5)按照测试中是否使用工具划分手工测试、自动化测试(6)按照实施测试的组织划分为:开发方测试、用户测试、第三方测试2.3静态测试和动态测试狭义的测试:(早期)将测试局限于对程序进行动态测试。广义的测试:(现在)将需求和设计的评审纳入测试范畴。静态测试包括对软件产品的需求和设计规格说明书的评审、对程序代码的复审等。动态测试是通过真正运行程序发现错误,通过观察代码运行过程,来获取系统信息,对系统行为进行验证。静态测试和动态测试产品评审静态分析验证和确认静态测试2.3.1

产品评审目的:通过软件评审,可以更早地发现需求工程、软件设计等各个方面的问题,大大减少大量的后期返工,将质量成本从昂贵的后期返工转化为前期的缺陷发现。定义:评审是对软件元素或者项目状态的一种评估手段,以确定其是否与计划的结果保持一致,并使其得到改进。检验工作产品是否正确地满足了以往工作产品中建立的规范。2.3.2

静态分析两种手段:人工检测:人工检测偏重于编码风格、质量的检验,对设计、代码进行分析,有效地发现逻辑设计和编码错误。计算机辅助静态分析:利用静态分析工具对被测程序进行特性分析,从程序中提取一些信息,以便检查程序逻辑的各种缺陷和可疑的程序构造。2.3.3验证和确认(V&V)Verification:是否正确地构造了软件?即是否正确地做事,验证开发过程是否遵守已定义好的内容。验证产品满足规格设计说明书的一致性Validation:是否构造了正是用户所需要的软件?即是否正在做正确的事。验证产品所实现的功能是否满足用户的需求2.4

主动测试和被动测试主动测试方法:测试人员主动向被测试对象发送请求、或借助数据、事件驱动被测试对象的行为,从而验证被测试对象的反应或输出结果被动测试方法:测试人员不干预产品的运行,而是被动地监控产品在实际环境中运行,通过一定的被动机制来获得系统运行的数据,包括输入、输出数据。2.5白盒测试和黑盒测试功能测试数据驱动测试结构测试逻辑驱动测试

客户需求事件驱动输入输出白盒测试黑盒测试被测软件系统白盒测试和黑盒测试2.6软件测试级别调试组件功能

健壮性

效率组件之间的接口系统功能

安全性

健壮性

效率

功能及用户界面

安全性

效率

用户的可接受性组件测试集成测试系统测试实现(编码)验收测试单元测试单元测试单元测试:针对程序系统中的最小单元---模块或组件进行测试,一般和编码同步进行。主要采用白盒测试方法,从程序的内部结构出发设计测试用例,检查程序模块或组件的已实现的功能与定义的功能是否一致、以及编码中是否存在错误。通常要编写驱动模块和桩模块。单元测试一般由编程人员和测试人员共同完成,而以开发人员为主。单元测试包括代码评审,代码评审可以发现程序50%~70%代码的缺陷。集成测试集成测试:也称组装测试、联合测试,在单元测试的基础上,将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的模块之间问题。两种集成方式:一次性集成方式和增殖式集成方式。系统测试系统功能测试:一般须在完成集成测试后进行,而且是针对应用系统进行测试。功能测试是基于产品功能说明书,是在已知产品所应具有的功能,从用户角度来进行功能验证,以确认每个功能是否都能正常使用系统非功能性测试:是将软件放在整个计算机环境下,包括软硬件平台、某些支持软件、数据和人员等,在实际运行环境下进行一系列的测试,包括:负载测试灾难恢复性测试可靠性测试性能测试安全测试……验收测试&安装测试验收测试:目的是向未来的用户表明系统能够像预定要求那样工作,验证软件的功能和性能如同用户所合理期待的那样安装测试:指按照软件产品安装手册或相应的文档,在一个和用户使用该产品完全一样的环境中或相当于用户使用环境中,进行一步一步的安装操作性的测试α、β测试α测试:指软件开发公司组织内部人员开始使用新产品(称为α版本),在实际运行环境和真实应用过程中发现测试阶段所没有发现的缺陷。经过α测试调整的软件产品称为β版本。β测试:指公司外部的典型用户试用,并要求用户报告异常情况、提出批评意见,然后再对β版本进行修正和完善,最终得到正式发布的版本。(常见的试用版本)2.7软件测试计划和测试用例软件测试工作范畴分两个层次:软件测试工作的组织与管理:制定测试策略、测试计划,确认所采用的测试方法与规范,控制测试进度,管理测试资源。测试工作的实施:编制符合标准的测试文档,搭建测试环境,开发测试脚本、与开发组织协作实现各阶段的测试活动测试工作流程测试计划内容目标和范围项目估算风险计划进度安排资源配置跟踪和控制机制P30测试用例测试用例是测试人员在测试过程中的重要参考依据测试用例将有助于节约测试时间,提高测试效率。良好的测试用例不断地被重复使用,使得测试过程事半功倍测试用例是一个知识积累的过程P302.8专业测试人员的责任与要求QA/测试经理:人员管理,资源调配、测试方法改进等;实验室管理人员:设置、配置和维护实验室的测试环境内审员:审查流程,建立测试模板,跟踪缺陷测试报告的质量等;测试组长:负责项目的管理、测试计划、测试用例、任务安排等;测试设计人员/资深测试工程师:产品设计规格说明书的审查、测试用例的设计、技术难题的解决、培训和指导、实际测试任务的执行;一般(初级)测试工程师:执行测试用例和相关的测试任务。对测试人员的要求技术,编程能力责任感、耐力

沟通能力、理解能力

分析问题能力(批判性思维)

项目管理能力

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论