软件项目测试复习资料_精品文档.doc
《软件项目测试复习资料_精品文档.doc》由会员分享,可在线阅读,更多相关《软件项目测试复习资料_精品文档.doc(5页珍藏版)》请在冰豆网上搜索。
1.名词解释:
软件缺陷:
软件缺陷即计算机系统或程序中存在的任何一种破坏正常运行
能力的问题、错误或者隐藏的功能缺陷、瑕疵。
包括:
(1)软件未实现产品说明书要求的功能。
(2)软件出现了产品说明书指明不会出现的错误。
(3)软件超出实现了产品说明书提到的功能。
(4)软件实现了产品说明书虽未明确指出但应该实现的目标。
(5)软件难以理解,不易使用,运行缓慢或者终端用户认为不好。
软件测试:
软件测试是为了发现程序中的错误而实施的一些方法和手段。
静态测试:
静态测试就是通过对被测程序的静态审查,发现代码中潜在的错误。
它一般用人工方式脱机完成,故亦称人工测试或代码评审
动态测试:
动态测试的对象必须是能够由计算机真正运行的被测试的程序。
它分为黑盒测试和白盒测试.
黑盒测试:
黑盒测试是一种从用户观点出发的测试,又称为功能测试,数据驱动测试和基于规格说明的测试。
忽略程序内部的结构的特性,测试者在只知道该程序输入和输出之间的关系或程序功能的情况下,依靠能够反映这一关系和程序功能需求规格的说明书,来确定测试用例和推断测试结果的正确性。
白盒测试:
白盒测试基于产品的内部结构来进行测试,检查内部操作是否按规定执行,软件各个部分功能是否得到充分利用。
白盒测试又称为结构测试,逻辑驱动测试或基于程序的测试。
单元测试:
单元测试是针对每个单元的测试,是软件测试的最小单位。
它确保每个模块能正常工作。
单元测试多数使用白盒测试,用以发现内部错误。
集成测试:
集成测试是对已测试过的模块进行组装,进行集成测试的目的主要在于检验与软件设计相关的程序结构问题。
集成测试一般通过黑盒测试方法来完成。
2.简述软件测试发展的历史及软件测试的现状。
20世纪60年代,为表明程序正确而进行测试。
1979年,GlenfordJ.Myers的《软件测试艺术》,对测试做了定义:
测试是为发现错误而执行的一个程序或者系统的过程。
20世纪80年代,软件测试定义发生了改变,测试不单纯是一个发现错误的过程,而且包含软件质量评价的内容
20世纪90年代,测试工具盛行起来。
出现了能力成熟度TCMM、测试支持度TSM、测试成熟度TMM等模型和标准。
2002年,Rick和Stefan在《系统的软件测试》一书中对软件测试做了进一步定义:
测试是为了度量和提高被测软件的质量,对测试软件进行工程设计、实施和维护的整个生命周期过程。
3.谈谈你对软件测试的重要性的理解。
在发布新产品之前做好测试,提高软件产品质量,减少漏洞,是预防遭受木马攻击的根本途径。
4.简述软件测试的目标及标准。
软件测试的目的包括以下三点:
(1)测试是程序的执行过程,目的在于发现错误,不能证明程序的正确性,仅限于处理有限种的情况。
(2)检查系统是否满足需求,这也是测试的期望目标。
(3)一个好的测试用例在于发现还未曾发现的错误;成功的测试是发现了错误的测试。
软件测试标准如下:
1.软件测试的目标在于揭示错误。
2.软件测试必须基于“质量第一”的思想去开展各项工作。
3.事先定义好产品的质量标准。
4.软件项目一启动,软件测试也就开始,而不是等程序写完,才开始进行测试。
5.测试用例是设计出来的,不是写出来的,所以要根据测试的目的,采用相应的方法去设计测试用例,从而提高测试的效率,更多的发现错误,提高程序的可靠性。
6.对发现错误较多的程序段,应进行更深入的测试。
5.简述软件测试的原则。
软件测试的原则:
1.应当把尽早地和不断地进行软件测试作为软件开发者的座右铭。
2.测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成。
3.程序员应避免检查自己的程序。
4.在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。
5.充分注意测试中的群集现象。
6.严格执行测试计划,排除测试的随意性。
对于测试计划,要明确规定,不要随意解释。
7.应当对每一个测试结果做全面检查。
8.妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。
6.简述软件测试与软件开发的关系。
1.测试与软件开发各阶段的关系:
软件开发过程是一个自顶向下,逐步细化的过程,而测试过程则是依相反的顺序安排的自底向上,逐步集成的过程。
2.测试与开发的并行性:
在软件的需求得到确认并通过评审后,概要设计工作和测试计划制定设计工作就要并行进行。
3.测试与开发模型
软件测试不仅仅是执行测试,而是一个包含很多复杂活动的过程,并且这些过程应该贯穿于整个软件开发过程。
7.对软件的经济性进行总结分析。
软件测试的经济性有两方面体现:
一是体现在测试工作在整个项目开发过程中的重要地位,二是体现在应该按照什么样的原则进行测试,以实现测试成本与测试效果的统一。
测试是软件生存期中费用消耗最大的环节。
影响测试费用的主要因素有:
(1)软件面向的目标用户
(2)可能出现的用户数量
(3)潜在缺陷造成的影响(4)开发机构的业务能力
8.简述软件测试的复杂性
(1)完全测试是不现实的
(2)软件测试是有风险的
(3)杀虫剂现象(4)缺陷的不确定性
9.阐述软件测试的充分性准则。
软件测试的充分性准则有以下几点:
对任何软件都存在有限的充分测试集合;
当一个测试的数据集和对于一个被测的软件系统的测试是充分的,那么再多增加一些测试数据仍然是充分的。
这一特性称为软件测试的单调性;
即使对软件所有成分都进行了充分的测试,也并不意味着整个软件的测试已经充分了。
这一特性称为软件测试的非复合性;
即使对一个软件系统整体的测试是充分的,也并不意味着软件系统中各个成分都已经充分地得到了测试。
这个特性称为软件测试的非分解性;
软件测试的充分性与软件的需求、软件的实现都相关;
软件测试的数据量正比于软件的复杂度。
这一特性称为软件测试的复杂性;
随着测试次数的增加,检查出软件缺陷的几率随之不断减少。
软件测试具有回报递减率。
10.如何描述测试流程整体框架。
11.简述单元测试的目标。
单元测试的主要目标是确保各单元模块被正确地编码。
单元测试除了保证测试代码的功能性,还需要保证代码在结构上具有可靠性和健全性,并且能够在所有条件下正确响应。
进行全面的单元测试,可以减少应用级别所需的工作量,并且彻底减少系统产生错误的可能性。
单元测试的主要内容有:
模块接口测试;局部数据结构测试;独立路径测试;
错误处理测试;边界条件测试。
12.解释驱动模块和桩模块概念。
(1)驱动模块(driver):
相当于被测模块的主程序。
它接收测试数据,把这些数据传送给被测模块,最后输出实测结果。
(2)桩模块(stub):
用以代替被测模块调用的子模块。
桩模块可以做少量的数据操作,不需要把子模块所有功能都带进来,但不允许什么事情也不做。
13.简述集成测试的层次划分。
集成测试内部对于传统软件和面向对象的应用系统有两种层次的划分。
对于传统软件来讲,可以把集成测试划分为三个层次:
模块内集成测试;子系统内集成测试;子系统间集成测试。
对于面向对象的应用系统来说,可以把集成测试分为两个阶段:
类内集成测试;类间集成测试。
14.归纳确认测试阶段的工作:
15.简述系统测试的流程:
16.归纳验收测试常用的策略。
验收测试常用策略有三种:
(1)正式验收
(2)非正式验收或Alpha测试(3)Beta测试
17.简述验收测试的流程。
18.简述静态测试和动态测试的区别。
动态方法是通过源程序运行时所体现出来的特征,来进行执行跟踪、时间分析以及测试覆盖等方面的测试。
动态测试是真正运行被测程序,在执行过程中,通过输入有效的测试用例,对其输入与输出的对应关系进行分析,以达到检测的目的。
静态测试是:
19.比较阐述黑盒测试和白盒测试的优缺点。
黑盒测试
白盒测试
优点
①适用于各个测试阶段;
②从产品功能角度进行测试;
③容易入手生成测试数据。
④可构成测试数据使特定程序部分得到测试;
⑤有一定充分性度量手段;
⑥可获较多工具支持。
缺点
①某些代码得不到测试;
②如果规则说明有误,无法发现;
③不易进行充分行测试。
④不易生成测试数据;
⑤无法对未实现规格说明的部分进行测试;
⑥工作量大,通常只用于单元测试,有应用局限性。
黑盒测试
白盒测试
性质
一种确认技术,目的是确认“设计的系统是否正确”。
一种验证技术,目的是验证“系统的设计是否正确”。
20.叙述黑盒测试技术的实质及要点:
又称为功能测试、数据驱动测试和基于规格说明的测试。
是一种从用户观点出发的测试。
它主要根据规格说明设计测试用例,并不涉及程序内部结构和内部特性,只依靠被测程序输入和输出之间的关系或程序的功能设计测试用例。
21.常用的黑盒测试用例设计方法有哪些?
各有什么优缺点?
主要包括边界值分析法、等价类划分法、比较测试法、因果图法、决策表法等。
5