为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

软件测试题库

2020-03-08 10页 doc 28KB 10阅读

用户头像

is_833902

暂无简介

举报
软件测试题库软件测试的概念:软件测试是使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验被测软件系统是否满足规定需要,或是弄清楚被测系统的预期结果与实际结果之间的差别。 1.软件测试的根本目的是确保软件满足用户需求 2.软件测试的目的是要衡量软件产品是否符合预期 3.软件测试是一个持续进行的过程 4.测试需要动态执行也需要静态检查 5.测试不仅需要手动执行也需要自动执行 软件的特点:1.软件必须依靠人的智力劳动才能创造出来,软件有较大的随意性。 2.软件必须依托于具体的硬件设备才能运行。 3.软件不会如硬件一般产生磨损,但会随...
软件测试题库
软件测试的概念:软件测试是使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验被测软件系统是否满足规定需要,或是弄清楚被测系统的预期结果与实际结果之间的差别。 1.软件测试的根本目的是确保软件满足用户需求 2.软件测试的目的是要衡量软件产品是否符合预期 3.软件测试是一个持续进行的过程 4.测试需要动态执行也需要静态检查 5.测试不仅需要手动执行也需要自动执行 软件的特点:1.软件必须依靠人的智力劳动才能创造出来,软件有较大的随意性。 2.软件必须依托于具体的硬件设备才能运行。 3.软件不会如硬件一般产生磨损,但会随着其依托的硬件设备的变化,以及用户需求的不断变化而需要进行升级,且到了某个时候,当需求和硬件的变化使得软件不得不改变其具体构架的时候,该软件就必须被淘汰而焕之以全新的软件。因此,应测试升级后的软件对旧版本的兼容性。 测试过程 1.计划测试 2.测试 3.实施测试 4.执行测试 测试用例:测试用例是一组测试输入,执行条件和预期结果,目的是要满足一个特定目标,如执行一条特定的程序路径或检验是否符合一个特定的需求的用例。 可示为:测试用例=输入+输出+测试环境 输入是测试数据和操作步骤,输出是系统的预期结果。测试环境是系统环境设置,即进行软件测试所必须的工作平台和前提条件 测试用例由输入数据、操作步骤、预期执行结果及测试环境所构成。 自动化测试通过测试工具、测试脚本等手段,按照测试工程师的预定计划对软件产品进行自动测试,从而验证软件是否满足用户的需求。 自动化测试具有良好的可重复性、可操作性和高效率等特点,是提高测试覆盖率和可靠性的重要手段。 测试环境包括硬件环境 软件环境 网络环境 历史数据 1.硬件环境指进行测试所必须的服务器、客户端、网络连接设备,以及打印机扫描仪等辅助硬件设备所构成的环境,它是软件运行及提供部分功能的必要条件 2.软件环境指被测软件运行时的操作系统、数据库、以及其他应用软件构成的环境,它是应用软件运行的基础 3.网络环境主要指针对C/S B/S架构的软件 4.历史数据指测试用例执行所需初始化的各项数据 黑盒测试的方法包括等价类测试、边界值测试、基于决策表的测试方法等可从如下方面来评价某种测试方法的质量 1.测试用例对被测对象的覆盖率 2.测试用例的冗余 3.测试用例的数量 4.测试用例对缺陷的定位能力 5.测试用例射击的复杂度 边界值测试的基本原理:在被测对象的边界及边界附近设计测试用例 对于某个输入条件而言,边界的确定可以参照一下原则 1.若输入条件规定了取值范围,则以该范围作为边界 2.若输入条件规定了值的个数,则以值的个数为边界 3.若输入域是有序集合(如有序表、顺序文件等),则选取集合中特定次序的数据作为边界,如第一个或者最后一个数据等 针对某个输入条件确定边界点时,可基于如下思路 1.首先在需求描述中寻找最大极限边界 2.接着在需求描述中寻找其他较为明显的边界 3.最后还需要关注在软件内部的边界点 正交表的性质: 1. 每一列中每个输入条件的各个测试数据出现的次数相同。 2. 任意两列所构成的各有序数对出现的次数相同。 输入条件 测试初级 用例ID A B C D 1         2         3                   正交表特点: 1.无需穷举所有组合情况,只需要使用少量的抽样组合数据构成测试用例,可明显提高效率; 2.用正交表抽样出的组合数据分布均用,对组合情况具有最佳的覆盖性; 3.能减少手动对组合数据抽样导致的大量测试遗漏。 测试用例的设计 1.测试数据的选择 1.穷举法:在每个边界点的邻域范围内取所有数据构成测试数据的集合 优点:所有数值可以测试到 缺点:条件为连续数值时没法穷举,邻域测试数据多导致测试负担重 2.典型值法:选择边界邻域内的典型值作为测试数据 优点:测试数据包含了边界点本身以及最远离该变节点的邻域数据,具有典型    性,数据量大大降低 2.边界组合方式的选择 1.强边界法 2.弱边界法 3.全边界法 3.测试 等价类划分是最典型、最常用的黑盒测试方法。采用此方法的原因是:由于穷举测试的办法数量太大,以至于无法实际完成,自然促使我们在大量的可能数据中选取其中的一部分作为测试用例。等价类划分就是分步骤地把无限多的测试用例减少到同样有效的小范围的过程。 这些子集满足: 1.每个子集内所有数据等价,即被测系统对该子集中每个数据的处理方式相同(保证覆盖) 2.各个子集之间互不相交,即输入域中的某个数据或某项唯一隶属属于某个子集(保证无冗余) 3.所有子集的并集是整个输入域(保证完备) 单元测试是指对软件中的最小可测试单元或基本组成单元进行检查和验证 建议单元选取原则如下 1.对于C语言这类面向过程的开发语言来说,单元常指一个函数或者子过程。在特殊情况下,若有几个函数之间既有强耦合性,导致函数关系非常密切,则应将这几个函数共同作为一个单元来测试 2.对于C++、java、C#这类面向对象的开发语言来说,单元一般指一个类。然而,某些基础类可能非常庞大,涉及大量属性和方法,甚至需要几个开发人员来编码完成,若将该类作为一个单元来测试并不合适,此时的测试将上升到集成测试的层面,并分为类内测试和类间测试 3.图形化软件中,单元常指一个窗口或一个菜单 对被测单元的功能测试属于黑盒测试,对模块代码所做的测试属于白盒测试 单元测试的内容 1.静态检查尤其是静态代码分析的结果适用于所有可能性的运行情况,而动态测试总是针对特殊取值的测试,仅能测试到程序的特定属性,即保证被测组件在其测试平台上对于特定输入是有效的 2.动态测试可以覆盖到程序的各种前置条件和后置条件组合情况,能真实反映程序在特定运行期的运转状况,并能说明执行的常用路径,大大超过同期静态分析所能达到的范围 驱动模块是模拟被测单元的上级模块,用于接收测试数据、启动被测模块和输出结果 桩模块是模拟被测单元所调用的模块。有时需要使用子模块的接口,才能做少量数据操作,并验证和打印入口处的信息,然后返回。桩模块不包含原模块的所有细节 驱动模块的功能要求 1.利用已有的测试用例,接收测试的输入数据。实现方式是通过外部调用的方式从数据文件或外部数据源中依次读入数据(包括测试用例的输入和对应的预期输出) 2.将测试数据传递给被测单元,从而启动被测单元。实现方式是调用被测单元,同时利用参数将输入数据传给被测单元 3.打印和输出测试用例的相关结果,判断测试是通过还是失败。即利用结果的比较加以判断,在允许的误差条件下,一致的结果表明测试通过,否则视为测试失败。执行结果可以直接输出到屏幕,也可以保存到指定的外部文件中。 4.通过测试日志文件记录测试过程,便于后续数据保存和分析。日志文件中应能区分被测对象、测试用例的基本信息、测试执行结果是否通过、失败用例的具体错误信息、测试用例通过率等内容 桩模块的功能要求 1.在特定条件下完成原单元的基本功能。即针对特定的输入可以输出正确的结果。注意:这里所谓的完成功能其实并非真正在模块内部去执行某些复杂的逻辑判断或者计算过程,而是简单的批量“打印”而已,只针对测试用例的一组输入直接返回预期输出 2.能够被正确调用。即符合正确的输入条件,在个数、参数类型、参数顺序等方面与被模拟单元完全一致 3.有返回值。若有返回值,则应针对特定输入返回与被模拟单元完全一致的结果 4.不包含原单元的所有细节。原单元的输入情况可能是无限多的,所谓模拟意味着仅挑选其中典型的输入(如边界),给出已知的输出结果 单元测试的过程 1.计划阶段:完成单元测试计划,制定单元测试策略 2.设计阶段:根据单元测试计划,提取测试需求,完成测试设计 3.实施阶段:根据测试用例开发测试数据或者测试脚本,并建立单元测试环境,准备正式开始测试执行 4.执行阶段:以手动方式或者利用测试脚本自动执行单元测试用例,记录测试结果 5.评估阶段:利用测试用例和缺陷计算相关指标,评估阶段性测试过程和结果,做出决策 日构建是自动、完整的构建整个代码库的代码,在构建的同时完成单元测试执行的软件研发工作模式 回归测试是贯穿在整个测试各个阶段的一个测试活动,主要是对修改过的软件重新进行测试,以保证验证修改的正确性以及其影响 目的在于 1.确保缺陷真正得到了修复 2.防止在缺陷修复或功能变化过程中造成对软件原有正常部分代码的损坏 3.防止由于开发人员自身因素或其他因素导致的版本倒流现象 4.防止由于其他因素造成的原正常功能的失效 集成测试就是在单元测试的基础上,将所有已通过单元测试的模块按照概要设计的要求组装为子系统或系统,并进行测试的过程,目的是确保各个单元模块组合在一起后够按既定意图协作运行并确保增量的行为正确 集成测试的评价 1.测试用例的规模  测试用例规模越小越好 2.驱动模块的设计  驱动模块的数量越少越好 3.桩模块的设计    桩模块的数量越少越好 4.陷阱的定位      单个集成测试涉及接口数量(即模块数量)越少越好 单个集成测试用例的设计中,可以每次测试一对模块的接口,也可以一次测试多对模块之间的接口,由此产生主要的3中测试方法  成对集成  邻居集成  基于独立路径的集成 成对集成的基本思想是将每个集成测试用例限定在一对调用单元上,每个集成测试用例都是最小的集成单元,仅涉及一对调用的接口。 邻居集成的基本思想是将每个集成测试用例限定在某个节点的邻居上,针对某个模块的集成测试用例同时包含该模块及其邻居。 邻居的构成有两种方式 1.处于中间层的模块 2.根节点直接调用叶子节点 基于独立路径的集成基本思想是将函数调用图看做程序的控制流图或程序图,每个从根节点到叶子节点的调用形成了路径,每条独立路径即可构成一个集成测试用例 集成测试遍历顺序的设计 1.大爆炸集成:是将所有经过单元测试的模块一次性组装到被测系统中进行测试,完全不考虑模块之间的依赖性和可能的风险 2.自顶向下的集成:是从主控模块(主程序,根节点)开始,按照系统程序结构,沿着控制层次从上而下,逐渐将各模块组装起来。集成中采用宽度优先或深度优先的策略向下推进,对根节点进行集成测试,所有被根节点直接调用的模块均用桩模块来代替。 3.自底向上:是从底层模块?(即叶子节点)开始,按照调用图的结构,从下而上,逐层将各模块组装起来。对叶子节点进行集成测试,所有被叶子节点直接调用的模块均用驱动模块来代替 4.三明治集成:是将自顶向下和自底向上集成方法集合起来的集成策略 系统测试包括 1.功能测试(用黑盒):主要针对系统的功能需求展开测试,以确认被测系统是否满足用户的功能使用要求
/
本文档为【软件测试题库】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索