软件测试教程——概念解析及常用方法概说

  软件测试主要工作内容是验证(verification)和确认(validation),下面分别给出其概念:

  验证(verification)是保证软件正确地实现了一些特定功能的一系列活动, 即保证软件以正确的方式来做了这个事件(Do it right)

  1.确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程。

  2.程序正确性的形式证明,即采用形式理论证明程序符合设计规约规定的过程。

  3.评审、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。

  确认(validation)是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件做了你所期望的事情。(Do the right thing)

  1.静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性。

  2.动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。

  软件测试的对象不仅仅是程序测试,软件测试应该包括整个软件开发期间各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档,当然软件测试的主要对象还是源程序。

  测试方法

  等价类

  1.定义

  是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。

  2.划分等价类

  等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。

  1)有效等价类

  是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。

  2)无效等价类

  与有效等价类的定义恰巧相反。无效等价类指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个。

  设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。

  3.划分等价类的标准

  1)完备测试、避免冗余;

  2)划分等价类重要的是:集合的划分,划分为互不相交的一组子集,而子集的并是整个集合;

  3)并是整个集合:完备性;

  4)子集互不相交:保证一种形式的无冗余性;

  5)同一类中标识(选择)一个测试用例,同一等价类中,往往处理相同,相同处理映射到"相同的执行路径"。

  4.划分等价类的方法

  1)在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。

  如:输入值是学生成绩,范围是0~100。

  2)在输入条件规定了输入值的集合或者规定了"必须如何"的条件的情况下,可确立一个有效等价类和一个无效等价类。

  边界值

  1. 定义:边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。

  2. 与等价划分的区别

  1) 边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。

  2) 边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。

  3. 边界值分析方法的考虑:

  长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。

  使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。

  4. 常见的边界值

  1) 对16-bit 的整数而言 32767 和 -32768 是边界

  2) 屏幕上光标在最左上、最右下位置

  3) 报表的第一行和最后一行

  4) 数组元素的第一个和最后一个

  5) 循环的第 0 次、第 1 次和倒数第 2 次、最后一次

  5. 边界值分析

  1) 边界值分析使用与等价类划分法相同的划分,只是边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试用例。

  例:测试计算平方根的函数

  --输入:实数

  --输出:实数

  --规格说明:当输入一个0或比0大的数的时候,返回其正平方根;当输入一个小于0的数时,显示错误信息"平方根非法-输入值小于0"并返回0;库函数Print-Line可以用来输出错误信息。

原文地址:https://www.cnblogs.com/coffees/p/12327054.html

时间: 2024-10-05 05:04:51

软件测试教程——概念解析及常用方法概说的相关文章

Photoshop入门教程(一):文本新建与概念解析

写在开头 <Photoshop实用入门>系列教程可能对于一点都没有接触过Photoshop的人来说不太容易接受,因为本教程并没有细致到教你如何使用画笔工具等一系列很基础的东西,有些地方的讲解可能还会有一点点跨越.所以建议会基本操作的初学者学习,通过对本教程的学习,真正步入Photoshop奇妙的世界,真正入门. Photoshop简介 Photoshop是大名鼎鼎的图像处理软件,是由Adobe开发的,主要处理以像素所构成的数字图像. Photoshop版本 作为初学者,第一要面临的就是软件版本

mongodb基本概念解析

MongoDB 概念解析 不管我们学习什么数据库都应该学习其中的基础概念,在mongodb中基本的概念是文档.集合.数据库,下面我们挨个介绍. 下表将帮助您更容易理解Mongo中的一些概念: SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数据库 table collection 数据库表/集合 row document 数据记录行/文档 column field 数据字段/域 index index 索引 table joins   表连接,Mong

MongoDB 概念解析

MongoDB 概念解析 不管我们学习什么数据库都应该学习其中的基础概念,在mongodb中基本的概念是文档.集合.数据库,下面我们挨个介绍. 下表将帮助您更容易理解Mongo中的一些概念: SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数据库 table collection 数据库表/集合 row document 数据记录行/文档 column field 数据字段/域 index index 索引 table joins   表连接,Mong

SQL Server扩展事件(Extended Events)-- 扩展事件概念解析

SQL Server扩展事件(Extended Events)-- 扩展事件概念解析 下图描述了扩展事件中引入的几个新概念: 事件 事件是指代码中定义的点.此类示例包括:T-SQL 语句完成执行时的点或结束获取锁定时的点.每个事件都有一个定义的负载(该事件返回的列的集合),它是使用 ETW 模型(其中每个事件都返回一个通道和关键字作为负载的一部分)来定义的,以便能够与 ETW 集成.SQL Server 2008 最初提供 254 个定义的事件,预计在今后还会增加. 使用下列代码可以查看这些定义

JSON&&XML以及XML解析的常用方法

JSONJSON(JavaScript Object Notation)一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.可在不同平台之间进行数据交换.JSON采用兼容性很高的.完全独立于语言文本格式,同时也具备类似于C语言的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)体系的行为.这些特性使JSON成为理想的数据交换语言.  XML扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件

New UI-屏幕分辨率,屏幕尺寸,像素,dpi概念解析

屏幕分辨率,屏幕尺寸,像素,dpi概念解析            --转载请注明出处:coder-pig,欢迎转载,请勿用于商业用途! 小猪Android开发交流群已建立,欢迎大家加入,无论是新手,菜鸟,大神都可以,小猪一个人的 力量毕竟是有限的,写出来的东西肯定会有很多纰漏不足,欢迎大家指出,集思广益,让小猪的博文 更加的详尽,帮到更多的人,O(∩_∩)O谢谢! 小猪Android开发交流群:小猪Android开发交流群群号:421858269 新Android UI实例大全目录:http:/

软件测试教程 软件测试的执行

软件测试教程虽然我们都认为,有效的测试计划是指导测试用例设计.测试执行的指导性文件,是成功测试的前提和必要条件,测试用例设计是测试工作的核心,测试用例的成功设计已经完成了一半的测试任务,但是测试的执行是基础,是测试计划和测试用例实现的基础,严格的测试执行使测试工作不会半途而废.而且,测试执行的管理相对复杂些,在整个测试执行阶段中,我们需要面对一系列问题,如: 如何确保测试环境满足测试用例所描述的要求? 如何保证每个测试人员清楚自己的测试任务和要达到的目标? 如何保证每个测试用例得到百分之百的执行

Android实习札记(4)---Fragment(碎片)基本概念解析

Android实习札记(4)---Fragment(碎片)基本概念解析 转载请注明出处:coder-pig Fragment相信大家都不会陌生吧,侧滑啦,抽屉效果啦,DialogFragment啊等等,一堆地方都会 用到Fragment,对于Fragment的基本概念在前面的文章中其实已经给出的了,这里回顾一遍, 温故而知新嘛,同时结合Google官方的api进行复习! 1)什么是Fragment以及它的生命周期: 核心要点: 1)3.0版本后引入,即minSdk要大于11 2)Fragment

Apache Flink 零基础入门(一):基础概念解析

作者:陈守元.戴资力 一.Apache Flink 的定义.架构及原理 Apache Flink 是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态或无状态的计算,能够部署在各种集群环境,对各种规模大小的数据进行快速计算. 1. Flink Application 了解 Flink 应用开发需要先理解 Flink 的 Streams.State.Time 等基础处理语义以及 Flink 兼顾灵活性和方便性的多层次 API. Streams:流,分为有限数据流与无限数据流,unbou