计算机, 软件
和测试软件的方法对它们进行比较。 “黑盒”测试的测试方法和“白盒”的方法
测试软件(SW)确定需要解决的代码的差距,缺点和错误。 它也可以被定义为与分析的帮助下评估软件的功能性和正确性的过程。 集成和应用软件测试的基本方法,并确保质量检验规范,设计和编码,可靠性评估,验证和确认。
方法
软件测试的主要目的 - 软件系统,通过系统的调试应用程序严格控制条件下的质量确认,以确定其完整性和准确性,以及隐藏的错误检测。
验证的方法 (测试)计划 可分为静态和动态。
前者包括非正式的,监测和技术审查,检查,一步一步的分析,审计,以及静态数据流分析和管理。
动态技术是:
- 白盒测试。 这是程序的内部逻辑和结构的详细研究。 这是必要的源代码的知识。
- 黑箱测试。 这种技术不需要对应用程序的内部工作原理的任何知识。 我们只考虑了系统的基本方面,不涉及或有一些它的内部逻辑结构的关联。
- 灰箱方法。 它结合了前面两种方法。 与应用程序的内部运作的有限知识调试与系统的基本方面的知识结合起来。
透明测试
白盒使用方法测试脚本控制程序设计的结构。 该技术允许通过分析软件的内部工作的一部分,露出执行错误,如管理不善,编码系统。 这些测试方法适用于集成,模块和系统级别。 测试人员必须能够访问源代码,并用它来找出哪个单位不恰当的行为。
通过白盒测试方案具有以下优点:
- 它允许通过去除不必要的行,以检测隐藏的代码中的错误;
- 使用的副作用;
- 最大覆盖范围由编写测试脚本来实现的。
缺点:
- 高成本的过程,需要熟练的调试器;
- 许多途径仍然未知,因为所有可能隐藏的错误,彻底的检查是非常复杂的;
- 一些代码将被传递忽视。
白箱测试通过检测一个透明或开口盒,结构,逻辑测试,基于所述源代码,和逻辑体系结构有时称作。
主要品种有:
1)测试所述流量控制 - 使用节目控制流模型并且作为有利于更简单的方法来更少更复杂的结构策略;
2)分支被设计为研究每个控制操作员,其中还包括一个组合解决方案的调试每个选项(true或false);
3)主路径,其允许测试以建立逻辑复杂度测量程序项目用于分离一组基本的执行路径的测试;
4)检查数据流 - 通过注释的研究流量控制策略计算有关的广告信息,并使用程序变量;
5)测试周期 - 完全集中在循环过程的正确操作。
行为调试
黑盒测试把软件作为一个“黑匣子” - 有关程序的内部工作信息进行计数,并检查只有系统的基本方面。 在这种情况下,测试人员需要了解系统架构无需访问源代码。
这种方法的优点:
- 效率为大的代码段;
- 缓解感知测试仪;
- 用户的角度清楚地从显影剂角度(程序员和测试器是彼此独立的)分开;
- 更快速创建测试。
测试软件黑箱方法有以下缺点:
- 确实执行的测试用例选定数量,从而导致有限的覆盖;
- 缺乏明确的规范很难开发测试脚本的;
- 效率低。
该技术的其他名称-行为的,不透明的, 功能测试 和封闭箱的调试方法。
此类别可包括如下软件测试技术:
1)相当于分区,这可以减少该组测试数据作为输入软件模块的数据被分解成单独的部分的;
2)边界值的分析集中于边界或极限的值的验证 - 的最小值,最大值,和错误的典型值;
3)起毛 - 用于实现通过输入错误,或者在自动或半自动模式破坏的数据poluiskazhennyh搜索;
4)的因果关系计数 - 基于所述创建图形和确定的动作和其原因的关系的技术:否定身份,逻辑OR和逻辑AND - 四个主角,表达因果之间的关系;
5)正交阵列的验证应用到具有相对小的输入区域超过了详尽的研究的可能性的问题;
6)测试所有双 - 一种技术,其中,一组测试值包括每对输入参数的所有可能的二进制组合;
7)调试状态转变-用于检查机器的状态,以及通过导航有用的技术 GUI 用户。
黑盒测试:实例
黑盒技术是基于规范,文档,软件接口或系统的描述。 此外,你可以使用模型(正式或非正式),占软件的预期行为。
典型地,用于调试用户界面此方法,并需要与通过引入数据采集和结果的应用程序的交互的 - 从屏幕上,从报告或打印输出。
该测试仪,因此,与通过输入,通过作用于开关,按钮或其他接口的软件进行交互。 输入数据的选择,给药或动作序列的顺序可导致组合的一个巨大的总数,作为显示在下面的例子。
有多少测试需要,以检查所有的4个窗口标志和一次性场的可能值进行设置以秒为单位的时间? 乍一看计算是简单的:4个字段具有两种可能状态 - 24 = 16,其必须由可能的位置的数目乘以从00到99,即1600次可能的测试。
但是,这种计算是错误的:我们可以判断这两个点场还可以包含一个空间,即它由两个字母的位置,并且可以包含字母数字字符,特殊字符,空格等。因此,如果....系统是一个16位的计算机,转216 = 65536一个用于每个位置在所得4294967296测试用例要由标志16点的组合,给出了一个总的68719476 736如果它们执行相乘以每秒1个测试,总续 olzhitelnost测试是2177.5年。 对于32或64位系统,甚至更持续时间。
因此有必要减小此期间到可接受的水平。 因此,所述技术应当适用于减少的测试用例的数量而不降低测试的范围。
等价类划分
相应分区是一个简单的方法,该方法适用于存在于该软件的任何变量,它是否输入或输出值,符号,数字及其他。基于以下原则,即所有从一个当量的分区的数据将被以相同方式处理和由相同的指令。
在测试过程中,选择的一个代表每个特定等价划分的。 这使您可以系统地减少可能的测试用例的数量没有命令和功能的覆盖损失。
这个分区的另一个后果是减少不同变量和测试用例的相应减少之间的组合爆炸。
例如,在(1 / x)的1/2使用三个数据序列,三个当量分区:
1.所有正数会以同样的方式进行处理,并应给出正确的结果。
2.所有负数是以同样的结果相同的方式处理。 这是不正确的,因为负的根数是虚。
3.零将被分开处理和“被零除”给该错误。 这是一个单一的值的部分。
于是,我们看到三个不同的部分,其中的一个被减少为单个值。 有一个“正确”的部分,它提供了可靠的结果,以及两个“错误”与不正确的结果。
边界值分析
在相当于划分的边界处理可以以不同的方式做的比预期的。 极限值的调查 - 分析等方面的软件的行为的一个众所周知的方法。 这种技术能够识别这样的错误:
- 不当使用关系运算符的(<,>,=,≠,≥,≤);
- 单个错误;
- 在循环和迭代问题,
- 错误类型或用于存储信息的变量的大小;
- 数据类型和变量相关的人为限制。
半透明测试
灰箱方法增加了测试覆盖率,可以通过黑白技术的组合侧重于系统的所有困难的水平。
使用这种技术,该测试仪测试值的发展应该有内部数据结构和算法的知识。 是的灰盒测试方法的实例如下:
- 建筑模型;
- 统一建模语言(UML);
- 状态模型(有限状态机)。
灰色框中的方法来开发的测试用例研究了白色工程代码模块,并且实际测试是在黑技术方案的接口进行的。
这些测试方法具有以下优点:
- 的优点的技术人员白色和黑色盒组合;
- 测试仪是基于接口和功能规范,而不是源代码上;
- 调试器也能取得巨大的测试用例;
- 检查从用户看来,而不是节目的设计者的点作出;
- 创建自定义的测试开发;
- 客观性。
缺点:
- 测试覆盖率有限的,因为不存在对源代码没有访问;
- 中分布式应用程序中的缺陷的复杂性;
- 许多方面仍然未开发的;
- 如果软件开发商已经推出了测试,那么进一步的调查可能会过度。
另一个名字灰盒技术 - 半透明的调试。
这一类包括测试的这样的方法:
1)正交阵列 - 利用所有可能的组合的子集的;
2)使用的节目数据的状态矩阵调试;
3)在新的软件更改进行回归检查;
4)模板测试,分析了良好的应用的设计和架构。
软件测试技术的比较
采用动态方法导致了需要被制定,实施和执行的测试数量的组合爆炸。 每一项技术都应该务实地使用,同时它的局限性考虑在内。
唯一真正的方法不存在,只有那些更适合具体情况。 结构工程让我们找到一个无用的或恶意代码,但它们是复杂的,并不适用于大型程序。 基于规范的方法 - 只有那些能够识别丢失的代码,但它们不能识别一个局外人。 一些技术更适合于比其他特定的测试水平,错误类型或上下文。
下面是三个动态测试技术之间的主要区别 - 给出了三种形式的调试软件之间的对照表。
方面 | 黑盒法 | 灰箱方法 | 白盒法 |
可用性的信息的程序的组成 | 只检查的基本方面 | 关于程序的内部结构部分知识 | 完全访问源代码 |
该方案的碎片化程度 | 低 | 中央 | 高 |
谁生产调试? | 最终用户,测试人员和开发人员 | 最终用户,开发和调试器 | 开发人员和测试人员 |
基地 | 测试是基于外部紧急情况。 | 图数据库,数据流图,算法和体系结构的内部知识的状态 | 内部设备完全了解 |
覆盖度 | 不够全面,需要在最短的时间 | 中央 | 可能是最全面的。 费时 |
数据和内部边界 | 调试,只能通过试错 |
可以检查数据域和内部边界,如果它们被称为 | 最好的测试数据域和内部边界 |
适用性测试算法 | 没有 | 没有 | 是的 |
自动化
软件测试的自动方法大大简化检查的过程中,无论在技术和环境的上下文。 他们是在两种情况下使用:
1)自动执行繁琐的,重复的或细致的任务,例如,以释放时间测试器更重要点的浓度文件比较到几千行;
2)用于执行跟踪或可以不容易被人如可在百分之一秒来测量性能验证或分析响应时间执行的任务。
测试工具可以以不同的方式进行分类。 接下来的划分是基于他们所支持的任务:
- 测试管理,包括项目管理支持,版本,配置,风险分析,测试跟踪,错误,缺陷和报告工具;
- 需求管理,它包括存储要求和规范,检查它们的完整性和模糊性,它们的优先级和每个测试的可追踪性;
- 严格审查和静态分析,包括流量监控和任务,记录和评价,缺陷检测存储和计划更正管理链接清单和规则,跟踪通信的源文件和代码静态分析来检测缺陷,确保其符合编写代码的标准,结构和相关性分析,代码和架构的度量参数的计算。 此外,使用编译器,分析仪,发电机和交叉引用的关系;
- 建模,其中包括业务建模工具,行为和测试模型;
- 测试开发,确保预期的条件和用户界面模型和代码的基础上,数据的产生,管理创建或修改的管理,条件和风险统计分析的规则的基础上的文件和数据库,消息,数据验证;
- 通过图形用户界面,API,命令使用比较器,以帮助识别成功和不成功的测试行输入数据的关键视图;
- 支持调试环境,使您可以替换基于所确定的输出子集,终端仿真器,手机和网络设备,用于检查语言,操作系统和环境缺少的硬件或软件,在卷小时。模拟设备 的硬件 更换缺少的组件的驱动程序,虚构模块等,以及用于捕获和修改OS工具请求CPU仿真限制,RAM,ROM,或网络.;
- ..数据文件,数据库,中,后的测试完成后,含动态和一批比较,自动“神谕”检查预期结果的比较;
- 涂布测量内存泄漏的下生长测量,分析和系统资源报告的验证的一个真实的场景模拟负荷产生负载应用程序,数据库,网络或服务器的定位和不正确的其控制行为估计系统;
- 安全;
- 性能测试,负载和动态数据;
- 其他工具,在卷小时。检查拼写和语法, 网络安全, 所有的网站页面和其他的可用性。
透视
随着软件行业变化趋势的,调试的过程中也可能发生变化。 有软件测试的新方法,如服务orientirovannae架构(SOA),无线技术,移动服务等。E.,开拓了测试软件的新途径。 一些预计在行业在未来几年中的变化如下所列:
- 测试人员提供了一个轻量级的模型,开发人员将能够检查你的代码;
- 测试方法,包括查看并在早期阶段建模方案,将消除许多矛盾的发展;
- 多个拦截测试的存在会缩短错误检测的时间;
- 静态分析器和检测装置得到越来越广泛的使用;
- 使用矿物基质,如本说明书的覆盖,模型和代码覆盖的范围将决定的项目的开发;
- 组合工具允许测试,以确定调试的优先领域;
- 测试人员将提供整个软件开发过程更加直观和有价值的服务;
- 调试器可以创建写成,并用多种编程语言的交互工具和软件测试方法;
- 调试专家会更专业培训。
将由一个新的面向企业的软件测试方法进行更换,更改与系统进行交互的方式和他们提供的,同时降低风险和增加的业务变化带来的好处的信息。
Similar articles
Trending Now