软件测试题答案,软件测试简答题
1 .什么是测试用例? 什么是测试脚本? a )为实施测试而提供给被测试系统的输入数据、操作或各种环境设定及预期结果的特定集合。
b )测试脚本是为进行自动化测试而编写的脚本。
c )测试脚本的编写必须适应相应的测试用例。
2 .简述什么是静态测试、动态测试、黑盒测试、白盒测试、测试测试a。 (静态测试是指不执行程序本身,寻找程序代码中可能存在的错误,或者评价程序代码的过程。
B )动态测试是指实际运行被测程序,输入相应的测试实例,通过检查运行结果与预期结果的差异,判定运行结果是否满足要求,从而检验程序的正确性、可靠性和有效性,提高系统的运行效率
C )黑匣子测试一般用于确认软件功能的正确性和可操作性,目的是检测能否实现软件的各项功能。 将测试对象的程序视为黑匣子,不考虑其内部结构,在知道该程序的输入输出关系和程序功能的情况下,依靠软件规格书确定测试用实例,推测测试结果的正确性。
d )白盒测试是根据软件内部的逻辑结构分析进行测试的。 在基于代码的测试中,测试者通过阅读程序代码或使用开发工具的单步调试来确定软件的质量。 典型的黑匣子测试是由项目经理在程序员开发中实现的。
e )测试是单个用户在开发环境中进行的测试,也是内部用户模拟实际操作环境进行的控制测试,不能由程序员或测试人员进行。
f )测试是由软件的多个用户在一个或多个用户的实际使用环境中进行的测试。
开发人员通常不在测试现场。 测试测试不能由程序员或测试者进行。
3 .什么是软件质量保证体系国家标准中与质量保证管理相关的一些标准是什么他们的号码和全名是什么a )从维基百科对SQA的定义到软件质量保证( SQA ) ) sqq consistsofthesoftwareengineeringprocessesandmethodsusedtoensurequality.sqaencompassestheentiresoftwaredevelopmentprocess, whichmayincludeprocessuchasreviewingrequirementsdocuments、source code control、code reviews、change management、 configuration release management and of course,software testing.SQA由一系列保证质量的软件工程步骤和方法组成。
在整个软件开发过程中,SQA应包括要求文档审核、代码控制、代码审核、变更管理、配置管理、版本控制和软件测试。
b )国家标准: i. GB/T 8567-2006计算机软件文件编制规范ii. GB/T 11457-2006信息技术软件工程术语. GB/t 16260.1-2006软件工程术语T 16260.2-2006软件工程产品质量第2部分:外部测量值v. GB/T 16260.3-2006软件工程产品质量第3部分:内部测量值vi. GB/T 16260.4-2006软件工程Z 20156-2006软件工程软件生成周期流程项目管理指南viii. GB/T 20157-2006信息技术软件维护ix. GB/T 20158-2006信息技术软件生成服务器
4 .软件产品的质量特性是什么? a )功能性:适应性、准确性、互操作性、合规性、安全性。
b )可靠性)成熟性、容错性、恢复性。
c )可用性)易理解、易学、易操作。
d )效率:时间特征、资源特征。
e )可维护性:易分析性、易更改性、稳定性、易测试性。
f )可移植性:适应性、易安装性、合规性、易更换性。
5 )软件测试原则和策略是什么)软件测试原则)教材说法) I .软件测试应尽快进行,并贯穿于软件的整个生命周期)软件测试应追溯到需求iii ) 必须彻底检查各项测试结果vii。 充分注意测试中的聚类现象。 缺陷的二八定理ix。 严格执行测试计划,排除测试随意性x。 注意合法合理的输入。 还要注意非法的意外输入xi。 检查程序是否做了不能做的xii。 测试从“小规模”开始,逐步过渡到“大规模”xiii。 重复同样的测试会对软件产生抵抗力xiv。 关注缺陷的修复。 另一种说法是,I .“早期且持续地测试”应该作为开发者的座右铭。
ii .程序员应该避免检查自己的程序,测试工作应该由独立的专业软件测试机构进行。
iii .设计测试用例时必须考虑合法和非法输入以及各种边界条件。 在特殊情况下,需要制造网络异常切断、电源切断等极端状态和意外状态。
iv .要注意测试中错误集中发生的现象。 这与程序员的编程水平和习惯有很大关系。
v .一定要有确认测试错误结果的过程。
一般来说,如果有A测试中出现的错误,必须由B确认,重大错误可以召开审查会进行讨论和分析。
vi .制定严格的测试计划,尽量放宽测试时间。 我不想在极短的时间内完成高水平的测试。
vii .回归测试的相关性必须充分关注,纠正一个错误引起更多错误的现象屡见不鲜。
viii .妥善保存所有测试过程文档自不必说,测试的可重复性往往依赖于测试文档。
b )软件测试策略)在一定软件测试标准、测试规范的指导下,根据测试项目的特定环境约束制定的软件测试原则、方式、方法的集合。
6 .结构化系统测试和功能性系统测试分别采用了什么方法和技术)结构化系统测试技术:用于验证开发的系统和程序的运行情况。
目标是保证产品设计结构合理,功能正确。
确定实现的配置和各功能协同完成特定任务的机制。
结构化测试技术如下。 i. 1 )压力测试)确定系统以期望的容量运行。
压力测试技术用于检查系统在意外情况下面对大数据量时能否正常运行。
涉及的方面包括输入事务、内部表、磁盘空间、输出、通信、计算机容量、人机交互等。
如果不确定APP应用程序可以成功处理的工作量,则必须使用压力测试。
压力测试意在通过对系统施加过载事务来破坏系统。
缺点是测试的准备时间和实际测试运行过程中消耗的资源非常多,通常在使用APP应用之前无法运行该技术。
ii .测试实施:系统能达到预期的熟练性。
例:事务轮换时间充足,软硬件使用较好。
运行测试技术,检查系统在产品状态下是否达到了预期成熟度。
运行测试将验证系统响应时间、轮转时间和设计性能。
在开发过程的早期进行运行测试,早期制定完成的系统达不到性能指标是非常有价值的。
在重要时刻进行。
关键时刻是指当前结果影响或改变系统结构的时刻。
iii .恢复测试:系统故障后,可恢复到可操作状态。
示例:评估部署失败的备份数据的充足性。
恢复测试技术用于确保系统在发生灾难后仍能正常运行,不仅验证了恢复过程,还验证了过程各组件的有效性。
如果用户认为系统运行连续性对相关领域的特定功能至关重要,则应进行恢复测试。
iv .工作测试:系统在正常工作状态下运行。
例如,确认系统可以基于文档执行; JCL (作业控制语言)足够了。
操作测试技术主要用于检查系统能否在正常操作状态下运行。
操作测试可以与其他测试一起运行。
任何APP应用程序在成为产品之前都必须进行行为测试。
v.(与工艺的)一致性测试)系统的开发与标准和规程一致。
示例:基于条件运行的文档的完整性。
一致性测试技术用于验证APP应用程序的开发是否与信息技术指标、流程和指导方针相一致。
一致性测试最有效的方法是过程审查。
系统开发标准和流程的一致性程度取决于管理层对必须遵循的特定流程和执行标准的重视程度。
vi .安全测试:基于组织重要性保护系统。
示例:拒绝访问; 规章适当。
安全性测试技术用于评估保护程序和安全措施的充分性。
安全性缺陷不像其他类型的缺陷那么明显。
安全测试是测试过程中高度专业化的部分。
它分为物理安全(使用物理方法收集信息的手段)和逻辑安全(使用计算机处理和通信能力非法活动信息的手段)。
如果系统保护信息和资产对组织来说很重要,则需要进行安全测试。
b )功能性系统测试用于确保系统的需求和定义得到满足。
这个过程通常包括创建测试条件以评估APP应用的准确性。
为了执行功能测试的若干测试技术包括: I .需求测试:通过制定的方法来执行系统。
例:与证明系统需求的政策、规则一致。
要求测试技术验证系统是否正确运行其功能,并保证在相当长的时间内保持其正确性。
请求测试的执行主要通过运行制作的测试条件和功能检查表来进行,请求得到测试条件,以SDLC等特定方式表示,生成用于评估实现的APP应用系统的测试数据。
每个APP应用程序都需要测试其需求。 这个过程应该从需求阶段开始,一直持续到系统的运行和维护阶段。
ii .回归测试:验证系统未更改的部分是否正确运行。
例:未变更的部分正常动作; 没有变更的人工规程是正确的。
回归测试技术将重新测试被测试的部分,以确保APP的其他部分在更改后仍能正常工作。
如果更改会对APP应用程序中未更改的部分产生高风险影响,则需要进行回归测试。
iii .错误处理测试:错误被防止或检测并修复。
示例:将错误引入测试的错误重新注入。
人工系统和自动系统之间的差异的一个特征是预定义的错误处理特性。
错误处理测试技术用于检查APP应用系统正确处理异常情况的能力。
错误处理测试需要知识丰富的员工来预测APP应用系统中可能出现的错误。
这是引入测试错误、处理错误、重新正确输入控制条件和条件。
必须在系统的整个生命周期中进行错误测试。
在开发过程中,必须识别错误导致的问题,并采取适当的措施将错误减少到可接受的程度。
iv .人工支持测试:人机交互有效。
例如:具备人工规程; 工作人员受过训练。
手动支持测试技术主要包括在数据准备和自动程序数据使用过程中执行所有功能的工作人员。
整个生命周期都应该验证人工系统功能的正确性。
v .系统间测试:数据可以在系统之间正确传递。
例如:系统间参数变化; 更新系统间文档。
系统间测试技术用于确保APP之间相互管理的正确性。
系统间测试最好的工具之一是集成测试工具,可以在产品环境中进行测试,可以用最低的成本测试系统间的耦合性。
如果APP之间的参数发生变化,则需要进行系统之间的测试。
测试的程度和类型取决于与错误参数相关的风险状况。
vi .控制测试:将系统风险管理降至可接受水平。
例:文件完整性规程正常; 人工正确控制。
控制测试技术包括数据确认、文件完整性控制、审核跟踪、备份和恢复、文档以及与系统完整性相关的其他方面。
主要用于确保系统固有功能的检查。
控制测试的一种方法是生成风险矩阵。
控制测试是系统测试的完整部分,占测试时间的很大比例。
vii .平行测试:发现原系统和新系统之间的意外差异。
示例:原始系统和新系统匹配的原始系统仍然可以正常工作。
并行测试技术用于检查新APP应用程序的结果是否与原始APP应用程序或APP应用程序的早期版本的处理相匹配。
执行冗馀操作以确保新版本或新APP应用程序运行的准确性。指示同一APP应用程序的不同版本之间的一致性和不一致。
可以对整个APP应用程序进行并行测试,也可以对APP应用程序的一部分进行并行测试。
如果不知道新APP应用程序处理的正确性,或者新旧APP应用程序非常相似,则需要并行测试。
7 .软件测试分为几个阶段,各阶段的测试策略和要求是什么a )软件测试分阶段,分为单元测试、集成测试、系统测试和验收测试(不一定)几个阶段b )
然后测试第2层基本单元,并将上面测试的单元用作驱动器模块。
重复此操作,直到所有基本单元均已测试。
优点:在集成测试之前提供早期的集成途径。
在执行上,与详细设计的顺序一致。
不需要开发驱动模块。
缺点:随着测试的深入,测试过程越来越复杂,开发和维护成本增加。
总结:比孤立的单元测试成本要高很多,不是单元测试的好选择。
ii .自底向上的单元测试策略方法:首先对最底层的基本单元进行测试,模拟调用该单元的单元制作驱动模块。
然后,测试上层,使用以下被测试的单元制作存根。
这样,直到测试了所有单元。
优点:在集成测试之前,提供系统的初始集成路由。
不需要开发存根。
缺点:随着测试的进行,测试过程变得越来越复杂。
总结:虽然是合理的单元测试策略,但测试周期长。
iii .孤立单元测试策略方法:不考虑每个单元与其他单元的关系,为每个单元设计存根或驱动模块。
对每个模块进行独立的单元测试。
优点:简单、易操作,能达到较高的结构覆盖率。
缺点:不提供系统的初始集成途径。
总结:最好的单元测试策略。
c )集成测试的测试策略( I .大爆炸集成的优势)能够快速完成集成测试; 而且只要有极少数的驱动和存根; 用例也最少; 很简单; 资源利用率高的缺点:一次试运行成功的可能性很低,很难识别和修复问题,很多接口错误很容易逃避测试。
适应一个维修型项目或被测系统的小.自上而下集成的优点:提前验证了关键控制和判断点; 根据深度优先,首先可以实现和验证完整的软件功能; 通过一个功能成熟、自信的驱动器,降低驱动器开发成本; 支持故障隔离。
缺点:柱子开发量大,基础验证延期; 对基础组件的测试不充分。
适应产品控制结构相对清晰稳定的上层接口变化较小的底层接口可能未定义或可能发生更改。 产口控制单元存在较大技术风险,亟待验证; 我想尽快看到产品的系统功能和行为。
iii .自下而上集成的好处:尽早验证底层组件的行为; 工作最初可以并行集成,支持自顶向下更高效的减少桩工作量的故障隔离。
缺点:驱动开发工作量大,高层验证迟缓,设计上的错误不能及时被发现。
适应基础的接口稳定的上层接口变化比较频繁的基础组件提前完成了。
iv .夹层集成的优点:收集了自上而下和自下而上两种策略的优点和缺点。 中间层测试还不能充分适应大部分软件开发项目v .骨干集成的优点。 具有夹层集成的优点,适用于大型复杂项目的集成。
缺点:由于驱动和桩开发量大,需要仔细分析系统结构和互相关性,局部采用了大爆炸策略,部分接口可能测试不充分。
嵌入式系统常用的.层次集成适应于具有明显层次关系的系统。 基于功能的集成优势:优先验证关键功能的准确性; 减少驱动开发的进度必须快。
缺点:接口测试不充分。有很大的冗馀测试。
viii .基于消息的集成的好处:优先验证重要消息的正确性; 减少驱动开发的进度必须快。
缺点:接口测试不充分。有很大的冗馀测试。
ix .基于风险的集成的优点:最具风险的组件首先经过验证,有助于系统的快速稳定。
缺点:需要明确分析各组件的风险。
x .基于进度的集成优势:可以有效缩短高并行度项目的开发进度。
缺点:桩与驱动工作量大部分接口测试不充分; 一些测试的重复和浪费。
d )系统测试的测试策略) I .数据和数据库完整性测试ii .功能测试iii .用户界面测试iv .性能评估v .负载测试vi .强度测试vii .容量测试viii .安全性和访问控制测试ix .
8 .设计面向对象的测试用例有几种方法吗? a )实现Berard提出了几种测试用例的设计方法。 主要原则如下。 I )每个测试用例应给出特殊标识,并应与测试类明确相关。
ii .测试的目的必须明确。
iii .必须为每个测试用例开发测试步骤列表。
此列表必须包括以下内容: 1 .列出要测试的具体说明。
2 .列出要作为测试结果执行的消息和操作。
3 .列举测试对象可能出现的例外情况。
4 .列出外部条件(即正确测试软件所需的外部环境的变化)。
5 .列出帮助理解和实现测试所需的其他信息。
b )主要方法) I .基于故障的测试也可用于组装测试,组装测试可发现消息联系中的“可能故障”。
“可能的故障”通常是指意外的结果、操作/消息的错误使用、错误引用等。
为了确定操作(功能)可能引起的故障,必须检查操作的动作。
此方法不仅可用于操作测试,还可用于属性测试,以确定不同类型对象的行为是否具有正确的属性值。
因为对象的“属性”是由分配给属性的值定义的。
ii .基于脚本的测试基于脚本的测试主要关注用户需要做什么,而不是产品能做什么。 这意味着确定用户将通过用户任务(使用用例)执行什么。
这个基于脚本的测试有助于在一个单元测试中检查多个系统。
因此,基于脚本的测试用例测试不仅比基于故障的测试更为现实(接近),且更为复杂。
iii. OO类的随机测试如果一个类有多个操作(如果函数,则为这些操作)功能)数组包含多个数组。
然后,可以随机生成这种不变的操作序列,使用这种可随机排列的序列检查不同类型实例的生活史称为随机测试。
iv .类级别划分测试这样的测试可以减少用完全相同的方法检查的类测试用例的数量。
这类似于传统软件测试中的等效分级测试。
分割测试还可以分为三种。
1 .基于状态的分割。
根据是否根据类操作改变类的状态进行分割。
2 .基于属性的分割。
按用于类操作的属性进行拆分(分类)。
3 .基于类型的分割。
按完成的功能进行分割。
v .从行为模型(状态、活动、顺序和协作图)导出的测试状态转移图( STD )有助于导出类的动态行为测试序列和这些类协作的类的动态行为测试序列
9 .软件测试的每个阶段通常完成什么任务? 各阶段的结果文件是什么? 包括什么? a )单元测试阶段。
各独立的单元模块在与系统其他部分隔离的情况下被测试,单元测试对每个程序模块进行正确性检查,以确认各程序模块是否正确实现了规定的功能。
生成单元测试报告并提交缺陷报告。
b )集成测试阶段。
集成测试是基于单元测试,在按照概要设计规范中说明的要求将所有软件单元组装到模块、子系统或系统中的过程中,测试各部分的工作是否满足或实现了适当的技术指标和要求的活动。
在此阶段生成集成测试报告并提交缺陷报告。
c )系统测试阶段。
将通过确认测试的软件作为整个计算机系统的一个要素,与计算机硬件、外围设备、部分支持软件、数据和人员等其他系统要素相结合,在实际操作环境下,实现计算机系统的全面
在此阶段,应提交测试总结和缺陷报告。