微软用户_引子_引子软件测试在整个软件开发过程中的作3957901800001

更新时间:2023-08-09 06:15:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

引子

1. 软件测试在整个软件开发过程中的作用

软件测试是对软件产品和阶段性工作成果进行质量检验,力求发现其中的各种缺陷,并督促修正缺陷,从而控制和保证软件产品的质量。所以软件测试是软件公司致力于提高软

件产品质量的重要手段之一。

软件缺陷发现越迟代价越大

缺陷发现越迟,影响范围越广

缺陷发现越迟,返工的工作量越大

缺陷发现越迟,造成的危害越大

2. V模型的理解

1 )软件测试和软件开发构成一个全过程的交互、协作的关系,两者自始至终一起工作,共同致力于同一个目标一一按时、高质量地完成项目。

2)在V模型中,前半部分是开发,可由需求分析定义,系统、架构设计、详细或程序设计,编码构成。测试过程被加在开发过程的后半部分。单元测试所检测代码的开发是否符

合详细设计的要求。集成测试所检测此前测试过的各组成部分是否能完好地结合到一起。系

统测试所检测已集成在一起的产品是否符合系统规格说明书的要求。而验收测试则检测产品

是否符合最终用户的需求。

第1章

1?软件质量的概念,质量需求包括功能的、非功能的、用户需求和企业需求

软件产品满足规定的和隐含的与需求能力有关的全部特征和特性,包括:

1)软件产品质量满足用户要求的程度

2)软件各种属性组合的程度

3)用户对软件产品的综合反映程度

4)软件在使用过程中满足用户要求的程度

质量需求:就是通过人机交互界面来完成用户所需的各项操作,包括数据的输入和结果输出。

非功能的:主要体现在性能,可用性,可靠性,兼容性,安全性,

用户需求:质量的用户需求是和用户直接相关的质量需求,包含功能性需求和部分非功能需

求。

企业需求:主要是一些给功能性的需求,如软件的可维护性,兼容性,可移植性和可扩展性。

2?软件缺陷的定义

软件缺陷就是软件产品中所存在的问题,最终表现为用户所需要的功能没有完全实现,不能满足或不能全部满足用户的需求。

从内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题; 从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。

3?软件缺陷和软件错误的区别

软件缺陷范围更广,涵盖了软件错误,还涵盖不一致性问题、功能需求定义缺陷和产品设计缺陷等。软件错误,属于软件缺陷的一种一一程序或系统的内部缺陷,往往是软件代码

本身的问题。

软件错误往往会导致系统的某项功能失效或者使用的故障,即软件内部缺陷最终表现为外部

缺陷。外部缺陷主要表现为软件故障或功能失效,即软件提供给用户的功能或服务,不能达

到用户的要求或没有达到事先设计的指标,如:突然中断

4. 软件测试的定义(几种不同的观点,怎样理解)

1

1)软件测试的狭义观点和广义观点

a. 狭义观点:程序测试是为了发现错误而执行程序的过程(瀑布模型)

b. 广义观点:将测试延伸到需求评审、设计审查活动中去。由静态测试和动态测试构成一个全过程的、完整的软件测试。

2)软件测试的辩证观点

a. 正向思维:验证软件是-工作的|,,以正向思维,针对软件系统的所有功能点,逐个验证其正确性。

b. 逆向思维:证明软件是—不工作的II,以反向思维方式,不断思考开发人员理解的误区、不良的习惯、程序代码的边界、无效数据的输入以及系统的弱点,试图破坏系统、摧毁系统,目标就是发现系统中各种各样的问题。

3)软件测试的风险观点

软件测试是对软件系统中潜在的各种风险进行评估的活动

4)软件测试的经济学观点

一个好的测试用例是在于它能发现至今未发现的错误。缺陷发现得越早,所造成得

代价就越低,这就是从经济学的观点来说明测试越早越好。

5)软件测试的标准观点

软件测试就是—验证(Verification )和—有效性确认(Validation )I活动构成的整体,即软件测试= V&V

5. 软件测试的目标

1)直接目标——就是为了更快更早地将软件产品或软件系统中所存在的问题找出来, 以促进系统分析人员、设计人员和程序员尽快地解决这些问题。

2)间接目标——软件测试的间接目标是验证了所有功能已按照事先设计或定义而实现。但其直接目的并非验证每个功能都能实现, 而是设法找到每个功能不能正常实现的地方, 即尽量促使软件故障的产生。

6. 测试过程和开发过程的关系(W 模型,同步和依赖关系)

A.测试过程和开发过程保持同步的关系。软件分析、设计和实现的过程,同时伴随着软件测试——验证和确认的过程

B.测试过程是对开发过程中阶段性成果和最终的产品进行验证的过程, 而软件开发的进一步活动又依赖于测试的结果。所以两者相互依赖。前期,更多地依赖开发过程(设计和

实现能力决定整个软件过程的进展状态), 后期更多地依赖测试过程(测试策略和能力, 会直接影响测试效率,测试效率高就能更快地发现缺陷,缺陷就能得到更快地修正)。

C.测试工作的重点和开发工作的重点可能是不一样的,两者有各自的特点。不论是在资源管理,还是风险管理上,两者都存在差异。

2

测试&开发的同步关系

第2章

1?测试计划的目标

测试计划的目标是提供一个框架、不断收集信息,对不确定性进行分析,将不确定性的内容慢慢转化为确定性的内容,该过程最终使得项目测试负责人能够对资源、成本及进度进行越

*2.需求评审的重要性

1)产品需求审查和评审是软件开发重要环节之一,也是测试活动之一,即静态测试需求

验证。通过需求审查保证系统需求在市场/产品需求文档及其相关文档中得到准确、完整、

无歧义的反映,并使各类开发人员在需求理解上达成一致。

2 )软件缺陷并不只是在编程阶段才产生,需求和设计阶段同样会产生缺陷。

3)需求评审重要性表现方面

发现需求定义中的问题,尽早发现缺陷,降低劣质成本。

保证软件需求的可测试性。

与市场、产品、开发等相关人员在需求理解上认识一致,以免后期的争吵。

通过需求评审,更好的理解产品的功能性与非功能性需求,为制定测试计划打下基础。

确定测试目标与范围。虽然此后需求会发生变更,但能得到有效控制,降低测试风险。

*3.评审的类型

管理评审、技术评审、文档评审、流程评审

*4.需求评审的标准

*1.为什么要进行设计验证P85-86

软件设计是把软件需求转换为软件表示的过程,也是将用户需求准确转化为软件系统的唯一途径,对软件

3

设计进行验证,就是更好地保证这种转换的正确性和完整性,也是为了更好地设计系统测试的用例。再者,软件设计的验证,需要在编程之前进行,这样做可避免变成

误入歧途,并为软件部署的准备获得更多的时间。这一切,都有助于缩短软件开发周期,使

产品早日面向市场,提高软件企业的竞争力。

验证过程与确认过程(V&V )看起来类似,但是它们目标不同,处理的对象也不同,“验证”是检验软件工作产品是否符合规定的设计要求,而“确认”过程则要证明所开发的最终

产品在其预定的环境中能发挥预定的作用,满足客户使用的需求。“验证”是以产品设计规

格说明书作为依据的,而“确认”是以客户需求为目标的。

第4章

1?为什么要测试用例

测试需求和范围通过测试用例体现出来,并以更为有效的方式来执行测试,以便于更快地发

现程序的缺陷。测试用例是测试脚本开发、测试执行的基础,只有设计好测试用例才能保证测试的覆盖率。

A. 测试用例是测试人员测试过程中的重要参考依据。

B. 测试用例可以帮助实施有效的测试。

C. 良好的测试用例不断的被重复使用,使得测试事半功倍

D. 测试用例是一个知识积累的过程。

E测试用例是一个知识传递的过程

F.即使是很小的项目,也可能会哟几千甚至更多的测试用例

G从项目管理的角度讲,测试用例的通过率检验代码质量保证效果最主要的指标之一。

H.测试用例也可以评估测试人员进度,工作量,以及跟踪或管理测试人员的工作效率的主要因素

测试用例是测试工作的指导,是软件测试的必须遵守的准则,更是软件测试质量稳定的根

本保障。

2?测试用例的元素

测试目标、测试对象、测试环境要求、测试前提、输入数据和操作步骤,概括为5W1H

a. Why ----- 为什么而测?

b. What——测什么?

c. Where ----- 在哪里测?

d. When ------ 什么时候开始测?

e. Which——哪些输入数据?

f. How ----- 如何操作软件?

3. 对黑盒测试和白盒测试的理解答:黑盒测试方法:是把程序看做一个不能打开的黑盒子,在完全不考虑内部结构和内部特

性的情况下来考察数据的输入,条件限制和数据输出,进而完成测试。黑河测试方法,指根

据用户的需求和已经定义好的产品规格,针对程序结构和用户界面进行测试,检验程序是否

能适当接受输入数据而产生正确的输出信息,并且保持外部信息的完整性。

白盒测试方法:也称为结构测试或逻辑驱动测试,就是清除软件产品内部的逻辑结构和工作

过程,针对程序语句,路径,变量状态等进行测试。例如,检验程序的各个分支是否得到满足,检验程序是否按照事先预定的路径进行执行。白盒测试的主要方法有逻辑覆盖,分支覆

4

盖、条件组合覆盖,基本路径测试等。

4?黑盒和白盒的区别

1)黑盒测试的优点有:

a?比较简单,不需要了解程序内部的代码及实现;

b?与软件的内部实现无关;

c?从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;

d?基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;

e.在做软件自动化测试时较为方便。

2)黑盒测试的缺点有:

a不可能覆盖所有的代码,覆盖率较低;

b.自动化测试的复用性较低。

3)白盒测试的优点有:

帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。

4)白盒测试的缺点有:

a. 程序运行会有很多不同的路径,不可能测试所有的运行路径;

b. 测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;

c. 系统庞大时,测试开销会非常大。

5. 功能测试的内容

界面测试、数据测试、操作测试、逻辑测试、接口测试

6. 功能测试的方法(等价类法、*边界值法、*因果图法、*决策表法、*错误推测法、*场景

法、*状态图法、*正交实验法)

等价类法:分为有效等价类和无效等价类

1)边界值法:

对16-bit的整数而言32767和-32768是边界

屏幕上光标在最左上、最右下位置

报表的第一行和最后一行

数组元素的第一个和最后一个

循环的第0次、第1次和倒数第2次、最后一次

a. 边界值分析法利用输入变量的最小值(min)、略大于最小值(min+)、输入值域内的任意值(nom)、略小于最大值(max-)和最大值(max)来设计测试用例

b. 推论:对于一个含有n个变量的程序,采用边界值分析法测试程序会产生4n+1个测试用

例。

例:有二元函数f(x,y),其中x

本文来源:https://www.bwwdw.com/article/hdkj.html

Top