软件测试的定义及方法

定义:使用手动或者自动的方式检查软件的过程,目的就是检查其是否满足需求或实际结果与预期结果的差别。

软件测试常用的方法:

1:黑盒测试

黑盒测试就是功能测试,大部分利用手动的方式来检查每个功能是否满足需求及是否能够正常使用。我们在测试的过程中将软件看作是一个不能打开的盒子,不考虑其内部特征和内部结构,只是检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接受输入的数据而产生正确的输出信息。黑盒测试只着眼于程序的外部结构,而不关注内部的逻辑结构。黑盒测试在设计测试用例时所常用的方法:等价边界之值,错误推断及异常分析法,因果图法,判定表,正交表等。

2:灰盒测试

灰盒测试即为接口测试,是介于白盒测试与黑盒测试之间的,可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法。

3:白盒测试

白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、Z路径覆盖、程序变异。

白盒测试的实施步骤:

1.测试计划阶段:根据需求说明书,制定测试进度

2.测试设计阶段:依据程序设计说明书,按照一定规范化的方法进行软件结构划分和设计测试用例。

3.测试执行阶段:输入测试用例,得到测试结果。

4.测试总结阶段:对比测试的结果和代码的预期结果,分析错误原因,找到并解决错误。

白盒测试的优点:

1:迫使测试人员去仔细思考软件的实现;

2:可以检测代码中的每条分支和路径;

3:揭示隐藏在代码中的错误;

4:对代码的测试比较彻底;最优化;

白盒测试的缺点:

无法检测代码中遗漏的路径和数据敏感性错误;

不验证规格的正确性;

从软件开发的过程按阶段划分

a.单元测试

单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。

b.集成测试

集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图〕组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。

c.确认测试

确认测试的目的是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是确认测试的任务,即软件的功能和性能如同用户所合理期待的那样。确认测试又称有效性测试。有效性测试是在模拟的环境下,运用黑盒测试的方法,验证被测软件是否满足需求规格说明书列出的需求。任务是验证软件的功能和性能及其他特性是否与用户的要求一致。对软件的功能和性能要求在软件需求规格说明书中已经明确规定,它包含的信息就是软件确认测试的基础。

d.系统测试

系统测试,英文是System Testing。是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试,系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案。系统测试发现问题之后要经过调试找出错误原因和位置,然后进行改正。是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。对象不仅仅包括需测试的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。

时间: 2024-08-02 21:00:34

软件测试的定义及方法的相关文章

定义一个方法get_page(url),url参数是需要获取网页内容的网址,返回网页的内容。提示(可以了解python的urllib模块)

1 定义一个方法get_page(url),url参数是需要获取网页内容的网址,返回网页的内容.提示(可以了解python的urllib模块) 2 import urllib.request 3 4 def get_page(url): 5 response = urllib.request.urlopen(url) 6 html = response.read() 7 return html 8 9 print(get_page(url='https://www.baidu,com'))

ajax如何调用后台定义的方法

ajax如何调用后台定义的方法:由于ajax的独特优势,使得它在当前大量网站得到了广泛的应用,下面就介绍一下ajax如何调用后台定义的函数,虽然比较简单,不过希望能够给初学者带来一定的帮助,代码如下:1.首先我们先创建一个antzone.aspx页面.2.在它的cs文件中创建如下函数: public static string mytest(string first, string second) { return return first+second; } 2.html代码如下: <form

#定义一个方法get_num(num),num参数是列表类型,判断列表里面的元素为数字类型。其他类型则报错,并且返回一个偶数列表:(注:列表里面的元素为偶数)。

1 #定义一个方法get_num(num),num参数是列表类型,判断列表里面的元素为数字类型.其他类型则报错,并且返回一个偶数列表:(注:列表里面的元素为偶数). 2 def get_num(num): 3 if type(num)!= list: 4 return '您传入的不是列表!' 5 else: 6 for i in num: 7 if not isinstance(i,int): 8 return '请全部传入整数!' 9 return list(filter(lambda x:x

软件测试的类型和方法

软件测试的类型和方法

【软件测试】等价类划分方法的应用

实例——EditBox 允许1到6个英文字符或数字,按OK结束 有效等价类和无效等价类 有效等价类 无效等价类 E1:长度:1到6 T1:长度:0,7 E2:字符:a-z,A-Z,0-9 T2:字符:英文.数字以外字符,控制字符,标点符号 测试用例: 编号 测试用例 预期输出 1(E1,E2)  a 有效输入 2(E1,E2) z 有效输入 3(E1,E2) A 有效输入 4(E1,E2) Z 有效输入 5(E1,E2) 0 有效输入 6(E1,E2) 9 有效输入 7(E1,E2) aaaaa

LinQ 定义扩展方法3.1

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Reflection; using System.Diagnostics; namespace ExtensionMethodDump { class Program { static void Main(string[] args) { var song = new { Artist = "Juss

软件测试的定义及其分类

软件测试的定义 在规定条件下对被测程序进行操作,以发现错误,对软件质量进行评估. 软件=文档+数据+程序 使用人工自动化手段来运行或测试某个系统哦的过程,其目的是在于检验它是否满足规定的需求或弄清楚预期结果与实际结果之间的差别. 软件测试的分类 (1)按开发阶段划分 单元测试.集成测试.确认测试,验收测试 (2)按测试实施组织划分 开发方测试,用户测试,第三方测试 (3)按测试技术划分 黑盒测试,白盒测试,灰盒测试.

MySQL删除外键定义的方法

MySQL外键在定以后,如果我们不再需要这个外键,可以进行删除操作,下面就为您介绍MySQL删除外键定义的方法,供您参考. 不知道大家有没有发现,在定义外键的时候articles.member_id外键比articles.category_id子句多了一个CONSTRAINT fk_member ?这个fk_member就是用来实现MySQL删除外键用的,如下所示: mysql> ALTER TABLE articles DROP FOREIGN KEY fk_member; Query OK,

Android EventBus的简单使用基本的使用步骤就是如下4步,点击此链接查看例子及介绍。 定义事件类型: `public class MyEvent {}` 定义事件处理方法: `public

基本的使用步骤就是如下4步,点击此链接查看例子及介绍. 定义事件类型: `public class MyEvent {}` 定义事件处理方法: `public void onEventMainThread` 注册订阅者: `EventBus.getDefault().register(this)` 发送事件: `EventBus.getDefault().post(new MyEvent())` 一.实现 **EventBus**使用方法很简单,但用一个东西,如果不了解它的实现用起来心里总是没底