. 什么是软件测试,以及软件测试的意义?
软件测试是软件开发过程的重要组成部分,是用来确认一个程序的品质或性能是否符合开发之前所提出的一些要求。软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。软件测试是为了发现错误而执行程序的过程。软件测试在软件生存期中横跨两个阶段:通常在编写出每一个模块之后就对它做必要的测试(称为单元测试)。编码和单元测试属于软件生存期中的同一个阶段。在结束这个阶段后对软件系统还要进行各种综合测试,这是软件生存期的另一个独立阶段,即测试阶段。
软件测试的意义:a.发现软件错误b.有效定义和实现软件成分由低层到高层的组装过程c.验证软件是否满足任务书和系统定义文档所规定的技术要求d. 为软件质量模型的建立提供依据;
2. 什么是软件测试静态分析,软件测试动态分析? 静态分析,是相对动态说的,即不运行程序。
白盒测试一般会用到静态分析和动态分析两类技术,常用的有: 静态分析:控制流分析、数据流分析、信息流分析、检查表、代码走读,需求文档评审。
动态分析:逻辑覆盖测试(分支测试、路径测试等)、程序插装等。
静态测试和动态测试的区别在于是否需要运行被测软件。代码走读最主要的目标是要发现缺陷,遗漏和矛盾的地方;改进产品;
和考虑可替换的实现方法。 具体为:a.静态测试是用于预防的,动态测试是用于矫正的;b.多次的静态测试比动态测试要效率和效益高;c.静态测试综合测试程序代码;d.在相当短的时间里,静态测试的覆盖度能达到100%,而动态测试经常是只能达到50%左右,原因动态测试发现的bug大部分只是在测试实际执行的那部分代码;e.动态测试比静态测试更花时间;f.动态测试比静态测试更花时间;f.静态测试的执行可以在程序编码编译前,动态测试只能在编译后才能执行;g.静态测试能发现动态测试所不能发现的一些:"Syntaxerror,code that hard to maintain,code that hard totest,code that does not confirm to coding standard, and ANSI violations"。
3. 针对缺陷采取怎样的管理措施?
1) 预测此缺陷会导致什么错误现象 属于几级严重度 (如果是一级/致命严重度 立即反馈研发人员,然他们有足够时间进行软件的修改)
2) 进行定位分析,分析是由哪个模块引起的
3) 建议如何进行修改
4) 考虑其他缺陷是否因为这个缺陷所引起
5) 要更好的管理缺陷,必须引入缺陷管理工具,商用的或者开源的都可。
6) 根据缺陷的生命周期,考虑缺陷提交的管理、缺陷状态的管理和缺陷分析的管理。
7) 所有发现的缺陷(不管是测试发现的还是走读代码发现的)都必须全部即时的、准确的提交到缺陷管理工具中,这是缺陷提交的管理。
8) 缺陷提交后,需要即时的指派给相应的开发人员,提交缺陷的人需要密切注意缺陷的状态,帮助缺陷的尽快解决。缺陷解决后需要即时对缺陷的修复进行验证。这样的目的有两个:一个是让缺陷尽快解决;二是方便后面缺陷的分析(保证缺陷相关的信息准确,如龄期等),这是缺陷状态的管理。为了更好的改进开发过程和测试过程,需要对缺陷进行分析,总结如缺陷的类别、缺陷的龄期分布等信息,这是缺陷分析的管理。
4. 在测试生命周期,测试过程分为几个阶段,以及各个阶段的含义?
大体上来说可分为单元测试,集成测试,系统测试,验收测试,每个阶段又分为以下五个步骤:
测试计划,测试设计,用例设计,执行结果,测试报告
初始测试集中在每个模块上,保证源代码的正确性,,该阶段成为单元测试,主要用白盒测试方法。
接下来是模块集成和集成以便组成完整的软件包。集成测试集中在证实和程序构成问题上。主要采用黑盒测试方法,辅之以白盒测试方法。
软件集成后,需要完成确认和系统测试。确认测试提供软件满足所有功能、性能需求的最后保证。确认测试仅仅应用黑盒测试方
法。
单元测试
单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。 集成测试
集成测试是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。
系统测试
系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务,它被称为测试的“先知者问题”。
验收测试
验收测试旨在向软件的购买者展示该软件系统满足其用户的需求。它的测试数据通常是系统测试的测试数据的子集.
回归测试 回归测试是在软件维护阶段,对软件进行修改之后进行的测试。其目的是检验对软件进行的修改是否正确。
5、 软件的缺陷等级应如何划分?
1) 致命错误(fatal):造成系统或应用程序崩溃、死机、系统挂起,或造成数据丢失,主要功能完全丧失,导致本模块以及相关模块异常等问题。
2) 严重错误(critical):功能和特性没有实现导致严重的问题或致命的错误声明。问题局限在本模块,导致模块功能失效或异常退出
3) 一般错误(major):次要功能丧失,提示信息不太准确,或用户界面差,操作时间长、模块功能部分失效等。
4) 建议问题(suggestion):由问题提出人对测试对象的改进意见或测试人员提出的建议、质疑。
6、 如果能够执行完美的黑盒测试,还需要进行白盒测试吗?为什么?
黑盒测试:从用户角度出发,根据规格说明设计测试用例,并不涉及程序的内部特性和内部结构,只依靠被测程序输入和输出之间的关系或程序的功能设计测试用例。黑盒测试有两个显著特点:
(1)黑盒测试与软件的具体实现过程无关,在软件实现的过程发生变化时,测试用例仍然可以用。
(2)黑盒测试用例的设计可以和软件实现同时进行,这样能够压缩总的开发时间。
黑盒测试主要是为了发现以下几类错误:
1、是否有不正确、遗漏或额外的功能实现?
2、在接口上,输入是否能正确的接受?能否输出正确的结果?
3、是否有数据结构错误或外部信息(例如数据文件)访问错误?
4、性能上是否能够满足要求?
5、是否有初始化或终止性错误?
白盒测试:已知程序的内部结构,检查内部操作是否按规定执行。主要对程序细节进行严密检验,针对特定条件和循环设计测试用例,对程序的逻辑路径进行测试。通过在程序的不同点检查程序状态,确定实际状态是否与预期的状态一致。
白盒测试主要是想对程序模块进行如下检查:
1、程序的所有语句至少执行一次。
2、对所有的逻辑条件都能至少执行一次。
3、在循环的边界和运行的界限内执行循环体。
4、测试内部数据结构的有效性,等等。
从以上可以看出就算执行了完美的黑盒测试也是无法测试程序内部特定部位,另外当规格说明本身有误,也不能发现问题。而白盒测试能对程序的内部特定部位进行覆盖测试,所以黑盒和白盒测试为互补关系,结合起来进行测试用例的设计更为合理。 经验表明,通常在进行单元测试时采用白盒测试方法,集成测试采用灰盒测试方法,系统测试采用黑盒测试方法。
8、 测试计划的目的是什么?
软件测试计划是指导测试过程的纲领性文件,包含了产品概述,测试策略,测试方法,测试区域,测试配置,测试周期,测试资源,风险分析等内容;借助软件测试计划,参与测试的项目成员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。
测试计划和测试用例间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围,方法和资源配置;而测试用例是完成测试任务的具体战术。
9、 针对缺陷采取怎样的管理措施?
1.要更好的管理缺陷,必须引入缺陷管理工具,商用的或者开源的都可。
2.根据缺陷的生命周期,考虑缺陷提交的管理、缺陷状态的管理和缺陷分析的管理。
3.所有发现的缺陷(不管是测试发现的还是走读代码发现的)都必须全部即时的、准确的提交到缺陷管理工具中,这是缺陷提交的管理。
4.缺陷提交后,需要即时的指派给相应的开发人员,提交缺陷的人需要密切注意缺陷的状态,帮助缺陷的尽快解决。缺陷解决后需要即时对缺陷的修复进行验证。这样的目的有两个:一个是让缺陷尽快解决;二是方便后面缺陷的分析(保证缺陷相关的信息准确,如龄期等),这是缺陷状态的管理。
5.为了更好的改进开发过程和测试过程,需要对缺陷进行分析,总结如缺陷的类别、缺陷的龄期分布等信息,这是缺陷分析的管理。
10、区别阶段评审的与同行评审
同行评审目的:发现小规模工作产品的错误,只要是找错误; 阶段评审目的:评审模块 阶段作品的正确性 可行性 及完整性
同行评审人数:3-7人 人员必须经过同行评审会议的培训,由SQA指导
阶段评审人数:5人左右 评审人必须是专家 具有系统评审资格 同行评审内容:内容小 一般文档 < 40页, 代码 < 500行 阶段评审内容: 内容多,主要看重点
同行评审时间:一小部分工作产品完成阶段评审时间: 通常是设置在关键路径的时间点上!
11、简述集成测试的过程
系统集成测试主要包括以下过程:
1. 构建的确认过程。
2. 补丁的确认过程。
3. 系统集成测试测试组提交过程。
4. 测试用例设计过程。
5. 测试代码编写过程。
6. Bug的报告过程。
7. 每周/每两周的构建过程。
8. 点对点的测试过程。9. 组内培训过程。
12、怎么做好文档测试
仔细阅读,跟随每个步骤,检查每个图形,尝试每个示例。P142 检查文档的编写是否满足文档编写的目的
内容是否齐全,正确
内容是否完善标记是否正确
13、白盒测试有几种方法
总体上分为静态方法和动态方法两大类。
静态:关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义动态:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。
14、系统测试计划是否需要同行审批,为什么
需要,系统测试计划属于项目阶段性关键文档,因此需要评审。
15、Alpha测试与beta的区别
Alpha测试在系统开发接近完成时对应用系统的测试;测试后仍然会有少量的设计变更。这种测试一般由最终用户或其它人员完成,不能由程序或测试员完成。
Beta测试当开发和测试根本完成时所做的测试,最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其它人员完成,不能由程序员或测试员完成。
16、比较负载测试,容量测试和强度测试的区别
负载测试:在一定的工作负荷下,系统的负荷及响应时间。 强度测试:在一定的负荷条件下,在较长时间跨度内的系统连续运行给系统性能所造成的影响。
容量测试:容量测试目的是通过测试预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限值状态下没有出现任何软件故障或还能保持主要功能正常运行。容量测试还将确定测试对象在给定时间内能
够持续处理的最大负载或工作量。容量测试的目的是使系统承受超额的数据容量来发现它是否能够正确处理。容量测试是面向数据的,并且它的目的是显示系统可以处理目标内确定的数据容量。
17、 请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。 黑盒测试:把测试对象当成一个黑盒子,测试人员完全不考虑逻辑结构和内部特性,只依据程式的需求说明书来检查程式的功能是否满足它的功能说明。
白盒测试:把测试对象当成一个透明的盒子,允许测试人员利用程序内部逻辑结构及相关信息,设计或选择测试用例,对程式所有逻辑路径进行测试。
单元测试:白盒测试的一种,对软件设计中的单元模块进行测试。 集成测试:在单元测试的基础上,对单元模块之间的连接和组装w进行测试。
系统测试:在所有都考虑的情况下,对系统进行测试。 验收测试:第三方进行的确认软件满足需求的测试。
18. 您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。
1.等价类划分
2.边界值分析法
3.错误推测法4.因果图方法
第二篇:软件测试复习
填空题:
1、CMM 内容包含初始级、已定义级、已管理级、可重复级和可优化级五个等级。
2、McCall模型划分了软件运行、软件转移、软件修改三个纬度的 11 个软件质量 因素。
3、SQA标准被划分成:软件质量管理标准、软件项目过程标准。
4、测试用例由测试输入数据和预期的输出数据两部分组成。
5、从内容和重点上我们可以把质量管理标准划分成认证标准、评估标准两
种类型。
6、代码复审属于静态测试,不实际运行程序。
7、单元测试内容包含如下方面:独立执行路径测试、模块接口测试、边界条件测试、错 误处理测试和局部数据结构测试。
8、等价类划分有两种不同的情况:有效等价类和无效等价类。
9、动态测试的两个基本要素是被测试程序、测试用例。
10、 集成测试以概要设计说明书为指导, 确认测试以需求规格说明书为指导。
11、兼容性测试中,向前兼容是指可以使用软件的以前版本,向后兼容指可以使 用软件的未来版本。
12、软件测试策略的确定过程通常经历确定测试需求、评估风险、确定测试策
略三个阶段。
13、软件测试的 W 模型由两个 V 字组成,分别代表开发与测试过程。
14、软件测试活动的生命周期包括计划、设计、开发、执行、评估
(或总结)五个阶段。
15、软件测试中,测试计划描述测试的整体方案,缺陷报告描述依据测试用例找出的 问题。
16、软件对属于各种质量因素的需求的符合性是由软件质量度量来测量的。
17、软件过程度量可以进一步划分为软件过程质量度量、软件过程进度度量和软件过程生产率
度量。
18、 软件缺陷按严重程度被分为 6 个等级, 分别是:严重错误、主要错误、次要错误、 一般错误、较小错误、测试建议。
19、软件缺陷产生的原因包括编写说明书、设计、编写代码以及其他原因。
20、软件是包括程序、数据、相关文档的完整集合。
21、软件验收测试可细分为三个阶段:alpha 测试、beta 测试、正式验收测试 _。
22、软件质量度量划分为:软件过程度量、软件产品度量。
23、软件质量工程包括软件质量保证、软件质量规划和软件质量控制三大方面。
24、通常,由人工进行的静态测试方法包括桌面检查、代码审查、代码走查和技 术评审。
单项选择题
1、下列关于α测试的描述中,正确的是(D )
A.α测试采用白盒测试技术; B.α测试不需要用户代表参加;
C.α测试是系统测试的一种; D.α测试是验收测试的一种;
2、软件质量保证与测试人员需要的的基本素质有( D )
A、计算机专业技能 B、测试专业技能 C、行业知识 D、以上都是
3、对于软件的β测试,下列哪些描述是正确的? ( C )
A. β测试就是在软件公司内部展开的测试,由公司专业的测试人员执行的测试。
B. β测试就是在软件公司内部展开的测试,由公司的非专业测试人员执行的测试。
C. β测试就是在软件公司外部展开的测试,由非专业的测试人员执行的测试。
D. β测试就是在软件公司外部展开的测试,由专业的测试人员执行的测试。
4、下面哪项内容不包含在测试计划文档中? ( B )
A. 测试策略
B. 测试用例
C. 测试时间安排
D. 测试标准
5、以下哪句话是不正确的: ( A )
A、测试过的软件就没有缺陷 B、测试的目的是尽可能多的发 现程序中的缺陷
C、成功的测试在于发现了迄今尚未发现的缺陷 D、测试是为了验证程序是否符 合需求
6、下面哪项对验收测试的描述不正确?( C )
A、与系统测试不同的是以客户业务需求为标准来进行测试
B、测试人员多由客户方担任,也可以客户委托第三方来进行验收测试
C、由资深的开发和测试人员来进行测试
D、不仅仅要验收程序,还要验收相关的文档
7、( A )把黑盒子测试和白盒子测试的界限打乱了。
A、灰盒子测试 B、动态测试 C、静态测试 D、失败测试
8、( A ) 的目的是对最终软件系统进行全面的测试确保最终软件系统产品满足需求。 A、系统测试 B、集成测试 C、单元测试 D、功能测试
9、( C )方法根据输出对输入的依赖关系设计测试用例。
A.路径测试 B.等价类 C.因果图 D.归纳测试
10、52、关于自动化测试局限性的描述,以下描述错误的是( B )。
A、自动化测试不能取代手工测试 B、自动测试比手工测试发现的缺陷少
C、自动测试不能提高测试覆盖率 D、自动化测试对测试设计依赖性极大
11、CMMI 将软件组织的软件能力成熟度描述为( D )
A、二级 B、三级 C、四级 D、五级
12、CMMI 中文全称为( B )
A、软件能力成熟度模型 B、软件能力成熟度模型集成
C、质量管理体系 D、软件工程研究所
13、按照测试组织划分,软件测试可分为:开发方测试,第三方测试,( C )。
A.集成测试 B.确认测试 C.用户测试 D.灰盒测试
14、编码阶段产生的错误由( A )检查出来的。
A、单元测试 B、集成测试 C、系统测试 D、有效性测试
15、编写测试计划的目的是( D )
A、使测试工作顺利进行 B、使项目参与人员沟通更舒畅
C、使测试工作更加系统化 D、使测试内容更少,完成更快
16、不属于白盒测试的技术是 ( C ) 。
A、语句覆盖 B、判定覆盖 C、边界值分析 D、基本路径测试
17、产品发布后修复软件缺陷比项目开发早期这样做的费用要高( D )。
A、1~2 倍 B、10~20 倍 C、50 倍 D、100 倍或更高
18、代码检查法有桌面检查法,走查和( B )。
A、静态测试 B、 代码审查 C、动态测试 D、白盒测试
19、单元测试的测试用例主要根据( D )的结果来设计。
A、需求分析 B、源程序 C、概要设计 D、详细设计
20、单元测试一般以( A )为主。
A、白盒测试 B、黑盒测试 C、系统测试 D、分析测试
21、单元测试中用来模拟被测模块调用者的模块是 ( C )
A、父模块 B、子模块 C、驱动模块 D、桩模块
22、导致软件缺陷的最大原因是 ( A )
A、编制说明书 B、设计 C、编码 D、测试
23、调试是( D )
A、发现与预先定义的规格和标准不符合的问题 B、发现软件错误征兆的过程
C、有计划的、可重复的过程 D、消除软件错误的过程
24、对 Web 网站进行的测试中,属于功能测试的是 ( B )
A、连接速度测试 B、链接测试
C、平台测试 D、安全性测试
25、对下面的计算个人所得税程序中,满足判定覆盖的测试用例是( A )。
if (income<800) taxrate=0;
else if (income<=1500) taxrate=0.05; else if (income<2000) taxrate=0.08;
else taxrate=0.1;
A、income=(799, 1500, 1999, 2000) B、income=(799, 1501, 2000, 2001)
C、income=(800, 1500, 2000, 2001) D、income=(800, 1499, 2000, 2001)
26、对于参数配置类的软件,要用( C )选择较少的组合方式达到最佳效果。
A、等价类划分 B、因果图法 C、正交试验法 D、场景法
27、对于业务流清晰的系统可以利用( D )贯穿整个测试用例设计过程并在用例中综 合使用各种测试方法。
A、等价类划分 B、因果图法 C、正交试验法 D、场景法
28、 根据软件需求规格说明书, 在开发环境下对已经集成的软件系统进行的测试是 (A )。
A、系统测试 B、单元测试 C、集成测试 D、验收测试
29、黑盒测试技术,使用最广的用例设计技术是( A )
A、等价类划分 B、边界值分析 C、错误推测法 D、逻辑覆盖
30、黑盒测试技术中不包括( D )。
A、等价类划分 B、边界值分析 C、错误推测法 D、逻辑覆盖
31、划分软件测试属于白盒测试还是黑盒测试的依据是 ( C )
A、是否执行程序代码 B、是否能看到软件设计文档
C、是否能看到被测源程序 D、运行结果是否确定
32、集成测试的测试用例是根据( C )的结果来设计。
A、需求分析 B、源程序 C、概要设计 D、详细设计
33、集成测试对系统内部的交互以及集成后系统功能检验了何种质量特性(A )
A、正确性 B、可靠性 C、可使用性 D、可维护性
34、几乎没有产品计划、进度安排和正规的开发过程的软件开发模式是 ( B )
A、大棒模式 B、边写边改模式 C、瀑布模式 D、快速原型开发模式
35、较实用的软件测试停止标准是( D )。
A、测试超过了预定时间,则停止测试。
B、根据查出的缺陷总数量决定是否停止测试。
C、测试成本超过了预期计划,则停止测试。
D、分析发现的缺陷数量和测试投入成本曲线图,确定确定应继续测试还是停止测试。
36、经验表明,在程序测试中,某模块与其他模块相比,若该模块已发现并改正的错 误较多,则该模块中残存的错误数目与其他模块相比,通常应该( B )。
A、较少 B、较多 C、相似 D、不确定
37、某次程序调试没有出现预计的结果,下列( B )不可能是导致出错的原因。
A、变量没有初始化 B、编写的语句书写格式不规范
C、循环控制出错 D、代码输入有误
38、配置测试 ( C )
A、 是指检查软件之间是否正确交互和共享信息
B、 是交互适应性、实用性和有效性的集中体现
C、 是指使用各种硬件来测试软件操作的过程
D、 检查缺陷是否有效改正
39、凭经验或直觉推测可能的错误,列出程序中可能有的错误和容易发生错误的特殊 情况,选择测试用例的测试方法叫( C )。
A、等价类划分 B、边界值分析 C、错误推测法 D、逻辑覆盖测试
40、缺陷产生的原因包括( D )。
A、交流不充分及沟通不畅;软件需求的变更;软件开发工具的缺陷
B、软件的复杂性;软件项目的时间压力
C、程序开发人员的错误;软件项目文档的缺乏
D、以上都是
41、如果某测试用例集实现了某软件的路径覆盖,那么它一定同时实现了该软件的 ( A)
A、判定覆盖 B、条件覆盖 C、判定/条件覆盖 D、组合覆盖
42、如果一个产品中严重的缺陷基本完成修正并通过复测,这个阶段的成品是( B )。
A、Alpha 版 B、Beta 版 C、正版 D、以上都不是
43、如果一个判定中的复合条件表达式为(A > 1)or(B <= 3),则为了达到 100%的 条件覆盖率,至少需要设计多少个测试用例( B )。
A、1 B、2 C、3 D、4
44、软件测试的目的是 (B )
A、发现程序中的所有错误 B、尽可能多地发现程序中的错误
C、证明程序是正确的 D、调试程序
45、软件测试风险管理包含( C)和风险控制两方面内容。
A、 风险排序 B、风险识别 C、风险评估 D、风险分析
46、软件测试管理包括测试过程管理、配置管理以及( A )
A、测试评审管理 B、测试用例管理
C、测试计划管理 D、测试实施管理
47、软件测试过程中的集成测试主要是为了发现( B )阶段的错误码。
A.需求分析 B.概要设计 C.编码 D.维护
48、软件测试计划评审会不需要哪类人员参加?( C )
A.软件项目经理
B.SQA负责人
C.最终用户
D.测试组人员
49、软件测试技术可以分为静态测试和动态测试,下列说法中错误的是( D )。
A、静态测试是指不运行程序,通过检查和阅读等手段来发现程序中的错误。
B、动态测试是指实际运行程序,通过运行的结果来发现程序中的错误。
C、动态测试包括黑盒测试和白盒测试。
D、白盒测试是静态测试,黑盒测试是动态测试。
50、软件测试人员的工作职责不包括:( D )
A、制定测试计划 B、设计测试用例
C、执行测试过程 D、对软件缺陷进行修复
51、软件测试是按照特定的规程,( A )的过程。
A、发现软件错误 B、 说明程序正确
C、证明程序没有错误 D、设计并运行测试用例
52、软件测试是软件质量保证的重要手段,下述哪种测试是软件测试的最基础环节? ( B )
A.集成测试 B.单元测试 C.目的测试 D.确认测试
53、软件的六大质量特性包括( A )。
①功能性、可靠性 ②可用性、效率 ③稳定性、可移植 ④兼容性、可扩展性
A、①②③ B、②③④ C、①③④ D、①②④
54、软件调试的目的是(B )
A、发现软件中隐藏的错误 B、解决测试中发现的错误
C、尽量不发现错误以便早日提交软件 D、证明软件的正确性
55、软件可靠性是指在指定的条件下使用时,软件产品维持规定的性能级别的能力, 其子特性( C )是指在软件发生故障或者违反指定接口的情况下,软件产品维持规定 的性能级别的能力。
A、成熟性 B、易恢复性 C、容错性 D、可靠性依从性
56、软件设计阶段的测试主要采取的方式是( A )。
A、评审 B、白盒测试 C、黑盒测试 D、动态测试
57、软件验收测试合格通过的标准不包括( B )
A.软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。
B.至少有一项软件功能超出软件需求分析说明书中的定义,属于软件特色功能。
C.立项审批表、需求分析文档、设计文档和编码实现一致。
D.所有在软件测试中被发现的严重软件缺陷均已被修复。
58、使用白盒测试方法时,确定测试数据的依据是指定的覆盖标准和 ( B )
A、程序的注释 B、程序的内部逻辑
C、用户使用说明书 D、程序的需求说明
59、数据流覆盖关注的是程序中某个变量从其声明、赋值到引用的变化情况,它是下 列哪一种覆盖的变种( D )。
A、语句覆盖 B、控制覆盖 C、分支覆盖 D、路径覆盖
60、条件覆盖的目的是 ( A )
A、使每个判定中的每个条件的可能取值至少满足一次
B、使程序中的每个判定至少都获得一次"真"值和"假"值。
C、使每个判定中的所有条件的所有可能取值组合至少出现一次。
D、使程序中的每个可执行语句至少执行一次。
61、通常,( D )是在编码阶段进行的测试,它是整个测试工作的基础。
A、系统测试 B、确认测试 C、集成测试 D、单元测试
62、为了提高测试的效率,应该 ( D )
A、随机地选取测试数据;
B、取一切可能的输入数据作为测试数据;
C、在完成编码以后制定软件的测试计划;
D、选择发现错误可能性大的数据作为测试数据。
63、为了提高测试的效率,应该( D )。
A、随机地选取测试数据
B、取一切可能的输入数据作为测试数据 C、选取软件实际应用中最可能遇到的数据作为测试数据
D、选择发现错误的可能性大的数据作为测试数据
64、下列( D )不是软件自动化测试的优点。
A、速度快、效率高 B、准确度和精确度高
C、能提高测试的质量 D、能充分测试软件
65、下列( A )不属于软件缺陷。
A、测试人员主观认为不合理的地方
B、软件未达到产品说明书标明的功能
C、软件出现了产品说明书指明不会出现的错误
D、软件功能超出产品说明书指明范围
66、下列不属于黑盒测试方法的是( D )。
A、等价类划分 B、因果图 C、边界值分析 D、变异测试
67、下列不属于正式审查的方式是 ( D )
A、同事审查 B、公开陈述 C、检验 D、编码标准和规范
68、下列各项中( B )不是一个测试计划所应包含的内容。
A、测试资源、进度安排 B、测试预期输出
C、测试范围 D、测试策略
69、下列关于 alpha 测试的描述中正确的是:( D )
A.alpha 测试一定要真实的最终软件用户参加
B.alpha 测试是集成测试的一种
C.alpha 测试是系统测试的一种
D.alpha 测试是验收测试的一种
70、下列软件属性中,软件产品首要满足的应该是( A )
A、功能需求 B、性能需求 C、可扩展性和灵活性 D、容错纠错能力
是非题 (A为对,B为错)
21、静态白盒测试可以找出遗漏之处和问题。( A )
22、没有可运行的程序,就无法进行测试工作。( B )
23、如何看待软件产品内部的缺陷,开发者和用户的立场是一致的。( B )
24、软件测试的目的在于发现错误、改正错误。( B )
25、软件测试等于程序测试。( B )
26、软件测试工具可以代替软件测试员。 ( B )
27、软件测试就是为了验证软件功能实现的是否正确,是否完成既定目标的活动,所
以软件测试工作在软件工程的末期才开始。( B )
28、软件测试是有效的排除软件缺陷的手段。( A )
29、软件测试员可以对产品说明书进行白盒测试。( A )
30、软件测试针对的是初级程序员编写的程序,资深程序员编写的程序无需测试。 ( B )
31、软件测试只能发现错误,但不能保证测试后的软件没有错误。( A )
32、软件开发全过程的测试工作都可以实现自动化。( B )
33、软件缺陷是导致软件失效的必要,而非充分要素。 ( A )
34、软件质量保证的独特性是由软件产品不同于其他制造产品的本质决定的。( A )
35、设计-实现-测试,软件测试是开发后期的一个阶段。 ( B )
36、同行评审的主要目标在于检测错误、核对与标准的偏离。( A )
37、为了快速完成集成测试,采用一次性集成方式是适宜的。( B )
38、我是个很棒的程序员, 我无需进行单元测试。( B )
39、验收测试是以最终用户为主的测试。 ( A )
40、验收测试一定是由最终用户来实施的。( B)
41、在白盒测试中,如果某种覆盖率达到 100% ,就可以保证把所有隐藏的程序缺陷都已经揭露出来了。( B )
42、在软件测试中, 预设输出结果是检验待测系统在特定执行下是否正确的方法。 (A
43、在软件产品计划阶段,不必进行 SQA活动。( B )
44、在软件开发过程中,若能推迟暴露其中的错误,则为修复和改进错误所花费的代 价就会降低。( B )
45、只有客户才会有兴趣透彻定义软件需求以确保他约定的软件产品的质量。( B )
46、质量管理标准是专业标准,它们向开发组提供方法学指南。( B )
47、质量管理标准指导软件开发、维护和基础设施的管理。它的重点是需要什么,但 没有指明如何达到标准要求的努力细节。( A )
48、自底向上集成需要测试员编写驱动程序。 ( A )
名词解释
1、SQA
2、α测试
3、白盒测试
4、持续的软件测试
5、单元测试
6、等价类
7、动态测试技术
8、黑盒测试
9、回归测试
10、确认测试
11、软件测试风险
12、软件测试文档
参考答案:
1、SQA是 Software Quality Assurance的缩写,意思是软件质量保证。SQA通过对软 件活动、过程和产品进行评审、测试和确认来确保软件是合乎标准的。 )
2、α测试是在软件开发公司内模拟软件系统的运行环境下的一种验收测试,即软件 开发公司组织内部人员,模拟各类用户行为对即将面市的软件产品(称为α版本)进 行测试,试图发现并修改错误。
3、白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通 过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的 每条通路是否都能按预定要求正确工作。
4、软件开发不同阶段都有软件测试工作,软件测试工作的各个步骤分布在整个软件 生存周期中,完整的软件测试应贯穿整个软件生存周期。
5、单元测试是对软件设计的最小单元--模块进行正确性检验的测试工作,主要测试模 块在语法、格式和逻辑上的错误。
6、指某个输入域的子集合,在该子集合中,各个输入数据对于揭露程序中的错误都 是等效的。
7、通过在经过设计的样本测试数据上运行程序来检验程序的动态行为和运行结果以 发现缺陷。
8、黑盒测试也称功能测试或数据驱动测试,前提是已知产品所具有的功能,通过测
试来检测每个功能是否都正常使用。 9、指软件系统被修改或扩充(如系统功能增强或升级)后重新进行的测试,是为了
保证对软件所做的修改没有引入新的错误而重复进行的测试
10、确认测试是验证软件的功能和性能及其它特性是否与用户的要求一致。对软件的 从功能、性能、可靠性、易用性等方面作全面的质量检测,帮助软件企业找出产品存 在的问题,出具相应的产品质量报告。
11、软件测试风险是指软件测试过程出现的或潜在的问题,这些问题会给软件测试工 作带来损失。风险产生的原因主要有测试计划不充分、测试方法有误,或测试过程的 偏离,造成测试的补充及结果不准确。
12、测试文档是对要执行的软件测试及测试的结果进行描述、定义、规定和报告的任 何书面或图示信息。
它为测试项目的组织、规划和管理提供了一个规范化的架构。
简答题
1、白盒测试有几种方法?
2、测试覆盖准则的作用是什么,写出常见的 4 种白盒测试覆盖标准。
3、测试结束的标准是什么?
4、测试项目中,主要的测试文档有哪些?
5、等价类划分测试用例设计的步骤如何?
6、根据自己的理解回答什么是软件测试,软件测试分为哪几个过程。
参考答案:
1、答:白盒测试方法分为两大类:静态测试方法和动态测试方法。 (1 分) 静态测试方法:检查软件的表示和描述是否一致,没有冲突或者没有歧义。(1 分) 动态测试方法:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路 径覆盖。(3 分)
2、答:测试覆盖准则的作用有:
(1)定量地规定软件测试需求,指导测试数据的选择;
(2)度量测试数据集揭示软件特定特征的能力;
(3)对测试结果和软件可靠性评估具有重要影响。
常见的白盒测试覆盖标准有:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件 组合覆盖、路径覆盖。
3、答:1、各测试阶段全部完成、测试用例全部执行。
2、覆盖率达到标准。
3、缺陷数是逐次收敛的、缺陷率达到标准。
4、缺陷修复率等达到标准。
5、通过用户的验收测试。
4、答:测试计划、测试设计规格说明、测试用例说明、测试规程规格说明、测试日志、 测试执行记录、测试缺陷报告、测试总结报告等。
5、答:(1)根据输入条件把数目极多的输入数据划分成若干有效等价类和若干无效等价 类;[2 分]
(2)设计一个测试用例,使其覆盖尽可能多的尚未被覆盖的有效等价类,重复该步 骤,直至所有有效等价类均被覆盖;[1 分]
(3)设计一个测试用例,使其覆盖一个的尚未被覆盖的无效等价类,重复该步骤, 直至所有无效等价类均被覆盖。[1 分]
6、答:软件测试是一个为了寻找软件中的错误而运行软件的过程,一个成功的测试是指 找到了迄今为止尚未发现的错误的测试。 软件测试一般分为单元测试、集成测试、系统测试、验收测试、回归测试。
综合题
题目1
为以下程序设计三组测试用例,要求分别满足语句覆盖、判定覆盖、条件
覆盖。 (5 分)
int test(int A,int B)
{
if((A> 3 ) AND (B< 9 )) then
X=A - B;
if((A= 5 ) OR (B>2 8 )) then
X=A+B;
return x;
}
题目 2
为以下程序设计三组测试用例,要求分别满足语句覆盖、判定覆盖、条件
覆盖。
v oid DoWork (int x,int y,int z)
{
int k=0,j=0;
if ( (x> 6 )&&(z< 20 ) )
{ k=x*y - 1;
j=sqrt(k);
} // 语句块1
if ( (x== 8 )||(y>5 0 ) )
{ j=x*y+10; } // 语句块2
j=j%3; // 语句块3
}
题目 3
某程序模块如下,其中,S1, S2 均为语句块:
if ((A>1) AND (B==0))
S1 ;
if ((A==2) OR (X>1))
S2;
(1 )请把上述代码转换成程序流程图。
(2 )设计测试数据使得满足判定覆盖。
(3 )设计测试数据使得满足条件组合覆盖。
题目 4
有一段子程序:
procedure example(y,z: real; var x: real)
begin
if (y>1) and (z=0) then x:=x/y;
if (y=2) or (x=l ) then x:=x+l;
end. 该子程序接受x, y, z 的值,并将计算结果x 的值返回给调用程序。
答题要求:
用白盒法设计测试用例,并使得所设计的一组或几组测试数据能够满足条件组合覆盖 标准。
题目 5
用决策表测试法测试以下程序:(15分)
该程序功能为输出某个输入日期后天的日期, 例如输入日期20xx年1月1日,
则该程序的输出为20xx年1月3日。 该程序有三个输入变量 month、 day、 year, 分别作为输入日期的月份、日、年份。
(1)分别为输入变量month、day、year划分有效等价类。
(2)分析程序的规格说明,并结合以上等价类划分的情况,给出问题规定的
所有可能采取的操作(即列出所有的动作桩)。
(3)根据(1)和(2),画出简化后的决策表。