软件测试的基本概念和方法 [转]

设计测试用例 假设在用户登录页面中提示用户名的长度为8~16位,于是就利用穷举法来设计测试用例,若测试用例能够全部通过就符合需求的要求,但是如果需求中的数据量大,例如用户名的长度是6~500位,利用穷举法就难以进行设计。例如有一个需求:订单提交之后,订单合计金额大于300或者订单使用了优惠券,就认为订单属于有优惠的订单否则就属于没有优惠的订单。当输入为:订单金额大于300或者使用优惠券,并且订单提交了之后就输出:该订单是有优惠的订单,否则就输出该订单是没有优惠的订单。无效类:针对需求无效并且无意义的数组构成的集合。 阅读详情

软件测试方法之所以没能完全标准化和统一化,主要原因是因为软件产业产品到软件测试有各式各样的软件。但是目前仍有很多各样软件测试方法都基本可用的常用概念和方法。我们这里介绍的思路和方法就是可用于多数应用软件的测试。有六个有关软件测试方法的基本概念是很重要的:白箱测试,黑箱测试,灰箱测试,有效用例和无效用例,边界条件以及等价类测试。

白箱测试或白盒测试(White-box testing 或glass-box testing)是通过程序的源代码进行测试而不使用用户界面。这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正。

黑箱测试或黑盒测试(Black-box testing)是通过使用整个软件或某种软件功能来严格地测试, 而并没有通过检查程序的源代码或者很清楚地了解该软件或某种软件功能的源代码程序具体是怎样设计的。测试人员通过输入他们的数据然后看输出的结果从而了解软件怎样工作。通常测试人员在进行测试时不仅使用肯定出正确结果的输入数据,而且还会使用有挑战性的输入数据以及可能结果会出错的输入数据以便了解软件怎样处理各种类型的数据。

灰箱测试或灰盒测试(Gray-box testing):灰箱测试就像黑箱测试一样是通过用户界面测试,但是测试人员已经有所了解该软件或某种软件功能的源代码程序具体是怎样设计的。甚至于还读过部分源代码。 因此测试人员可以有的放矢地进行某种确定的条件/功能的测试。这样做的意义在于:如果你知道产品内部的设计和对产品有透过用户界面的深入了解,你就能够更有效和深入地从用户界面来测试它的各项性能。

有效用例(Valid case)或者叫合法输入用例:是那些已知软件程序能正确地处理的测试用例。一般是指软件输入的测试用例。比如说,在 Microsoft Excel 中,用键盘输入“=1+1”, 看到的结果是“2”。 这里输入的有效用例是“=1+1”。无效用例(Invalid case有人叫不合法输入用例)或者出错用例(error case):是那些事先就知道软件程序不支持处理的测试用例。比如说在 Microsoft Excel 中,用键盘输入“=a+1”, 看到的结果是“#NAME?”。这里输入的“=a+1”既是无效用例同时也是出错用例。

边界条件(Boundary Cases):环绕边界值的测试。通常意味着最大值,最小值或者所设计软件能够处理的最长的字符串等等。比如说某软件字体的字号支持范围是:从8到72。那么边界测试用例应该包括:小于8, 等于8, 等于72 和大于72。

等价类(equivalent classes):等价类测试用例指的是如果有很多测试用例执行再多也不会找到新的中的缺陷。因为虽然输入和输出结果有所不同,但是它们都通过同样的软件的源代码路径。通常只要一个源代码程序的路径是用于处理一定数值范围内的所有数值,那么除了边界值以外,在边界值范围以内的所有数值一般都属于等价类。因为如果软件程序能正确处理一个值,也就意味着该程序能正确处理在这个范围内的除了边界值以外的其他任何有效输入值。我们来用以上软件字体的字号来举例说明。软件支持的字号范围是:从8到72。那么8和72之间的所有支持的字号都可以被认为是等价类的测试用例。

软件测试的基本方法

软件测试方法在不同的书籍中可能有不同的分类,不同的叫法和不同的解释。比如,从测试人员角度看,煞治侄馐院妥远馐浴4釉创氲慕嵌瓤煞治ピ馐院凸δ懿馐浴4永砺鄱ㄒ謇捶郑煞治谙洳馐裕紫洳馐院突蚁洳馐浴U饫镆致鄣幕救砑馐苑椒ㄖ饕嘀赜谌砑δ艿暮谙洳馐苑椒ǎ汗δ懿馐裕‵unctionality Test),可接受性测试(Acceptance Test),用户界面(User interface或UI)测试,Ad hoc一般指‘探讨或开放’型测试,边界条件测试(Boundary Condition),性能测试(Performance Test),回归测试(Regression Test),强力测试(Stress Test),配置和安装测试(Configuration and Setup Test),兼容性测试(Comparability Test),国际化支持测试(International Sufficiency)以及本地化语言测试(Localization)。

功能测试:验证测试软件功能能否正常按照它的设计工作。看运行软件时的期望行为是否符合原设计。比如,测试Microsoft Excel插入->符号的功能包括测试能够在Microsoft Excel所选单元格中正确地插入符号并且显示正确符号?能否正确显示使用不同的字体的符号?

//注 下面的测试应该是 smoke test
可接受性测试:是在把测试的版本交付测试部门大范围测试以前进行的对最基本功能的简单测试。因为在把测试的版本交付测试部门大范围测试以前应该先验证该版本对于所测试的功能基本上比较稳定。必须满足一些最低要求。比如不会很容易程序就挂起或崩溃。如果一个新版本没通过可测试性的验证,就应该阻拦测试部门花时间在该测试版本上测试。同时还要找到造成该版本不稳定的主要缺陷并督促尽快加以修正。

用户界面测试:分析软件用户界面的设计是否合乎用户期望或要求。它常常包括菜单,对话框及对话框上所有按钮,文字,出错提示,帮助信息(Menu 和Help content)等方面的测试。比如,测试Microsoft Excel中插入符号功能所用的对话框的大小,所有按钮是否对齐,字符串字体大小,出错信息内容和字体大小,工具栏位置/图标等等。

‘探索或开放’型的测试:不是按部就班的按照一个又一个正式的测试用例来进行,也不局限于测试用例特定的步骤。这种测试是测试人员在理解该软件功能的基础上运用灵活多样的想象力和创造力去模拟用户的需求来使用该软件的多种功能。通常涉及很多的测试用例或者通过更复杂的步骤来使用该软件。
边界条件测试:是环绕边界值的测试。通常意味着测试软件各功能是否能正确处理最大值,最小值或者所设计软件能够处理的最长的字符串等等。

性能测试:通常验证软件的性能在正常环境和系统条件下重复使用是否还能满足性能指标。或者执行同样任务时新版本不比旧版本慢。一般还检查系统记忆容量在运行程序时会不会流失(memory leak)。比如,验证程序保存一个巨大的文件新版本不比旧版本慢。

回归测试:根据修复好了的缺陷再重新进行的测试。目的在于验证以前出现过但已经修复好的缺陷不再重新出现。一般指对某已知修正的缺陷再次围绕它原来出现时的步骤重新测试。通常确定所需的再测试的范围时是比较困难的,特别当临近产品发布日期时。因为为了修正某缺陷时必需更改源代码,因而就有可能影响这部分源代码所控制的功能。所以在验证修好的缺陷时不仅要服从缺陷原来出现时的步骤重新测试,而且还要测试有可能受影响的所有功能。因此应当鼓励对所有回归测试用例进行自动化。

强力测试:它通常验证软件的性能在各种极端的环境和系统条件下是否还能正常工作。或者说是验证软件的性能在各种极端环境和系统条件下的承受能力。比如,在最低的硬盘驱动器空间或系统记忆容量条件下,验证程序重复执行打开和保存一个巨大的文件1000次后也不会崩溃或死机。

集成与兼容性测试:验证该功能能够如预期的那样与其他程序或者构件协调工作。兼容性经常意味着新旧版本之间的协调,也包括测试的产品与其它产品的兼容使用。比如用同样产品的新版本时不影响与用旧版本用户之间保存文件,格式,和其他数据等操作。

装配/安装/配置测试:验证软件程序在不同厂家的硬件上,所支持的不同语言的新旧版本平台上,和不同方式安装的软件都能够如预期的那样正确运行。比如,把英文版的 Microsoft Office 2003安装在韩文版 的Windows Me 上,再验证所有功能都正常运行。

国际化支持测试:验证软件程序在不同国家或区域的平台上也能够如预期的那样运行,而且还可以按照原设计尊重和支持使用当地常用的日期,字体,文字表示,特殊格式等等。比如,用英文版的 Windows XP 和 Microsoft Word 能否展示阿拉伯字符串?用阿拉伯版的 Windows XP 和 阿拉伯版的Microsoft Word 能否展示阿拉伯字符串?又比如,日文版的Microsoft Excel对话框是否显示正确翻译的日语?一旦来说执行国际化支持测试的测试人员往往需要基本上了解这些国家或地区的语言要求和期望行为是什么。

本地化语言测试:要验证所有已计划要发布的不同语言版本软件如预期的那样被正确地翻译成当地语言。这类测试一般包括验证菜单,对话框,出错信息,帮助内容等所有用户界面上的文字都能够显示正确翻译好的当地文字。

软件测试的原则
应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭
测试用例应由测试输入数据和对应的预期输出结果这两部分组成
程序员应避免检查自己的程序
在设计测试用例时,应当包括合理的输入条件和不合理的输入条件

软件测试对象
软件测试并不等于程序测试。软件测试应贯穿于软件定义与开发的整个期间
需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应成为软件测试的对象

软件测试分类
白盒测试:知道被测软件如何(HOW)完成功能和完 成什么样的功能(WHAT),白盒测试一般由开发人员完成
黑盒测试:只知道WHAT下进行的测试,黑盒测试一般由测试人员进行
单元测试是一种白盒测试,目的是验证所设计的类是否符合需求
Junit是单元测试工具

测试框架定义
框架定义了一些条条框框,编写的测试代码必须遵循这些条条框框:继承某个类,实现某个接口
框架通俗一点就是我们所说的规范

软件测试基本概念总结 一、软件的定义 软件S = 程序P + 数据(库)DB + 文档D + 服务S 二、软件测试的定义 软件测试是使用人工和自动手段来运行或测试某个系统的过程,其目的在于检测被测软件系统是否满足规定的需求,或是能清楚被测系统的预期结果与实际结果之间的差别。 三、软件测试核心和本质 软件测试的根本目的是确保软件满足用户需求 软件测试的目的是要衡量软件产品是否符合预期 软件测试是... 阅读详情

相关推荐

软件测试方法和技术

Introduction 本篇整理了一些我在近期复习软件测试期末考试时所整理的一些笔记。 所用教科书:《软件测试方法和技术(第三版)》 – 朱少民 • 清华大学出版社 (一) 引论 1.为什么要开展软件测试活动 (1) 软件测试是保证软件质量的重要手段,所有软件都会存在或多或少的问题,错误需要测试来发现,同时还需要测试来评估错误密度。 (2) 软件测试是软件质量保证的关键步骤,越早发现错误代价越低。 2.什么是软件测试 软件测试是验证和有效性确认构成的整体。 3.软件测试和开发的关系 测试活动在开发之

PhoenixNest's Blog 2630

软件测试计划的编写以及测试用例设计

软件测试计划的编写以及测试用例设计

爱码小哥 1515

软件测试之软件测试方法

软件测试过程中,最主要的就是要掌握好软件测试的方法,掌握好了软件测试方法,有利于测试技能的大幅度提高。 软件测试方法 软件测试方法是指测试软件的方法。随着软件测试技术的不断发展,测试方法也越来越多样化,针对性更强;选择合适的软件测试方法可以让我们事半功倍。 一、根据是否要走查代码,分为白盒测试、灰盒测试、黑盒测试; 二、分为手工测试、自动化测试和性能测试: 手工...

hhl18的博客 9486

【质量】如何评估测试用例的有效性

一、定义 测试用例有两个比较关键的部分: 调用被测代码:例如RuleService.getLastRuleByClientId(ClientId) 进行结果Check:例如AssertEqual(OrderId,“ABCD1234”) 希望一组测试用例不仅能够“触发被测代码的各种分支”,还能够做好结果校验 当业务代码出现问题的时候,测试用例可以发现这个问题,认为这一组测试用例是有效的 当业务代码出现问题的时候,测试用例没能发现这个问题,认为这一组测试用例是无效的 对测试用例有效性的理论建模是: 测试

sysu_lluozh 3316

软件测试的基本概念

一、软件测试的基本概念软件测试的概念(什么是软件测试?软件测试是软件测试人员验证软件是否满足用户的需求(软件测试是满足与不满足用户需求的数据都需要测试)。什么是需求?满足用户期望(用户需求)和满足合同(软件需求)(文档、规则、标准等)的规定所需要的条件和权限软件需求是用户需求转化而来的,它是用户需求的细化,是用户需求的具体实现细节和规范。需求是软件测试的依据验证需求保证需求正确可实现(可操作)从需求中提炼出一个个的测试项。什么是测试用例(测什么、怎么测)

weixin_58510822的博客 995

软件测试方法和技术知识点简摘

〇、一点说明 不想说明什么,就这样。

李啥都不懂的博客 2227

2023 软件质量保证与测试期末考解答题知识点整理

仅供班级复习使用,无含金量

m0_50957668的博客 5159

BepInEx插件开发实战:用Visual Studio快速创建你的第一个Unity Mod(2024新版)

本文是2024年新版BepInEx插件开发实战指南,详细讲解如何使用Visual Studio快速创建你的第一个Unity Mod。内容涵盖专业开发环境搭建、插件生命周期解析、利用HarmonyX进行游戏代码注入、实现实时调试与热重载技巧,以及项目配置与打包发布全流程,助你从Mod使用者转变为创造者。

weixin_29002595的博客 339

5.1等价类 有效、无效

现有一个档案管理系统,容许用户通过输入年月对档案文件进行 检索,系统对查询条件年月的输入限定为1990年1月~2049年12月,并规定:日期由6位数字字符组成,前4位表示年,后2位表示月。优点:是考虑了单个输入域的各类情况, 避免了盲目或随机选取输入数据的不完整 性和覆盖的不稳定性。1、等价类,边界值,判定表,因果图,正交表,场景 法,状态迁移法。定义:指某个输入域的集合,在集合中各个输 入的条件都是等效的。无效等价类:对程序规格说明无意义的、不合 理的输入数据。手机号:(1)11位 (2)纯数字。

u011583645的博客 1379

ADS仿真设计平行定向耦合器学习笔记

ADS仿真设计平行定向耦合器

qq_36521926的博客 1万+

西门子S7-1200与汇川SV660P伺服速度模式实战:从接线到编程全流程

本文详细解析了西门子S7-1200 PLC与汇川SV660P伺服驱动器在速度模式下的集成实战。内容涵盖从硬件接线、伺服参数关键设置(如电子齿轮比)、博图软件组态到PLC编程的全流程,并提供了故障排查与性能优化指南,帮助工程师快速实现精准、稳定的运动控制。

weixin_29248313的博客 482

【软件测试】软件测试的基本概念和开发模型

在进行软件测试的学习之前,我们要了解软件测试一些基本概念. 这些基本概念将帮助我们更加明确工作的目标以及软件测试到底要做什么.本文主要讲解了软件测试的三个基本概念,开发模型和测试模型的特点,缺点和适用场景. 概念较多,看起来也很枯燥乏味,但是掌握基本概念才能更好地学习软件测试.希望这篇文章能帮到你!《软件测试》在不断更新中,欢迎订阅!“愿与君共勉,携手共进!

云泽野の编程日记 1066

SAP-HR 模块 PPOSE 的详细信息标签页增强

步骤1:T-CODE : SE11 创建一个名为 HRI9106 的结构 命名:HRI + 91 + 两位数字。人事管理 - 组织管理 - 集成新信息类型 - 将信息类型添加为明细范围中的标签页。步骤6:SE51 查看 7000屏幕,修改屏幕属性 让其更美观。步骤3:T-CODE : SM30维护 T777I 表。步骤5:PPCI 新建 7000屏幕用于显示。标签页 IT 开头 + 信息类型 9106。步骤2:T-CODE : PPCI。步骤4:T-CODE : SPRO。

常回来看看呀!! 1627

1.软件测试-----软件测试的基本概念

2)测试环境分为硬件环境和软件环境,如果是web项目,需要描述浏览器版本,客户机操作系统等,如果是app项目,需要描述机型、分辨率、操作系统版本等。瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。对本次迭代的测试情况进行分析和总结,写了多少测试用例,执行了多少,发现多少bug,剩余bug的解决方案,测试的覆盖率。软件测试和软件开发都是软件生命周期的重要组成部分,测试和开发有着一对一的关系,测试的工作是对开发成果的检验。.....

qq_46235384的博客 7353

化工设计软件:PDMS二次开发_(7).数据导入与导出技术

在某些复杂场景下,PDMS提供的标准API接口可能无法满足需求。此时,可以通过自定义API接口来实现特定的数据导入与导出功能。自定义设备导入API接口可以处理更复杂的设备数据格式。# 导入必要的库import pdms_api # 假设有一个PDMS API库# 定义自定义设备数据# 自定义设备导入API接口# 调用自定义设备导入API接口# 输出导入成功的消息print("自定义设备数据导入成功")在PDMS二次开发中,数据的导入与导出是关键的技术环节。

kkchenjj的博客 1484

【OpenClaw从入门到精通】第60篇:多智能体协同实战——用“龙虾”搭建你的数字员工团队(2026企业版)

2026年AI Agent企业落地的核心趋势,正从“单Agent单兵作战”转向“多智能体协同组网”。本文以全球开发者先锋大会“百虾大战”真实案例为蓝本,深度拆解OpenClaw多智能体协同的技术内核——三层解耦架构(模型层-技能层-网关层),系统搭建包含项目经理、架构师、执行者、质量把关者的4大核心Agent团队。通过三种主流协作架构对比、全链路配置代码实操、故障自愈实战演练,结合电商新品上架虚拟场景全流程演示,解决企业多Agent部署中的权限隔离、任务协同、运维自治三大核心痛点。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 767
上一篇: 软件测试方法 [转]
下一篇: 论单元测试 [转]
shadowDLL
博客等级 码龄23年 2粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值