当前位置:文档之家› 软件测试与软件质量关系的概述

软件测试与软件质量关系的概述

软件测试与软件质量关系的概述

摘要:软件测试和软件质量的概念是分不开的。测试是手段,质量是目的。软件测试能够提高软件质量,但是软件测试和软件质量保证二者之间既存在包含又存有交叉的关系。软件测试能够找出软件缺陷,确保软件产品满足需求。但是测试不是质量保证。测试可以查找错误并进行修改,从而提高软件产品的质量。软件质量保证则是避免错误以求高质量,并且还有其他方面的措施以保证质量问题。本文是通过软件质量和软件测试的相关概念来讨论软件测试和软件质量之间的关系。

关键字:软件测试;质量度量;质量模型;白盒测试;黑盒测试

An overview of the relationship between software

testing and the software quality

Abstract:The concept of software testing and software quality are inseparable. Testing is a means, quality is the goal. Software testing can improve the quality of software, but software testing and software quality assurance exists between include and exists a relationship of cross. Software testing to identify software defects, to ensure that the software products meet the demand. But the test is not quality assurance. Test can find errors and modified, so as to improve the quality of software products. Software quality assurance is to avoid mistakes in order to high quality, and other aspects of measures to ensure the quality problem. This article is through the related concepts of software quality and software testing to discuss the relationship between the quality of software testing and software.

Key words:Software testing; Quality measures; The quality of the model; White box testing; Black box testing

目录

第一章引言 (1)

第二章软件质量 (2)

2.1 软件质量的定义 (2)

2.2 软件质量度量模型 (2)

2.2.1 Boehm质量模型 (2)

2.2.2 McCall质量模型 (4)

2.2.3 ISO/IEC9126质量模型 (4)

2.2.4三种模型的比较 (4)

2.3 软件质量管理标准 (5)

2.3.1 ISO 9000系列国际标准 (5)

2.3.2 GB/T 16260 软件工程-产品质量标准 (6)

第三章软件测试 (6)

3.1 软件测试的定义 (6)

3.2 软件测试的目的 (7)

3.3 软件测试的常见方法 (7)

3.3.1 白盒测试 (7)

3.3.2 黑盒测试 (8)

3.4 白盒测试和黑盒测试比较 (8)

第四章软件测试是提高软件质量的必要条件 (9)

4.1 软件测试与质量保证的联系与区别 (9)

4.1.1 软件测试与质量保证的联系 (9)

4.1.2 软件测试与质量保证的区别 (10)

4.2 软件质量特性中的测试 (10)

4.2.1 功能测试 (10)

4.2.2 可靠性测试 (10)

4.2.3 易用性测试 (11)

4.2.4 测试和质量是包含交叉的 (11)

4.3 要提高软件质量不能忽视软件测试 (11)

4.4 软件测试不是软件质量保证唯一手段 (12)

第五章结束语 (12)

致谢 (12)

参考文献 (13)

第一章引言

在当今这个信息科技飞速发展的社会中,计算机已经完全渗透到人们的学习生活中。而计算机软件是是计算机应用的核心,是使用者利用和掌控计算机的有力武器,因此软件质量也成为人们关注的焦点。人们对于软件质量的要求越来越高,实现软件质量保证已成为软件工程领域一项重要任务。软件质量是软件的生命,它直接影响软件的使用和维护。因此软件质量问题一直是软件工程的核心问题。若是许多软件的开发和生产仍处于“自设计”、“自编码”、“自检测”状态的话,软件质量就会低下,必然风险大、难保障。例如:某产品测出的故障800个,其中:软件故障600个,占75%之多;硬件故障127个,占16%;其他故障73,占9%。可见软件质量的严重性,因此必须加强软件开发和生产的管理,建立和完善软件测试的手段和方法,严格按照软件工程化管理的要求进行软件开发和管理,提高软件产品的质量。

近些年来,在软件测试和方法的研究上测试过程和测试用例方面也备受人们的关注。测试过程决定测试工作的成败,而测试用例的质量决定了软件缺陷的发现率,且设计测试用例占50%的测试成本。可见软件测试在保证软件质量中的地位。

实践证明,软件测试需要消耗大量的资源,并且测试所需的工作量,通常高达软件开发周期总工作量的30%—40%。如果让测试偶然进行,既浪费时间也浪费不必要的工作量,甚至更糟的是错误仍在。因此,必须科学的制定测试策略,合理安排软件测试工作,才能有效提高测试效率,有效控制资源消耗。从而保证软件质量。这也正从侧面说明了软件测试对于保证软件质量的重要性。

软件的设计技术,软件测试等是提高软件质量的有效方法。就提高软件产品质量的可实施性、投资回报率等方面考虑,保证软件质量的最显著的方法是实施有效的软件测试,提高软件测试的效率。目前,软件质量、软件测试和配置管理都逐渐被各软件公司重视起来,但是软件测试的方法、技术和标准都还在探索阶段。

软件测试不是保证软件质量的安全网,但软件测试毕竟是保证软件测试的有效手段,所以我们可以通过提高软件测试来保证软件质量。本文就软件测试与软件质量之间的关系进行阐述。把软件测试各个环明节和方法与软件质量进行结合明确软件测试和软件质量之间的关系从而通过软件测试环节来提高软件的质量。

第二章软件质量

软件质量就是软件对于用户的明确和隐含需求相一致的程度。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的隐含特征的程度。

2.1 软件质量的定义

目前,在软件定义方面有很多定义。最主要的有以下几种。

国际标准化组织ISO在质量特性国际标准ISO/IEC 9162中将软件质量定义为反应软件产品满足规定需求和潜在需求能力的特征和特性的总和。

MJ.Fisher 将软件质量定义为:所有描述计算机优秀程度的特性组合。

TomMcCabe 则认为软件质量是较高的用户满意程度以及较低的缺陷等级,这常常同较低的软件复杂程度有关。

SEI的Watts Humphrey倾向于将软件质量定义为具有很高的可实用性,同需求很好吻合,并具有高的可靠性和可维护性。

按照ANSI/IEEE std 1061-1992中的标准,软件质量定义为:与软件产品满足需求所规定的和隐含的能力有关的特征或特性的总体。

2.2 软件质量度量模型

软件质量度量管理模型(SQM:Software Quality Management)也可称为软件质量评价模型,就是说从整体上来评价软件的质量,以便在软件开发过程中对软件质量进行控制,并对最终产品进行评价和验收模型。用软件度量学的方法来科学的评估软件质量,可以更有力地对软件开发过程进行管理,从而合理地组织和分配资源,制定切实可靠的软件开发计划已获得高质量的软件。下面就常见的Boehm模型、McCall模型、ISO/IEC9126模型这三种质量度量模型进行介绍。

2.2.1 Boehm质量模型

Boehm模型是1976年B.W.Boemh等人提出的软件质量度量模型。他们认为软件的质量可从三个方面考虑:软件的可使用性、软件的可维护性和软件的可移植性。可使用性分为可靠性、效率和人工工程三个方面,反应用户的满意程度;可维护性从可测试性、可理解性、可修改性三个侧面进行度量,反映公司本身的

满意程度;可移植性被单独划分为一个属性。如图2-1所示。

图2-1 Boehn模型

该模型更好的为测试提供条件,测试可以从该模型的最小属性开始进行,各个击破来提高软件的质量。

2.2.2 McCall质量模型

在Boehm之后,McCall等人在1978年提出来软件要素(factor)到准则(criteria)再到度量(metric)的三层次软件质量度量模型,定义了11个软件质量要素,分别是:正确性(correctness)、可靠性(reliability)、效率(maintainability)、完整性(integrity)、可使用性(usability)、可维护性(maintainability)、可测试性(testability)、灵活性(flexibility)、可移植性(portability)重复使用性(reusability)、连接性(interoperability)。

该模型的基本思想是把软件的质量的因素分成三组,每组反映软件产品质量的一个重要方面,成为质量要素,这项要素一般需要量化。每个要素又由一些准则组成,这些准则要比要素更易于理解和测量,因此真正的测量是针对准则来提出的。我们可以通过对准则的实现对因素测量。即软件测试也应该是渗透到组成软件质量的每个小要素里面去的。这样的测试才能做到从根源提高软件质量。

2.2.3 ISO/IEC9126质量模型

ISO/IEC9126质量模型包括六个质量特性结合21个质量特性。六个质量特性:功能性、可靠性、易使用性、效率、可维护性、可移植性【1】。二十一个质量子特性:

功能性:适合性、准确性、互操作性、依从性、安全性;可靠性:成熟性、容错性、易恢复性;易使用性:易理解性、易学性、易操作性;效率:时间特性、资源特性;可维护性:易分析性、易更改性、稳定性、易测试性;可移植性:适应性、易安装性、一致性、易替换性。

2.2.4三种模型的比较

三种模型的相同点是,它们都是类似于二层次的模型,质量要素、衡量标准基本相同,建立了软件质量要素和软禁啊度量之间的关系。但它们的共同缺陷是质量要素和衡量标准之间的关系是通过非形式的讨论来建立的,有的度量不是客观指标只是主观判断,另外没有从软件生存周期不同阶段的生存形态来考虑,而仅仅考虑成品形态,不利于软件产品早起缺陷发现和维护成本的降低。

三种产品的不同点是,McCall模型的意义在于建立了软件质量度量项之间的关系;Boehm模型里包括了McCall模型里没有的硬件领域的质量要素;

ISO/IEC9126模型的贡献在于将软件质量特征分为外部特征和内部特征。

总体来说,这些质量模型的原理都是一样的。软件质量特征被定义为:功能性、可靠性、可维护性、应用性、效率和可移植性、就是将软件质量的概念按照从上到下分为若干层次,有利于对软件质量认识的逐步深入。【2】没有一种标准可以用于所有的概念。在实际应用中,应该更具不同的需求对不同的质量特性和其子特性有所侧重,同时要考虑到由于因素之间存在逆相关,在实际开发过程中,应该根据不同需求做出不同的选择来进行测试,从而提高软件的质量。由此可以看出软件测试与软件质量相互联系,软件测试从软件质量的本质出发,根据其最小属性的特点进行测试来达到提高软件质量的目的。

2.3 软件质量管理标准

2.3.1 ISO 9000系列国际标准

目前,国际公认的并被世界各国和地区广泛采用的软件质量管理和质量保证标准是国际标准化组织ISO(全称为Intermational Origanization for Standardization)制定的ISO9000系列标准,该系列标准主要包括:ISO 84025 《质量术语》ISO 9000《质量管理和质量保证标准一选择和使用指南》,ISO9001《质量体系一设计开发、生产、安装和服务的质量保证模式》,ISO9002《质量体系一生产和安装的质量保证模式》, ISO9003《质量体系一最终检验和试验的质量保证模式》,ISO9004《质量管理和质量体系要素一指南》。上述六项质量标准从1987年发布1987版,后经过修订成1994版,到现在己经发展到最新的2000版。

1994年修订后发布的ISO9000系列国际标准从1987年仅有的六项发展到十六项。其中包括ISO9001-3;1991“质量管理和质量保证标准一第三部分:ISO9001在软件开发、供应和维护中的使用指南。”这个指南是专门针对软件的质量管理和质量保证而制定的,对软件企业和软件产品的质量管理和质量保证具有重要的意义。2000版ISO9001标准在1994版的基础上作了很大改变:1994版ISO9001标准的结构是由二十个独立的质量要素组成,而2000版则引入了全面质量管理的概念,把这二十个要素分别归类于管理职责、资源管理、产品实现及测量、分析和改进四大类,构成一种过程方法模式的结构,符合PDCA(即计划(plan)、实施(Do)、检查(Check)、处理(Action))循环规则。并且通过持续改进的环节使质量管理体系的水平不断上升,该方法逻辑清晰、结构严谨、更加容易理解和方便操作ISO9000系列标准是从整体上评价软件质量,以便在软件开发过程中对质量进行控制,并对最终软件产品进行评价和验收。

2.3.2 GB/T 16260 软件工程-产品质量标准

在国内,通过引入国际标准,也制定了一些相应的标准,典型的GB/TI62605《软件工程一产品质量标准》该标准等同采用ISO/IEC9126:2001【3】,总共包括质量模型、外部度量、内部度量和使用质量的度量四个部分。第一部分是质量模型,定义了软件质量特性,及这些特性又如何分解成各个子特性的相关术语;第2部分定义了外部度量,用来测量包括软件在内的基于计算机系统的行为;第3部分定义了内部度量,用来测量软件本身;第四部分定义了使用质量的度量,用来测量软件在某个特定使用环境中的使用效果。

GB/T16260的主要目的是使软件的需方、供方(开发者)和用户能够认识到软件质量在项目论证时或在签订合同时,就能提出一些质量要求,并且尽量做到合理。作为供方(开发者)在项目论证或需求分析时,既要分析质量要求的合理性,又要分析如何满足需方或用户的质量要求,同时要考虑满足需方或用户潜在的隐含的质量要求。一旦质量需求确定后,就应对这些质量需求分析配置:即明确哪些过程、哪些活动、哪些阶段要控制、把握哪些质量需求。特别是要关注过程本身的质量。适时开展内部度量或外部度量。以使软件产品最终满足用户或需方的质量要求。作为用户或需方既要关注使用质量,也要关注外部质量及内部质量。因为这些质量要求既有连带关系,又有制约关系。针对一个软件产品或软件项目,不可能所有的质量特性要求都提得很高。在我国,软件的需方、供方、开发者和最终用户,为了一个共同的目标,就是提高我国现代化水平,要互相理解、互相沟通,及时反馈相关信息,不断完善和提高软件的质量,提高我国软件工程化水平。

第三章软件测试

软件测试是使用人工操作或者软件自动运行的方式来检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别的过程。

3.1 软件测试的定义

软件的生命周期一般包括: 项目规划、需求定义和需求分析、软件设计、程序编码、软件测试、运行维护。

软件测试是在规定条件下对程序进行操作, 以发现错误, 对软件质量进行评估。软件是由文档、数据以及程序组成的, 软件测试就是对软件形成过程的文档、数据以及程序进行的测试, 而不仅仅是对程序进行的测试。软件测试是根

据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例, 并利用这些测试用例运行软件, 以发现软件错误的过程。

3.2 软件测试的目的

软件测试的目的和意义在于发现程序中的错误,有效定义和实现软件成分由低到高的组装过程,验证软件是否满足任务书和系统定义文档所规定的技术要求,为软件质量模型的建立提供依据软件测试是对软件质量的度量与评估, 以验证软件的质量满足用户需求的程度, 为用户选择与接受软件提供有力的依据。

统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40%左右。而在软件开发的总成本中,用在测试上的开销要占30%-50%。如果把维护阶段也考虑在内,讨论整个软件生存周期时,测试的成本比例也许会有所降低,但实际上维护工作相当于二次开发,乃至多次开发,其中必定还包含有更多的测试工作。这些测试在保证软件质量时比功能测试更为重要。

由此可见软软件测试在保证软件质量中占据重要的地位,在传统的瀑布模布模型中,软件测试仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。近年来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正。通过测试来保证每一个小阶段的质量,最终达到提高整体质量的目的。

3.3 软件测试的常见方法

正确性是软件的最低需求了,也是测试的最本质的目的。正确性测试需要一些圣贤,告诉哪些行为是正确的。测试者本人可能或不能知道被测软件内部的详细情况,如控制流和数据流。所以,白盒观点和黑正确性是软件的最低需求了,也是测试的最本质的目的。测试者本人可能或不能知道被测软件内部的详细情况,如控制流和数据流。所以,白盒观点和黑盒观点都可以用来测试软件。我们必须注意到,白盒和黑盒的点子不仅仅局限在正确性测试上。观点都可以用来测试软件。下面主要介绍一下白盒测试和黑盒测试.

3.3.1 白盒测试

白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。“白盒”法全面了

解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒”法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。

白盒测试就是检查代码,分析静态结构,逻辑覆盖,测试软件的基本路径,测试符号、域来保证软件的质量。白盒测试保证一个模块中的所有独立路径至少被执行一次,对所有的逻辑值均需要测试真、假两个分支,并且要检查内部数据结构以确保其有效性。

3.3.2 黑盒测试

黑盒测试也称为功能测试、行为测试或数据驱动测试,在测试时,把程序看作一个不能打开的黑盒,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。

“黑盒”表示看不见盒子里头的东西,意味着黑盒测试不关心软件内部设计和程序实现,只关心外部表现,即只通过控制输入和输出的结果来保证软件,任何人都可以依据软件需求来执行黑盒测试。黑盒测试注重于测试软件的功能性需求,着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试,多应用于测试过程的后期。

3.4 白盒测试和黑盒测试比较

软件测试是软件开发中的重中之重,没有一点可以马虎的,在项目管理过程 , 强调的是每个过程的每一个环节都要进行测试,保证系统在每个阶段可以控制。因为软件测试中考虑的问题基本上是项目管理中考虑的问题。

白盒测试的优点是,迫使测试人员去仔细思考软件的实现、可以检测代码中的每条分支和路径、揭示隐藏在代码中的错误、对代码的测试比较彻底。但是白盒测试无法检测代码中遗漏的路径和数据敏感性错误也不会严重规格的正确性。代码是软件产品中的重要组成部分,代码的质量反映软件的质量,白盒测试与黑盒测试不同之处之一就在于白盒测试需要源代码,即白盒测试可以通过保证源代码的质量来保证软件的质量。

黑盒测试相比于白盒测试的话基本上不用人管着,而且黑盒很可能发现白盒测试不易发现的其他类型错误,但黑盒测试的主要缺陷是难于衡量系统的完整性,而白盒测试正好可以弥补这个缺陷。

例如现在有一个计算器程序需要测试,如果输入3.1415926并按sqrt键,就会得到结果1.772453102341。使用黑盒测试方法时,并不关心软件算圆周率

的算术平方根要经历多少复杂的运算,只关心它的运算结果。软件测试员可以通过其他“经过认证合格”的来检验结果,判定计算机程序是否运算正确;白盒测试中软件测试员可以访问软件的代码并通过检查代码的线索来协助测试。测试员根据代码检查结果判断或多或少可能出错的数目,并据此定制测试。

黑盒测试是与白盒测试互补的测试方法,在测试过程中交替使用这两种测试方法才能达到提高软件质量的目的。

第四章软件测试是提高软件质量的必要条件

软件质量是软件产品的灵魂。软件设计技术,软件测试等都是提高软件质量的有效方法。从提高软件产品质量的可实施性、投资回报率等方面考虑,保证软件质量的最显著的方法是实施有效的软件测试,提高软件测试的效率。本章结合软件测试和软件质量特性介绍软件测试与软件质量之间的关系。

4.1 软件测试与质量保证的联系与区别

软件测试和质量保证都贯穿整个软件开发生命周期的流程,好的测试可以有效地提高软件质量但是软件质量保证和软件测试是软件质量工程的两个不同层面的工作。

4.1.1 软件测试与质量保证的联系

软件生命周期每一阶段中都应包含测试,从静态测试到动态测试,要求检验每一个阶段的成果是否符合质量要求和达到定义的目标,尽可能早的发现错误并加以修正。如果不在早期阶段进行测试,错误的不断扩散、积累常常会导致最后成品测试的巨大困难、开发周期的延长、开发成本的剧增等等。

软件测试与软件质量的相同点在于二者都是贯穿整个软件开发生命周期的流程。软件质量保证的职能是向管理层提供正确的可视化的信息,从而促进与协助流程改进。软件质量保证还充当测试工作的指导者和监督者,帮助软件测试建立质量标准、测试过程评审方法和测试流程,同时通过跟踪、审计和评审,及时发现软件测试过程中的问题,从而帮助改进测试或整个开发的流程等,因此有了软件测试,测试工作就可以被客观的检查与评价,同时也可以协助测试流程的改进。而软件测试为提供数据和依据,帮助软件测试更好地了解质量计划的执行情况、过程质量、产品质量和过程改进进展,从而使软件测试更好地做好下一步工

作。

4.1.2 软件测试与质量保证的区别

软件测试人员的一项重要任务是提高软件质量,但不等于说软件测试人员就是软件质量保证人员,因为测试只是质量保证工作中的一个环节。软件质量保证和软件测试是软件质量工程的两个不同层面的工作。

质量保证:质量保证的重要工作是通过预防、检查与改进来保证软件质量。虽然在质量保证的活动中也有一些测试活动,但所关注的是软件质量的检查与测量。质量保证的工作是软件生命周期的管理以及验证软件是否满足规定的质量和用户的需求,因此主要着眼于软件开发活动中的过程、步骤和产物,而不是对软件进行剖析找出问题或评估。

软件测试:测试虽然也与开发过程紧密相关,但关心的不是过程的活动,而是对过程的产物以及开发出的软件进行剖析。测试人员要“执行”软件,对过程中的产物-开发文档和源代码进行走查,运行软件,以找出问题,报告质量。对测试中发现的问题的分析、追踪与回归测试也是软件测试中的重要工作,因此软件测试是保证软件质量的一个重要环节。

4.2 软件质量特性中的测试

不同的测试可以同时测试多个质量特性,每个质量也可以单独进行测试。前面2.2.3节已经介绍了软件质量的六个特性这里不在赘述。本节重点将就功能性、可靠性、易使用性三个特性来讲述测试与质量的关系。

4.2.1 功能测试

在功能测试的时候,要确保集成后的各个新模块小会出现错误,即原来每个模块功能不会因为集成而消失。在软件集成的功能测试时,多采用黑盒测试方法,所以黑盒测试也常被称为功能测试,虽然这不是一种准确的说法。功能测试比较容易理解,主要是根据产品规格说明书,来检验被测试的系统是否满足各方面功能的使用要求。

4.2.2 可靠性测试

软件可靠性测试在有使用代表性的环境中,为进行软件可靠性估计对该软件

进行的功能测试。需要说明的是,“使用代表性”指的是在统计意义下该环境能反映出软件的使用环境特性。其目的是通过在有使用代表性的环境中执行软件,以证实软件需求是否正确实现。

4.2.3 易用性测试

易用性测试包括针对应用程序的测试,同时还包括对用户手册系统文档的测试。通常采用质量外部模型来评价易用性。包括如下方面的测试:易理解性测试;易学性测试;易操作性测试;吸引性测试;易用的依从性测试。易用性测试方法有:静态测试;动态测试;动态和静态结合测试。

4.2.4 测试和质量是包含交叉的

综合前文软件质量特性的测试可以看出软件测试是贯穿在软件开发过程中的。软件测试可以进行到软件质量的小分子(软件质量特性)中,即软件测试是渗透进软件质量的。软件测试和软件质量是紧密联系的,质量特性的测试会用到多种测试的方法,一种测试方法也会测试多种质量特性。例如功能测试中会用到白盒测试和黑盒测试,系统测试则可以测试功能性和可靠性。软件测试能够提高软件质量,但与软件测试和软件质量保证二者之间既存在包含交叉的关系。【4】

4.3 要提高软件质量不能忽视软件测试

软件测试通常要在不同层次上执行,大体上划分为三大阶段:单元测试、集成测试、系统测试。

单元测试:单元测试一般需要对被测代码进行访问和借助测试工具的支持,并且可能需要被测代码编程人员的介入。

集成测试:通常采用自顶向下或自底向上的集成方法,用于传统的、分级的结构化软件系统。现代的集成测试策略更多是结构驱动的,这意味着对软件模块或子系统的集成是基于确定的功能线程,因此集成测试是一个连续活动,在每一阶段测试人员必须抽象出低一级的情况并集中于正在处理的这一级的状况。

系统测试:检验整个系统是否满足《需求规格说明书》所提出的所有需求。它需要将系统与非功能性系统需求进行比较,非功能性系统需求指系统的安全性、速率、精确性、可靠性等。系统测试的类别有:功能测试;性能测试;外部接口测试;人机界面测试;安全性测试;可靠性测试。

做好测试工作,首先验证软件是否满足软件科研任务书、需求规格说明书和

软件设计所规定的技术要求;其次,通过测试,人们可以尽早发现软件缺陷,并确保其得以修复;最后,完善的测试为软件可靠性与安全性评估提供了重要依据。

4.4 软件测试不是软件质量保证唯一手段

测试是提高软件产品质量的必要条件而非充分条件,它是提软件产品质量最直接、快捷的手段,但绝不是一种根本手段。

软件测试只是软件质量保证的一种手段而已。面向消费者的是产品,消费者遇到的任何产品使用问题,都将成为产品的质量问题。然而产品是经过若干工序生产出来的结果。在各个工序环节,都将有可能引出质量问题,而且这些质量问题是由不同技能和领域的从业人员的工作导出来的,质量类型是不同的,如需求问题,设计问题,实现问题等等。以上问题,其实我想表述的是:软件产品的质量是分不同类型的,而且这些质量类型往往需要不同技能和知识背景的人来进行确认和保障。所以,当我们要确保一个即将上市的产品的质量达到某个水平时,就首先需要评估产品究竟有哪些质量类型,是不是这些质量类型都有合适的人员进行确认和测试。

第五章结束语

国内软件行业普遍规模偏小,缺乏大型软件产品经验,开发过程不够规范,这决定了国内软件质量和测试行业,必须根据国内行业现状,确定软件质量目标和测试策略方法。

软件测试能够找出软件缺陷,确保软件产品满足需求。但是测试不是质量保证,二者并不等同。从共同点的角度看,软件测试和软件质量保证的目的都是尽力确保软件产品满足需求,从而开发出高质量的软件产品。两个流程都是贯穿整个软件开发生命周期中。测试可以查找错误并进行修改,从而提高软件产品的质量。软件质量保证测试避免错误以求高质量,并且还有其他方面的措施以保证质量问题。软件质量保证并不能够保证软件的质量,但是我们可以把提高软件的质量作为我们从事软件质量保证工作的目标。

致谢

在论文完成之际我特向指导老师和帮助过我的同学、朋友及关心支持我的家

人表示诚挚的感谢。

感谢我的指导老师在论文的写作中给予我悉心的指导和帮助。这是我第一个正式的论文,虽然是学年论文但也是在为毕业论文做一个充分的准备,所以我深知它的重要性。感谢老师在我搜集资料,构思,写提纲,初稿直到最终定稿的过程中对我的帮助和教诲。是闾燕老师教会了我一个正式好的论文是怎样完成的。

然后感谢在我写论文时我身边帮助和鼓励过我的同学和朋友。

参考文献

[1]杨喆.基于ISO—9126质量模型的软件质量评价方法[D].昆明理工大学硕士论文,2012.

[2]G Gordon Sehulmeyer等著.软件质量保证第3版[M].北京机械工业出版社,2008:98-103.

[3]GB/T16260.IOS/IEC926-1:软件工程-产品质量[S].中国标准出版社,2006.

[4]姚卫国.软件测试是提高软件质量的保证[J].都市家教,2010,03:106-108.

软件测试课后习题

百度文库- 让每个人平等地提升自我 目录 第1章软件测试概述 (1) 第2章软件测试方法与过程 (4) 第3章黑盒测试 (7) 第4章白盒测试方法 (13) 第5章软件测试管理及自动化测试基础 (18) 第6章WINRUNNER测试工具 (20) 第7章LOADRUNNER测试工具 (22) 第8章JUNIT (24)

第1章软件测试概述 1.简述软件测试的意义。 解:随着计算机技术的迅速发展和广泛深入的应用,软件质量问题已成为开发和使用软件人员关注的焦点。而由于软件本身的特性,软件中的错误是不开避免的。不断改进的开发技术和工具只能减少错误的发生,但是却不可能完全避免错误。因此为了保证软件质量,必须对软件进行测试。软件测试是软件开发中必不可少的环节,是最有效的排除和防治软件缺陷的手段,是保证软件质量、提高软件可靠性的最重要手段。 2.什么是软件缺陷?它的表现形式有哪些? 解:从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需实现的某种功能的失效或违背。 它的表现形式主要有以下几种:(1)软件未达到产品说明书中已经标明的功能;(2)软件出现了产品说明书中指明不会出现的错误;(3)软件未达到产品说明书中虽未指出但应当达到的目标;(4)软件功能超出了产品说明书中指出的范围;(5)软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。 3.简单分析软件缺陷产生的原因,其中那个阶段引入的缺陷最多,修复成本又 最低? 解:软件缺陷产生的主要原因有:需求规格说明错误;设计错误;程序代码有误;其他。其中在需求分析阶段引入的缺陷最多,修复的成本又最低。 4.当用户登录某网站购物完毕并退出后,忽然想查查购物时付账的总金额,于 是按了浏览器左上角的“退回”按钮,就又回到了退出前的网页,你认为该购物软件有缺陷吗?如果有,属于哪一类? 解:有缺陷。其所属类别与软件产品说明书的要求有关。 5.什么是软件测试?简述其目的与原则。 解:软件测试是为了尽快尽早地发现在软件产品中所存在的各种软件缺陷而展开的贯穿整个软件开发生命周期,对软件产品(包括阶段性产品)进行验证和确认的活动过程。 测试目的:(1)证明:获取系统在可接受风险范围内可用的信心;尝试在非正常情况和条件下的功能和特性;保证一个工作产品是完整的并且可用或可被集成。(2)检测:发现缺陷、错误和系统不足;定义系统的能力和局限性;提供组件、工作产品和系统的质量信息。(3)预防:澄清系统的规格和性能;提供预防或减少可能制造错误的信息;在过程中尽早检测错误;确认问题和风险,并

软件测试概论

第一篇理论篇 第1章软件测试概论 1.1概述 软件测试是伴随着软件的产生而产生的,有了软件生产和运行就必然有软件测试。早期的软件开发过程中,测试的含义比较狭窄,将测试等同于“调试”,目的是纠正软件中已经知道的故障,常常由开发人员自己完成这部分的工作。对测试的投入极少,测试介入得也晚,常常是等到形成代码,产品已经基本完成时才进行测试。 直到1957年,软件测试才开始与调试区别开来,成为一种发现软件缺陷的活动。由于一直存在着为了使我们看到产品在工作,就得将测试工作往后推一点的思想,测试仍然是后于开发的活动。在潜意识里,我们的目的是使自己确信产品能工作。到了20世纪70年代,尽管对“软件工程”的真正含义还缺乏共识,但这一词条已经频繁出现。1972年在北卡罗来纳大学举行了首届软件测试正式会议,1975年John Good Enough 和Susan Gerhart在IEEE上发表了“测试数据选择的原理(Toward a Theory of Test Data Selection)”的文章,软件测试才被确定为一种研究方向。而1979年,Glen ford Myers 的《软件测试艺术》(The Art of Software Testing)可算是软件测试领域的第一本最重要的专著,Myers作为当时最好的软件测试,其定义是:“测试是为发现错误而执行的一个程序或者系统的过程”。Myers以及他的同事们在20世纪70年代的工作是测试过程发展的里程碑。 直到20世纪80年代早期,“质量“的号角才开始吹响。软件测试定义发生了改变,测试不单纯是一个发现错误的过程,而且包含软件质量评价的内容。软件开发人员和测试人员开始坐在一起探讨软件工程和测试问题。制定了各类标准,包括IEEE(Institute of Electrical and Electronic Engineers)标准、美国ANSI(American National Standard Institute)标准以及ISO(International Standard Organization)国际标准。1983年,Bill Hetzel 在《软件测试完全指南》(Complete Guide of Software Testing)一书中指出:“测试是以评价一个程序或者系统属性为目标的任何一种活动,测试是对软件质量的度量”。Myers和Hetzel的定义至今仍被引用。

软件测试填空题

1、软件质量工程包括软件质量保证、软件质量规划和软件质量控制三大方面。 2、McCall模型产品修改纬度的质量因素有可维护性、可测试性、灵活性。 3、面向对象模型不同于其他模型的主要特征是组件的密集重用。 4、有两种同行评审方法学:审查和走查。 5、RMA可以划分成三组类别内部风险管理措施,分包风险管理措施,顾客风险管理措施 6、支持性质量手段有模板和检查表。 7、依据软件系统的生命周期和其他阶段,软件质量度量划分为软件过程度量和软件产品度量。 8、软件配置发布的版本有基线版本、中间版本、修订版本。 9、SQA标准被划分成软件质量管理标准和软件项目过程标准两类。 10、软件缺陷的固有特征有软件缺陷的固有性、软件缺陷的敏感性、软件缺陷的感染性。 11、McCall模型划分了软件运行、软件转移、软件修改三个纬度的11个软件质量因素。 12、螺旋模型任何一次迭代都可划分为制定计划、风险分析和化解、工程和顾客评估四个项限。 13、依据合同评审的目标对合同评审主题进行分类为建议草案评审主题和合同草案评审主题两种类型。 14、典型的版本方针包括严格-单一活动版本方针、多版本方针。 15、软件对属于各种质量因素的需求的符合性是由软件质量度量来测量的。 16、CAPA过程的成功运行包含如下活动:信息收集、信息分析、解决方案和改进方法的建立、改进方法的执行、跟踪。 17、常见的软件配置演化模型有线性演化模型和树演化模型。 18、软件更改的质量保证工作需要每个更改的SCI的质量保证和整个新软件系统版本的质量保证两个级别的活动。 19、从内容和重点上我们可以把质量管理标准划分成认证标准和评估标准两种类型。 20、测试人员、 SQA单位是SQA专职人员。 21、CMM内容包含初始级、可重复级、已定义级、已管理级和可优化级五个等级。 22、软件质量保证的目标包括面向产品的软件开发和面向过程的软件维护两大方面。 23、开发生命周期阶段SQA部件可以划分成三类:评审、专家观点、软件测试、软件维护SQA部件和由第三方/分包商使用的SQA部件。 24、版本方针和更改方针是维护方针的主要组成。 25、外部参与方可被分类为分包商、COTS软件和重用软件模块的供货

软件测试知识点总结

软件测试知识点总结 第一次课10.7软件测试概述 一软件测试定义:使用人工或者自动的手段来运行或测定它是否满足规定的需求,或弄预期结果与实际结果之间的差别。 二软件测试的分类 1.按照开发阶段划分 a)单元测试:模块测试,检查每个程序单元嫩否正确实现详细设计 说明中的模块功能等。 b)集成测试:组装测试,将所有的程序模块进行有序、递增的测试, 检验程序单元或部件的接口关系 c)系统测试:检查完整的程序系统能否和系统(包括硬件、外设和 网络、系统软件、支持平台等)正确配置、连接,并满足用户需 求。 d)确认测试:证实软件是否满足特定于其用途的需求,是否满足软 件需求说明书的规定。 e)验收测试:按项目任务或合同,供需双方签订的验收依据文档进 行的对整个系统的测试与评审,决定是否接受或拒收系统。 2.按照测试技术划分 白盒测试:通过对程序内部结构的分析、检测来寻找问题。检查是否所有的结构及逻辑都是正确的,检查软件内部动作是否按照设计说明的规定正常进行。--结构测试 黑盒测试:通过软件的外部表现来发现错误,是在程序界面处进行

测试,只是检查是否按照需求规格说明书的规定正常实现。 灰盒测试:介于白盒测试与黑盒测试之间的测试。 3 按照测试实施组织划分:开发方测用户测试第三方测试 4 是否使备测软件运行:静态测试动态测试。 课后作业:1.软件测试与调试的区别? (1)测试是为了发现软件中存在的错误;调试是为证明软件开发的正确性。 (2)测试以已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序是否通过测试;调试一般是以不可知的内部条件开始,除统计性调试外,结果是不可预见的。 (3)测试是有计划的,需要进行测试设计;调试是不受时间约束的。(4)测试经历发现错误、改正错误、重新测试的过程;调试是一个推理过程。 (5)测试的执行是有规程的;调试的执行往往要求开发人员进行必要推理以至知觉的"飞跃"。 (6)测试经常是由独立的测试组在不了解软件设计的条件下完成的;调试必须由了解详细设计的开发人员完成。 (7)大多数测试的执行和设计可以由工具支持;调式时,开发人员能利用的工具主要是调试器。 2.对软件测试的理解? 软件测试就是说要去根据客户的要求完善它.即要把这个软件还

软件测试技术习题参考答案

第1章软件测试概述 1、简述软件缺陷的含义。 答:软件缺陷是软件开发过程中潜在的缺陷,这些缺陷可能在软件运行后出现,因而使软件的性能和可靠性等方面与系统的设计需求不符。 2、说明软件缺陷、软件错误和软件失败的关系。 答:缺陷、缺点、偏差统称为缺陷,是软件故障的根源;错误、谬误、问题、异常、矛盾等统称为错误,软件错误出现的原因是软件缺陷所致;失败、事故、灾难统称失败,失败的直接原因是软件系统存在软件错误。 14、“软件测试是有风险的工作”,试解释这种说法的含义。 答:软件不测试,就会有风险;软件测试,同样也会有风险。因为,软件是个复杂的系统,其复杂性体现在软件实现的内容复杂性、开发过程的复杂性和组织工作的复杂性等方面。而软件测试的目的是为了发现故障,并加以排除。对一个复杂的软件系统来说,故障的排除往往可能又带来新的软件缺陷。所以,软件测试又会带来一定的风险。 第2章软件测试基础 2、条件覆盖是否高于判断覆盖的逻辑覆盖程度如果不是,请给出反例加以说明。 答:条件覆盖是高于判断覆盖的逻辑覆盖程度。 a 、用条件覆盖所设计的测试用例可使得程序中的每一个判断的每一个条件的可能 取值至少执行一次。 b、用判断覆盖所设计的测试用例可使被测程序中的每个判断的真分支和假分支至少经历 一次。 每个判断语句可能包含多个条件(比如,if (A>3&&B<7……)。条件覆盖针对判断语句的每一个条件的所有可能取值编写测试用例;判断覆盖只针对每一个判断语句整体的所有可能取值编写测试用例。所以,条件覆盖的逻辑覆盖程度高于判断覆盖。 4、已知某种计算机程序设计语言的标识符语法规则规定“标示符是由非数字开头的,有效 字符数为32个,最大字符数为128个的任意符号串”。试用等价类划分法设计测试用例。

软件测试与软件质量关系的概述

软件测试与软件质量关系 的概述 Prepared on 24 November 2020

软件测试与软件质量关系的概述 摘要:软件测试和软件质量的概念是分不开的。测试是手段,质量是目的。软件测试能够提高软件质量,但是软件测试和软件质量保证二者之间既存在包含又存有交叉的关系。软件测试能够找出软件缺陷,确保软件产品满足需求。但是测试不是质量保证。测试可以查找错误并进行修改,从而提高软件产品的质量。软件质量保证则是避免错误以求高质量,并且还有其他方面的措施以保证质量问题。本文是通过软件质量和软件测试的相关概念来讨论软件测试和软件质量之间的关系。 关键字:软件测试;质量度量;质量模型;白盒测试;黑盒测试 An overview of the relationship between software testing and the software quality Abstract:The concept of software testing and software quality are inseparable. Testing is a means, quality is the goal. Software testing can improve the quality of software, but software testing and software quality assurance exists between include and exists a relationship of cross. Software testing to identify software defects, to ensure that the software products meet the demand. But the test is not quality assurance. Test can find errors and modified, so as to improve the quality of software products. Software quality assurance is to avoid mistakes in order to high quality, and other aspects of measures to ensure the quality problem. This article is through the related concepts of software quality and software testing to discuss the relationship between the quality of software testing and software. Key words:Software testing; Quality measures; The quality of the model; White box testing; Black box testing

软件测试质量分析分析报告

软件测试质量分析报告 1编写目的 为了发现程序的错误和缺陷,通过测试,检查该程序是否达到了预期的结果, 2 这些标准的软件,其质量难以得到保证。软件还应满足某些隐含的要求,例如希望有良好的可理解性、可维护性等,而这些隐含的要求可能未被写在用户规定的需求中,满足它的显性需求而不满足其隐含需求,那么该软件的质量是令人怀疑的。4:测试工具及方法 (1)单元测试 测试工具:Eclipse

Eclipse简介: Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentKit,JDK)。 虽然大多数用户很乐于将Eclipse当作Java集成开发环境(IDE)来使用,但 ( Eclipse 于 (structuraltesting)等,软件测试的主要方法之一,也称结构测试、逻辑驱动测试或基于程序本身的测试。 白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。优点和缺点 1.优点

·昂贵 ·迫使测试人员去仔细思考软件的实现 ·可以检测代码中的每条分支和路径 ·揭示隐藏在代码中的错误 ·对代码的测试比较彻底 2. 划分了等价类后,就可以说,如果对该集合中某个元素所进行的测试没有发现错误的话,那么对该集合中其他元素所进行的测试也不大可能会发现错误。 使用等价类划分方法设计测试用例主要有两个步骤:(1)确定等价类;(2)生成测试用例 黑盒测试的优缺点 优点:

软件测试概论(TS)考试试题

软件测试概论(TS)考试试题 选择题 1) 以下关于测试和调试的说法中,正确的是(a )。(选择一项) a) 测试工作包括发现错误,以及确定错误的原因和确切位置,排除软件中的 错误 b) 测试就是调试,两者没有什么区别 c) 测试是在开发完成后的测试阶段才开始 d) 调试的目的是定位和纠正错误 2) 以下关于测试的定义中,错误的是(b)。(选择一项) a) 为找出错误而运行程序或系统的过程 b) 一切以评价程序或系统的属性、能力为目的的活动 c) 评价程序或系统的过程 d) 测试是在用户需求和开发技术之间找区别 3) 以下关于测试的目的描述,错误的是(a)。(选择一项) a) 为了说明程序中没有缺陷 b) 在于发现了迄今尚未发现的缺陷 c) 揭示潜伏在软件里的缺陷 d) 为软件产品的质量测量和评价提供依据 4) 通常情况下,软件测试至少要达到下列目标,其中错误的是(d)。(选择一项) a) 确保产品完成了它所承诺或公布的功能 b) 确保产品满足性能和效率的要求 c) 确保产品是健壮的、适应用户环境的 d) 确保产品的质量达到用户的需求 5) 下列软件测试的“行业规则”或者“工作常识”中,描述错误的是(c )。(选 择一项) a) 所有的测试都应追溯到用户需求 b) 应该在测试工作真正开始前的较长时间内就进行测试计划 c) 测试应从“大规模”开始,逐步转向“小规模” d) 为了达到最佳效果,应该由独立的第三方来构造测试 6) 软件工程是开发、运行、维护和修复软件的系统方法。软件工程具有如下的性质, 其中错误的是(a)。(选择一项)

a) 软件工程是一门综合性的交叉学科,它涉及计算机科学、工程科学、管理 科学、数学等领域 b) 软件工程要用工程科学中的观点来进行费用估算、制定进度、制定计划和 方案 c) 软件工程要用数学科学中的方法和原理进行软件生产的管理 d) 软件工程要用数学的方法建立软件开发中的各种模型和各种算法,如可靠 性模型、说明用户需求的形式化模型等 7) 在任何生命周期模型中,一个好的测试都应该具有一些特点,以下描述错误的特 点是(c)。(选择一项) a) 每个开发活动都有相对应的测试活动 b) 每个测试级别都有其特有的测试目标 c) 对于每个测试级别,不需要在相应的开发活动过程中进行相应的测试分析 和设计 d) 在开发生命周期中,测试员在文档初稿阶段就应该参与文档的评审 8) 在开发软件过程中有各种不同的方法。对特定项目而言,没有哪个模式一定是最 好的。以下不属于最常用的模式是(a)。(选择一项) a) 大爆炸模式 b) 边写边做模式 c) 瀑布模式 d) 螺旋模式 9) 下面描述敏捷软件开发的目中错误的是(c)。(选择一项) a) 通过过程和工具理解个人和交流的作用 b) 通过开发的文档理解运行的软件 c) 通过合同和谈判得到客户的协作 d) 在计划的执行中做出对变更的响应 10) 概括地说,软件测试过程模型中H模型不能揭示的是(d)。(选择一项) a) 软件测试不仅仅指测试的执行,还包括很多其他的活动 b) 软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地 进行 c) 软件测试要尽早准备,尽早执行 d) 软件测试是根据被测物的不同而同时进行的 11) 在Bugzilla中,如果一个缺陷的处理状态被开发人员置为Wontfix,则表明()。 (选择一项) a) 这个bug中描述的不是问题

软件测试与软件质量关系的概述

软件测试与软件质量关系的概述 摘要:软件测试和软件质量的概念是分不开的。测试是手段,质量是目的。软件测试能够提高软件质量,但是软件测试和软件质量保证二者之间既存在包含又存有交叉的关系。软件测试能够找出软件缺陷,确保软件产品满足需求。但是测试不是质量保证。测试可以查找错误并进行修改,从而提高软件产品的质量。软件质量保证则是避免错误以求高质量,并且还有其他方面的措施以保证质量问题。本文是通过软件质量和软件测试的相关概念来讨论软件测试和软件质量之间的关系。 关键字:软件测试;质量度量;质量模型;白盒测试;黑盒测试 An overview of the relationship between software testing and the software quality Abstract:The concept of software testing and software quality are inseparable. Testing is a means, quality is the goal. Software testing can improve the quality of software, but software testing and software quality assurance exists between include and exists a relationship of cross. Software testing to identify software defects, to ensure that the software products meet the demand. But the test is not quality assurance. Test can find errors and modified, so as to improve the quality of software products. Software quality assurance is to avoid mistakes in order to high quality, and other aspects of measures to ensure the quality problem. This article is through the related concepts of

浅析如何提升软件测试质量

龙源期刊网 https://www.doczj.com/doc/bf10535962.html, 浅析如何提升软件测试质量 作者:邱恩海 来源:《数字技术与应用》2010年第04期 摘要:随着软件测试受关注程度越来越高,如何采用技术手段有效提高软件测试质量就成了软件测试领域的一个重要课题。本文从软件测试的基本概念开始,对如何以软件测试性设计为 中心、合理运用软件测试技术来提升软件测试质量提出了自己的看法。 关键词:软件测试测试性设计测试质量 软件产品的质量取决于软件开发过程,软件测试作为软件生存期中的一个重要阶段,受重视程度越来越高。软件测试是保证软件质量和可靠性的关键步骤,也是用来验证软件是否能够完 成所期望功能的唯一有效的方法。测试已不仅仅局限于软件开发中的一个阶段,它已开始贯穿 整个软件开发过程,进行测试的时间越早,整个软件开发成本下降就越多。大量统计表明,软件测试的工作量往往占到软件开发总量的40%以上,在极端的情况下,甚至可能高达软件工程其它步骤成本总和的三至五倍,其目的是尽可能的提高软件产品的质量和可靠性。 1 软件测试相关概念 (1)软件测试:软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计出一批测试用例,并利用这些测试用例的运 行结果来发现程序错误的过程。 (2)软件测试用例:测试用例实际上是对软件运行过程中所有可能存在的目标、运动、行动、环境和结果的描述。测试用例是测试组织的最小单位,指对一项特定的软件产品进行测试 任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、 测试步骤、预期结果、测试脚本等,并最终形成文档。 软件测试的核心是设计和执行测试用例。而测试用例的选择问题可以看作是从庞大的输入状态组合中,搜寻哪些可以发现错误的状态组合。因此需要用抽象的手段来尽量使测试更加有效。 (3)测试用例库:完整的单元测试很少只执行一个测试用例,开发人员通常都需要编写多个测试用例才能对某一软件功能进行比较完整的测试,这些相关的测试用例称为一个测试用例集。 将大量的测试用例收集到测试用例库中,合理的分类后供测试人员选择使用,能够极大地提高软件问题的发现率。

(完整版)软件测试计划范例

测试计划

目录 1.概述............................................................................................................................................ (1) 1.1产品简介1 1.2范围1 1.3限制条件1 1.4参考文档1 2.约定2 2.1测试目标2 2.2接收规范2 2.3资源和工具2 2.3.1资源2 2.3.2工具2 2.4送测要求2 2.5编号规则2 3.测试种类及测试规范3 3.1测试种类3 3.2测试方法及规范3 3.2.1功能测试3 3.2.2业务测试3 3.2.3压力测试3 3.2.4安装测试3 3.2.5验收测试3 4.测试重点及顺序4 4.1预测风险4 4.2测试重点4 4.2.1功能测试4 4.2.2业务测试4 5.暂停规范和再启动要求5 6.测试任务和进度6 7.测试提交物7

1.概述 1.1产品简介 本次开发是在销售助手一期的基础上进行的后续开发,包括新增客服功能模块、解决一期遗留的售前部分问题、完成必要的库房经管功能。二期结束后产品就成为一个比较完整的销售经管软件。 1.2范围 本测试计划是针对<销售助手二期概要设计说明书>中规定内容的测试计划,包括:?改进后的报价书 ?改进后的客户关怀 ?销售机会中新增加的客户反馈 ?销售机会中新增加的客户组织分析 ?销售机会中改进的竞争经管(待定) ?销售机会中改进的联系人 ?改进后的产品和价格配制器 ?新增的销售知识库 ?新增的联系活动经管 ?新增的客户请求模块 ?新增的客服活动模块 ?新增的客服合同模块 ?新增的客服计划模块 ?新增的客服知识库模块 ?新增的完成关联任务模块 ?公共部分新加或改进的日历浏览数据 ?公共部分新加或改进的报表功能 ?公共部分新加或改进的个人事务中心 1.3限制条件 本测试计划受限于产品开发人员提交测试的内容和时间的事实。根据开发人员提交模块的实际情况,本计划会做出相应修改。 1.4参考文档

软件测试的概述及方法

软件测试的概述及方法 摘要 从软件产业的发展初期到目前的大型软件开发过程,软件测试已成为其中一个不可分割的部分。随着软件规模的日益增大,软件测试问题也日益突出,现代社会对软件的依赖越来越强,高可信软件测试有着广泛的需求,基于缺陷模式的软件测试技术作为高可信软件的重要保证,可以大大降低软件的缺陷密度,提高软件的可信性。本文从测试的基本概念入手,深入剖析软件测试相关理论。 关键字:软件测试、白盒测试、黑盒测试、类测试

目录 1 软件测试的发展史 (3) 2 软件测试的相关背景 (4) 3 软件测试的概述 (8) 3.1 软件测试的定义 (8) 3.2 软件测试的描述 (8) 3.3 软件测试的目的 (9) 3.4 软件测试的原则 (10) 4 软件测试的内容 (11) 4.1 验证 (11) 4.2 确认 (11) 5 软件测试的分类 (12) 5.1 常用分类 (12) 5.2 黑盒测试 (12) 5.3 白盒测试 (12) 5.4 静态测试 (15) 5.5 动态测试 (15) 6 软件测试中的类测试 (16) 6.1 测试中的关键 (16) 6.2 类测试技术 (16)

1 软件测试的发展史 软件测试方法之所以没能完全标准化和统一化,主要原因是因为软件产业产品到软件测试有各式各样的软件。但是目前仍有很多各样软件测试方法都基本可用的常用概念和方法。我们这里介绍的思路和方法就是可用于多数应用软件的测试。有六个有关软件测试方法的基本概念是很重要的:白箱测试,黑箱测试,灰箱测试,有效用例和无效用例,边界条件以及等价类测试。 20世纪60年代(软件工程建立前),为表明程序正确而进行测试。. 1972 年在北卡罗来纳大学举行了首届软件测试正式会议。. 1975年John Good Enough 和Susan Gerhart 在IEEE上发表了《测试数据选择的原理》的文章,软件测试被确定为一种研究方向。1979年,Glenford Myers 的《软件测试艺术》,对测试做了定义:测试是为发现错误而执行的一个程序或者系统的过程。20世纪80年代早期,“质量”的号角开始吹响。 软件测试定义发生了改变,测试不单纯是一个发现错误的过程,而且包含软件质量评价的内容。制定了各类标准。. 1983年,Bill Hetzel 在《软件测试完全指南》中指出:测试是以评价一个程序或者系统属性为目标的任何一种活动,测试是对软件质量的度量。20 世纪90 年代,测试工具盛行起来。. 1996年提出的测试能力成熟度TCMM (Testing Capability Maturity Model )、测试支持度TSM(Testability Support Model )、测试成熟度TMM (Testing Maturity Model )。. 到了2002年,Rick和Stefan 在《系统的软件测试》一书中对软件测试做了进一步定义:测试是为了度量和提高被测软件的质量,对测试软件进行工程设计、实施和维护的整个生命过程。

软件质量保证测试试题与答案

软件质量保证测试试题与答案

选择题 1.软件测试的目的是( B )。 A)试验性运行软件 B)发现软件错误 C)证明软件正确 D)找出软件中全部错误 2.软件测试中白盒法是通过分析程序的( B )来设计测试用例的。 A)应用范围 B)内部逻辑C)功能 D)输入数据 3.黑盒法是根据程序的( C )来设计测试用例的。A)应用范围 B)内部逻辑C)功能 D)输入数据 4.为了提高软件测试的效率,应该( D )。 A)随机地选取测试数据 B)取一切可能的输入数据作为测试数据 C)在完成编码以后制定软件的测试计划 D)选择发现错误可能性最大的数据作为测试用例 5.与设计测试用例无关的文档是( A )。 A)项目开发计划 B)需求规格说明书 C)设计说明书 D)源程序 6.测试的关键问题是( B )。 A)如何组织软件评审 B)如何选择测试用例 C)如何验证程序的正确性 D)如何采用综合策略 7.软件测试用例主要由输入数据和( C )两部分组成。A)测试计划 B)测试

规则 C)预期输出结果 D)以往测试记录分析 8.成功的测试是指运行测试用例后( B )。 A)未发现程序错误 B)发现了程序错误 C)证明程序正确性 D)改正了程序错误 9.下列几种逻辑覆盖标准中,查错能力最强的是( D )。A)语句覆盖 B)判定覆盖C)条件覆盖 D)条件组合覆盖 10.在黑盒测试中,着重检查输入条件组合的方法是( D )。 A)等价类划分法 B)边界值分析法 C)错误推测法 D)因果图法 11.单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是( A )。A)系统功能 B)局部数据结构 C)重要的执行路径 D)错误处理 12.软件测试过程中的集成测试主要是为了发现( B )阶段的错误。 A)需求分析 B)概要设计 C)详细设计 D)编码13.不属于白盒测试的技术是( D )。 A)路径覆盖 B)判定覆盖C)循环覆盖 D)边界值分析 14.集成测试时,能较早发现

软件质量与检验测试期末复习资料(概念篇)

软件质量保证与测试期末复习 (概念篇) 1.软件质量: (1)IEEE关于软件质量的定义。 软件质量是:1.系统、部件或者过程满足规定需求的程度。 2.系统、部件或者过程满足顾客或者用户需要或期望的程度。 (2)ANSI关于软件质量的定义。 具体包括:1.软件产品中能满足用户给定需求的全部特性的 集合。2.软件具有所期望的各种属性组合的程度。3.用户主观 得出的软件是否满足其综合期望的程度4.决定所用软件在 使用中能将满足其综合期望程度的软件合成特性。 2.软件质量保证(SQA): (1)一种有计划的,系统化的行动模式,它是为项目或者产品符合己有技术需求提供充分信任所必需的。(2)设计用来评价开収或者制造产品的过程的一组活动,与质量控制有区别。 3.软件测试: 软件测试是使用人工或自动手段来运行或测定某个系统的过程,检测它是否满足规定的需求或者弄清预期结果与实际结果的差别。 4.软件测试的方法: (1)静态方法和动态方法(2)黑盒测试、白盒测试和灰盒测试(3)基于软件开収阶段的测试方法

需求测试单元测试集成测试性能测试压力测试容量测试配置测试回归测试安装测试安全性测5.软件测试的目的: (1)证明:获取系统在可接受风险范围内可用的信心;尝试在非正常情况和条件下的功能和特性;保证一个工作产品是完整的并且可用或可被集成。 (2)检测:发现缺陷、错误和系统不足;定义系统的能力和局限性;提供组件、工作产品和系统的质量信息。 (3)预防:澄清系统的规格和性能;提供预防或减少可能制造错误的信息;在过程中尽早检测错误;确认问题和风险,并且提前确认解决这些问题和风险的途径。 6.测试过程中应注意和遵循的原则: (1)测试不是为了证明程序的正确性,而是为了证明程序不能工作。(2)测试应当有重点。(3)事先定义好产品的质量标准。(4)软件项目一启动,软件测试也就开始,而不是等到程序写完才开始进行测试。(5)穷举测试是不可能的。(6)第三方进行测试会更客观,更有效。(7)软件测试计划是做好软件测试工作的前提。(8)测试用例是设计出来的,不是写出来的。(9)对发现错误较多的程序段,应进行更深入的测试。(10)重视文档,妥善保存一切测试过程文档。 7.测试用例: 测试用例是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、

软件测试第1章习题答案

第1章软件测试概述 1.简述软件测试的意义。 解:随着计算机技术的迅速发展和广泛深入的应用,软件质量问题已成为开发和使用软件人员关注的焦点。而由于软件本身的特性,软件中的错误是不开避免的。不断改进的开发技术和工具只能减少错误的发生,但是却不可能完全避免错误。因此为了保证软件质量,必须对软件进行测试。软件测试是软件开发中必不可少的环节,是最有效的排除和防治软件缺陷的手段,是保证软件质量、提高软件可靠性的最重要手段。 2.什么是软件缺陷?它的表现形式有哪些? 解:从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需实现的某种功能的失效或违背。 它的表现形式主要有以下几种:(1)软件未达到产品说明书中已经标明的功能;(2)软件出现了产品说明书中指明不会出现的错误;(3)软件未达到产品说明书中虽未指出但应当达到的目标;(4)软件功能超出了产品说明书中指出的范围;(5)软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。 3.简单分析软件缺陷产生的原因,其中那个阶段引入的缺陷最多,修复成本又最低? 解:软件缺陷产生的主要原因有:需求规格说明错误;设计错误;程序代码有误;其他。其中在需求分析阶段引入的缺陷最多,修复的成本又最低。 4.当用户登录某网站购物完毕并退出后,忽然想查查购物时付账的总金额,于是按了浏览 器左上角的“退回”按钮,就又回到了退出前的网页,你认为该购物软件有缺陷吗?如果有,属于哪一类? 解:有缺陷。其所属类别与软件产品说明书的要求有关。 5.什么是软件测试?简述其目的与原则。 解:软件测试是为了尽快尽早地发现在软件产品中所存在的各种软件缺陷而展开的贯穿整个软件开发生命周期,对软件产品(包括阶段性产品)进行验证和确认的活动过程。 测试目的:(1)证明:获取系统在可接受风险范围内可用的信心;尝试在非正常情况和条件下的功能和特性;保证一个工作产品是完整的并且可用或可被集成。(2)检测:发现缺陷、错误和系统不足;定义系统的能力和局限性;提供组件、工作产品和系统的质量信息。(3)预防:澄清系统的规格和性能;提供预防或减少可能制造错误的信息;在过程中尽早检测错误;确认问题和风险,并且提前确认解决这些问题和风险的途径。 测试过程中应注意和遵循的原则:(1)测试不是为了证明程序的正确性,而是为了证明程序不能工作。(2)测试应当有重点。(3)事先定义好产品的质量标准。(4)软件项目一启动,软件测试也就开始,而不是等到程序写完才开始进行测试。(5)穷举测试是不可能的。(6)第三方进行测试会更客观,更有效。(7)软件测试计划是做好软件测试工作的前提。

软件质量标准与测试依据和规范

1. 软件质量标准(ISO) 1.1 软件质量保证(ISO) ISO (International Standardization Organization,国际标准化组织) TC/176技术委员会制定的所有国际标准 ?质量保证标准(ISO9001/2/3) ?质量管理标准(ISO9004) TC176即ISO中第176个技术委员会,成立于1980年,全称是“质量保证技术委员会”,1987年又更名为“质量管理和质量保证技术委员会”。TC176专门负责制定质量管理和质量保证技术的标准 1.2 ISO 软件质量标准思想 ?控制思想,即对产品形成的全过程进行控制。任何事物都是由一个或多个过程活动的结果,只要对产品形成的全过程进行控制并达到过程质量要求,最终产品的质量就有了保证 ?预防的思想。通过对产品形成的全过程进行控制以及建立并有效运行自我完善机制达到预防不合格,从根本上减少或消除不合格品 1.3 ISO 软件质量标准结构 ISO9000系列标准的主体部分分为两组: ?“需方对供方要求质量保证”的标准ISO9001-9003 ?“供方建立质量保证体系”的标准ISO9004

ISO9001:设计/开发、生产、安装和服务中质量保证模式; ISO9002:生产和安装中的质量保证模式; ISO9003:最终检验和测试中的质量保证模式; ISO9004:质量管理和质量体系要素导则。 1.3.1 ISO9000与GB/T19000的关系 1.3.2 ISO9000-3 是什么 ISO9000-3其实是ISO质量管理和质量保证标准在软件开发、供应和维护中的使用指南,

并不作为质量体系注册/认证时的评估准则,主要考虑软件行业的特殊性制定。参照ISO9001《质量体系设计、开发、生产、安装和服务的质量保证模式》,并引用ISO 8402《质量管理和质量保证术语》,使得ISO9000系列标准应用范围得以拓展 . 1.3.3 ISO9000-3标准 软件开发、供应、维护中应用ISO9001的指南 是指南,不是标准 依然困惑:依然强调的是供应商和顾客的关系,不是工程师该如何做 1.3.4 ISO 9000-3 体系结构 ?合同评审 ?需方需求规格说明 ?开发计划 ?质量计划 ?设计和实现 ?测试和确认 ?验收 ?复制、交付和安装 ?维护 2.软件测试规范 2.1 概念 软件测试规范就是对软件测试的流程过程化并对每一个过程元素进行明确的界定,形成完整的规范体系。

新手必备软件测试知识概论

1.软件生命周期(SDLC)的六个阶段 1、问题的定义及规划 此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。 2、需求分析 在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。需求分析阶段是一个很重要的阶段,这一阶段做得好,将为整个软件开发项目的成功打下良好的基础。"唯一不变的是变化本身。",同样需求也是在整个软件开发过程中不断变化和深入的,因此我们必须制定需求变更计划来应付这种变化,以保护整个项目的顺利进行。 3、软件设计 此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等。软件设计一般分为总体设计和详细设计。好的软件设计将为软件程序编写打下良好的基础。 4、程序编码 此阶段是将软件设计的结果转换成计算机可运行的程序代码。在程序编码中必须要制定统一,符合标准的编写规范。以保证程序的可读性,易维护性,提高程序的运行效率。 5、软件测试 在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。整个测试过程分单元测试、组装测试以及系统测试三个阶段进行。测试的方法主要有白盒测试和黑盒测试两种。在测试过程中需要建立详细的测试计划并严格按照测试计划进行测试,以减少测试的随意性。 6、运行维护 软件维护是软件生命周期中持续时间最长的阶段。在软件开发完成并投入使用后,由于多方面的原因,软件不能继续适应用户的要求。要延续软件的使用寿命,就必须对软件进行维护。软件的维护包括纠错性维护和改进性维护两个方面。 2、软件生命周期模型 从概念提出的那一刻开始,软件产品就进入了软件生命周期。在经历需求、分析、设计、实现、部署后,软件将被使用并进入维护阶段,直到最后由于缺少维护费用而逐渐消亡。这样的一个过程,称为"生命周期模型"(Life Cycle Model)。 典型的几种生命周期模型包括瀑布模型、快速原型模型、迭代模型。 瀑布模型的特点(文档是主体),很多的问题在最后才会暴露出来。迭代模型比瀑布模型问题暴露的要早;快速原型法比瀑布模型直观。 3.软件测试概念 广义概念:指软件生存周期中所有的检查、评审和确认工作,其中包括了对分析、设计阶段,以及完成开发后维护阶段的各类文档、代码的审查和确认

软件测试和软件质量保证练习答案

第一章软件质量保证 练习答案 1、软件质量的定义? 软件质量是软件产品满足使用要求的程度。对于软件质量的衡量,就是高质量的软件系统能够准时地交付给用户,所耗费的成本不超出预算,并且最重要的是,能够正常地运行。“正常地运行”意味着该软件必须尽可能没有缺陷( bug)。 2、软件质量保证的定义? 软件质量保证是一系列系统性的活动,它提供开发出满足使用要求产品的软件过程的能力证据。 3、质量控制中的测试技术有哪些?想一想各自的适用情况。 审查( Inspection ):软件的一种基本测试方法,它以一系列典型问题为依据进行检测。 走查( Walkthrough ):一对一的审查,比审查更加仔细。 回顾(Review):以发现软件中存在的错误和缺陷为目的的一种软件测试方法,它是在软件证实执行之前完成。 4、SDLC各阶段的文档有哪些,各自的质量目标是什么? 请参照学生用书3-5 页,对于各阶段的目标,抓住主要的要点。 5、质量计划的手段和技巧分别有哪些? A、效益成本分析 B、基本水平标准 C流程图,包括因果图、系统程序流程图等 D试验设计 6、质量控制的手段和技巧分别有哪些? 有以下控制的手段和技巧:检验、控制表、排列图、抽样调查统计、流程图和趋势分析等。 作业答案 1、判断是非:好的测试员不懈追求完美。 错。好的测试员知道何时完美无法企及,何时达到“够好”。 2、有没有质量很高但是可靠性很差的产品?请举例说明。 有可能,但是它取决于客户对质量的期望。不少人购买高性能跑车,认为提速、时速、式样、舒适度和装饰好就是高质量。此类汽车一般可靠性差,经常抛锚,修理费用昂贵,而车主不把可靠性差当作质量问题。3、请思考,可能完全测试程序吗?除了极短小的简单程序,完全测试需要太多的输入、输出和分支组合。此 外,软件说明书 也许不客观,可以用多种方式解释。 4、在学习完本章后,判断下列哪种方法会减少成本: a、让客户去找缺陷

相关主题
文本预览
相关文档 最新文档