软件测试

软件测试方法?

软件测试方法
关注者
29
被浏览
61,461

9 个回答

软件测试方法的划分,可以从不同的角度来分析一波。

1.按照测试技术划分

黑盒测试

通过软件的外部表现来发现其缺陷和错误。黑盒测试法把测试对象看成一个黑盒子,完全不考虑程序内部结构和处理过程。黑盒测试是在程序界面处进行测试,它只是检查样序是否按照需求规格说明书的规定正常实现

白盒测试

通过对程序内部结构的分析、检测来寻找问题。白盒测试可以把程序看成装在一个透明的白盒子里,也就是清楚了解程序结构和处理过程,检查是否所有的结构及路径都是正确的,检查软件内部动作是否按照设计说明的规定正常进行。白盒测试又称结构测试

灰盒测试

介于白盒测试与黑盒测试之间的测试。灰盒测试关注输出对于输入的正确性;同时也关注内部表现,但这种关注不像白盒测试那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态。

灰盒测试结合了白盒测试和黑盒测试的要素。它考虑了用户端、特定的系统知识和操作环境。它在系统组件的协同性环境中评价应用软件的设计

2.按照代码运行划分

静态测试

指不实际运行被测对象,而只是静态地检查程序代码、界面或文档中可能存在错误的过程

代码测试:主要测试代码是否符合相应的标准和规范

界面测试:主要测试软件的实际界面与需求中的说明是否相符

文档测试:主要测试用户手册和需求说明是否真正符合用户的实际需求

动态测试

指实际运行被测对象,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。所以我们判断一个测试属于动态测试还是静态测试,唯一的标准就是看是否运行程序

3.按软件特性分类

功能测试

是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求

逻辑功能测试

界面测试

易用性测试

安装/卸载测试

兼容性测试等

性能测试

功能的另一个指标,主要关注软件中的某一功能在指定的时间、空间条件下,是否使用正常

软件的性能包括很多方面,主要有时间性能和空间性能两种

4. 其它类别

回归测试

是指对软件的新版本测试时,重复执行之前某一个重要版本的所有测试用例

目的:

1.验证之前版本产生的所有缺陷已全部被修复;

2.确认修复这些缺陷没有引发新的缺陷

冒烟测试

是指在对一个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。所以也叫可测性测试

随机测试

也称为随意性测试,是指测试人员基于经验和直觉的探索性测试,其目的是模拟用户的真实操作,并发现一些边缘性的错误

如果知友对这部分内容感兴趣,可以持续关注小编的账号,除此之外,小编还录制了不少这方面的技术视频,知友如果有需要,可以私聊本小编获取哦!

发布于 2020-07-08 23:33
1、按是否查看程序内部结构分为:
(1)黑盒测试(black-box testing):只关心输入和输出的结果
(2)白盒测试(white-box testing):去研究里面的源代码和程序结构
2、按是否运行程序分为:
(1)静态测试(static testing):是指不实际运行被测软件,而只是静态地检查程序代码、界面或文档可能存在的错误的过程。
静态测试包括:
对于代码测试,主要是测试代码是否符合相应的标准和规范。
对于界面测试,主要测试软件的实际界面与需求中的说明是否相符。
对于文档测试,主要测试用户手册和需求说明是否真正符合用户的实际需求。
(5)动态测试(dynamic testing),是指实际运行被测程序,输入相应的测试数据,检查输出结果和预期结果是否相符的过程
3、按阶段划分:
(1)单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。
桩模块(stud)是指模拟被测模块所调用的模块,驱动模块(driver)是指模拟被测模块的上级模块,驱动模块用来接收测试数据,启动被测模块并输出结果。
(2)集成测试(integration testing),是单元测试的下一阶段,是指将通过测试的单元模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部门。
集成测试就是用来检查各个单元模块结合到一起能否协同配合,正常运行。
(3)系统测试(system testing),指的是将整个软件系统看做一个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行测试。
系统测试的主要依据是《系统需求规格说明书》文档。
(4)验收测试(acceptance testing),指的是在系统测试的后期,以用户测试为主,或有测试人员等质量保障人员共同参与的测试,它也是软件正式交给用户使用的最后一道工序。
验收测试又分为a测试和beta测试,其中a测试指的是由用户、 测试人员、开发人员等共同参与的内部测试,而beta测试指的是内测后的公测,即完全交给最终用户测试。
4、黑盒测试分为功能测试和性能测试:
1)功能测试(function testing),是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求。
包括逻辑功能测试(logic function testing)
界面测试(UI testing)UI=User Interface
易用性测试(usability testing):是指从软件使用的合理性和方便性等角度对软件系统进行检查,来发现软件中不方便用户使用的地方。
兼容性测试(compatibility testing):包括硬件兼容性测试和软件兼容性测试
2)性能测试(performance testing)
软件的性能主要有时间性能和空间性能两种
时间性能:主要指软件的一个具体事务的响应时间(respond time)。
空间性能:主要指软件运行时所消耗的系统资源。
软件性能测试分为:
一般性能测试:指的是让被测系统在正常的软硬件环境下运行,不向其施加任何压力的性能测试。
稳定性测试也叫可靠性测试(reliability testing):是指连续运行被测系统检查系统运行时的稳定程度。
负载测试(load testing):是指让被测系统在其能忍受的压力的极限范围之内连续运行,来测试系统的稳定性。
压力测试(stress testing):是指持续不断的给被测系统增加压力,直到将被测系统压垮为止,用来测试系统所能承受的最大压力。(Validate the system or software can allowed the biggest stress.)
5、其他测试类型:
回归测试(regression testing)是指对软件的新的版本测试时,重复执行上一个版本测试时的用例。(When a new build or release is deployed, repeat all the test cases which has executed in the last build or release.)
冒烟测试(smoke testing),是指在对一个新版本进行大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。(validate the major function is deployed or not in software of system when a new build or release is implement.)
随机测试(random testing),是指测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。(means or all the test data is random, to validate the some edge bugs.)
发布于 2016-08-23 20:11
软件测试方法有哪些
911 播放 · 1 赞同
编辑于 2021-09-20 09:34· 79 次播放

软件测试的方法是按照软件测试的类型来的,根据测试类型的划分都有对应的方法,包括自动化测试和人工测试。

1.按开发阶段分:单元测试、集成测试、系统测试、验收测试
2.按是否运行划分:静态测试、动态测试
3.按是否查看代码划分:白盒测试、黑盒测试、灰盒测试
黑盒测试又分功能测试(功能测试、界面测试、冒烟测试、回归测试、业务逻辑测试、兼容性测试、易用性测试)和性能测试(性能测试、负载测试、压力测试、容量测试、并发测试、配置测试、可靠性测试)
4.按是否手工执行分:手工测试、自动化测试
5.其他类型测试:随机测试、冒烟测试、安全测试、探索性测试、回归测试、Alpha测试(内测)、Beta测试(公测)等

下面介绍一些常用的软件测试方法:

功能测试

大致流程是:测试用例设计、执行测试过程、测试总结和测试文档的撰写。其实大部分的软件测试都是按这个流程进行的,功能测试是传统的手工测试,需要测试人员一步一步操作下去,检验功能是否满足预期。也有半自动化测试工具testcafe可以录制操作,做测试用例的记录与修改。

性能测试

属于必须借助工具才能完成的测试,就好比你无法确确实实的去找五百万个用户来验证你系统的负载能力,这里面包含了压力测试、负载测试、冒烟测试等等,一般借助virtualize来服务虚拟化,借助SOA test和loadtest来验证接口等。

白盒测试(动态测试、静态测试、单元测试等)

这里面属于借助自动化测试工具提高效率和减少人工测试成本的操作,比如全自动化的白盒测试工具parasoft c++test/jtest/dottest等都是可以一键完成静态分析的,还有一键生成测试用例,执行测试用例,提供覆盖率报告等等,是目前比较常规的做法,特别是需要进行一些认证的企业,需要大量的行业规则集去匹配。

发布于 2020-08-13 11:22

引子

在软件测试这个行当中走久了,总有一些不经意(像是撞大运)的大bug惊到你,有些是你亲历,有些是他历的,有没有?

故事1,是我亲身经历的。

【故事1:客户被吓跑了】

一次,一个客服工程师电话我说,客户在实验室工作时,一不小心把有一点重量的笔记本放在了我们家研发的医用仪器键盘上,突然仪器的显示屏幕黑掉了,接着出现操作系统命令行窗口。值班的客户吓坏了,马上跑出实验室求助,以为仪器被她怎么弄坏了。

后来我们分析,原因是这样的:有点重量的笔记本压在键盘上,正在运行的软件正好处于某个响应状态,笔记本压力下的键盘快速连续发出一序列的按键操作,且正好触发了Ctrl+C,而此复合键是某开发人员为了便于特殊情况下定位问题,而开的后门。

故事2,这些天看《模糊测试-强制性安全漏洞发掘》中提到的,一起分享给大家。

【故事2:3岁小朋友神奇解锁】

“我的一个朋友有个3岁的儿子,它就是用这么简单的手段发现了Mac SO X 操作系统的屏幕界面锁定功能中的一个漏洞。我的朋友锁定了屏幕界面然后到厨房找酒喝。当他回来的时候,他的儿子已经设法成功地解除了锁定,并且打开了浏览器,所用的方法正是随意敲打键盘。”

其实,还有很多类似上面故事中的场景,让我们觉得难于事先分析到,或预测到的大bug,通常觉得是靠碰运气才能遇到的bug。它们有个共同特点:难于复现,我们通常又叫这类bug为偶发bug。而当我们深入分析原因,找到明确的重现路径后,又会发现这些“运气bug”,有些条件组合的确苛刻,有些确也未必,是现阶段测试方法局限而造成的盲区。

模糊测试,正好是挖掘此类bug,非常有用的方法。书中的一些精彩描述,会让你很有感触,有些甚至你可能在构造异常数据时,就在使用模糊测试的方法了,只是可能不自知此手段的细节。下面是书中的一些精彩语录。

【精彩语录1】

无论如何都不要忘记,对源代码来说,你看到的东西并不一定是实际执行的东西。软件构建过程在从源代码到汇编代码的转换中可能会发生很大的改变。因为这个原因和其它的原因,不能说一种测试方法就一定比另一种测试方法更好。它们仅仅是不同的方法,通常会揭示不同类型的漏洞。为了达到充分覆盖的目的,有必要结合多种测试方法。

【精彩语录2】

如果你是一位模糊测试的新手,那么可以将模糊测试类比为如何闯进一幢房子。假设你在当前的职业生涯中遭受了挫折,进而转入从事违法犯罪活动。为了破门进入某人的家,假设采用纯白盒的方法,那么在实施破门之前应该能够得到对所有关于这个家的充分信息。这些信息可能要包括房屋设计图、各种锁的制造商列表、房屋建筑材料的详情,等等。尽管这种方法有独一无二的优点,但是也并非万无一失而没有短处。

在这种方法下,执行破门的过程中,你要做的不是在实际执行时去检查房屋的设计而是要对房屋的设计执行静态分析。让我们打个比方,例如,事先研究表明起居室的侧面窗户代表了一个弱点,可以砸破这面窗户然后破门而入,如果是这样的话,那你肯定不希望到时候有一个拿着鸟枪的愤怒房主站在里面正在等着你。另一方面,如果采用一种纯的黑盒测试方法来完成破门的话,那么应该在黑夜的掩盖下逐步靠近这个房子,安静地尝试所有的门和窗户是否有漏洞,向房子内窥视以决定哪里可能是最好的突破口。

最后,如果选择采用模糊测试来完成突破的话,便可以不必研究设计图更不用人工测试各种锁。要做的就是让找枪和破门而入的过程自动化--这就是强制性的漏洞发掘!

一本老外写的书,翻译后上市也有些年头了,但在互联网未全面普及之时,并未得到我们的重视。而这几年,关于信息安全,网络安全,与软件安全漏洞安全性相关问题的重视度,已深入到全国上下各领域。书中提到的方法、技术、工具依然值得我们学习、借鉴。

电子书下载:公众号菜单-版本墙-资源下载

发布于 2023-06-23 10:11

1.白盒测试

白盒测试也称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试,它是按照程序内部的结构测试程序,简单来说就是代码层面的测试。这一方法是指测试人员了解程序内部逻辑结构,此时的测试对象就像一个打开的盒子,测试人员依据程序内部逻辑结构相关信息对程序所有逻辑路径进行测试,确认实际的状态是否与预期一致。白盒测试在路径覆盖上一定程度是可以做到穷尽测试的。

常见的白盒测试方法分为:静态测试方法和动态测试方法。静态测试不要求在计算机上实际执行所测程序,主要是以一些人工的模拟技术对软件进行分析和测试;而动态测试是通过输入一组预先按照一定测试准则构造的实例数据来动态运行程序,从而达到发现程序错误的过程,它基本上是在计算机上实际执行了所测程序。

实际工作中的白盒测试方法种类更多:

1)代码检查法

代码检查包括桌面检查、代码审查和走查等,主要检查代码和设计的一致性,代码对标准的遵循、可读性,代码逻辑表达的准确性,代码结构的合理性等方面。

2)静态结构分析法

测试者通过使用测试工具分析程序源代码的系统结构、数据结构、数据接口、内部控制逻辑等内部结构,生成函数调用关系图、模块控制流图、内部文件调用关系图、子程序表、宏和函数参数表等各类图形图表,可以清晰地标识整个软件系统的组成结构,然后通过分析这些图表。检查软件有没有存在缺陷或错误。

3)静态质量度量法

依据ISO/IEC9126质量模型作为基础,通过软件功能的六大特性(27个子特性)构造质量度量模型,用于评估软件的每个方面。

4)逻辑覆盖法

通过对程序内部逻辑结构的遍历实现程序的覆盖,逻辑覆盖标准可分为:语句覆盖(SC)、判定覆盖(DC)、条件覆盖(CC)、条件判定组合覆盖(CDC)、多条件覆盖(MCC)和修正判定条件覆盖(MCDC)。

5)基本路径覆盖法

在程序控制流图的基础上,通过分析控制结构的环路复杂性,导出基本执行路径集合,然后据此设计测试用例。

6)域测试

域测试是一种基于程序结构的测试。域测试的“域”是指程序的输入空间,任何一个被测程序都有一个输入空间,测试的理想结果就是检验输入空间中的每一个输入元素是否都产生正确的结果。域测试正是在分析输入域的基础上,选择适当的测试点以后进行测试的。

7)符号测试

符号测试的思想是允许程序的输入不仅仅是具体的数值数据,而且包含符号值,这一方法因此得名。

8)路径覆盖

着眼于路径分析的测试称为路径测试,完成路径测试的理想情况是路径覆盖。

9)程序变异

它是一种错误驱动测试,即该方法是针对某类特定错误的。

2.黑盒测试

黑盒测试也称功能测试,通过测试来检验每个功能是否都能够正常使用。测试初级人员在入职测试岗位时基本上从事的是黑盒测试,就是常说的“点点点测试”。因为测试人员不了解程序的内部结构和内部程序,因此只检查程序功能是否按照需求规格说明书的规定进行正常使用,通过模拟软件产品的最终用户使用该软件进行检查软件产品是否达到了用户的需求。黑盒测试只有采用穷举输入测试才能检查出程序中的所有错误,但是穷尽测试是不可能的,后期测试成本太高,因此需要通过测试方法进行用例量化测试。

1)等价类划分法

把程序的输入域划分为若干部分(常划分为有效部分和无效部分,也就是常说的有效等价类和无效等价类),然后从每个部分选取少数代表性数据作为测试用例,每一类的代表性数据在测试中的作用等价于这一类中的其他值。

例如测试一组输入(0,10],其中10这个数据可以作为有效值进行测试,等价于(0,10]区间内的任意输入;100可以作为无效值进行测试,等价于(0,10]区间外的任意输入。

2)边界值分析法

边界值是输入在输入边界上的取值,该方法是通过选择等价类边界的测试用例。常用于测试参数的边界值,例如测试一组输入(0,10],其中的0和10两个数据就可以作为边界值进行测试。

3)错误推测法推测

该方法更适用于有经验的测试人员,它主要是基于经验和直觉推测程序中所有可能存在的错误,从而有针对性的设计测试用例。

例如某输入条件只接受正整数,那我们就可以选取负数或小数进行验证。

4)因果图法

从用自然语言书写的程序规格说明的描述中找出因(输入条件)和果(输出或程序状态的改变)关系,通过图解的方法表示输入的各种组合关系写出判定表,从而设计相应的测试用例。

常见的因果关系有:恒等(==)、非(~)、与(V)、或(^),运用这些因果关系作好图即可得出因果关系,设计测试用例。

5)判定表驱动法

通常由条件桩(列出所有条件)、动作桩(列出所有可能的操作)、条件项(列出所有条件的取值组合)、动作项(列出在条件项的各种取值情况下应该采取的动作)四部分组成的表格。

6)正交试验设计法

使用已经造好了的正交表格来安排实验并进行数据分析的一种方法,目的是用最少的测试用例达到最高的测试覆盖率.

7)功能图法

一个程序的功能说明通常由动态说明(描述输入数据的次序或转移的次序)和静态说明(输入与输出之间的对应关系)组成,用功能图形象地表示程序的功能说明,并机械地生成功能图的测试用例。

8)场景分析法

当前的软件几乎都是由事件触发来控制流程的,事件触发时的场景便形成了场景,通过描述测试场景的方法设计测试用例即为场景分析法。

3.灰盒测试

生活中有很多的问题都不是非黑即白的,测试也一样存在自己的灰盒测试。通过字面就知道灰盒测试是介于白盒测试和黑盒测试之间的测试。工作中,它更多用于集成测试阶段,不仅关注功能输入、输出的正确性,同时也注重程序内部的运行情况。所以灰盒测试相较于黑盒测试更关注程序的内部逻辑,同时不像白盒测试那样对代码测试的详细、完整,是测试者在了解系统组件之间的相互作用,但是缺乏对内部程序功能和运作的详细了解时进行测试时的推荐方法。

发布于 2022-10-19 18:51

什么是功能测试

功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。

功能测试也称为行为测试,根据产品特性、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。本地化软件的功能测试,用于验证应用程序或网站对目标用户能正确工作。使用适当的平台、浏览器和测试脚本,以保证目标用户的体验将足够好,就像应用程序是专门为该市场开发的一样。功能测试是为了确保程序以期望的方式运行而按功能要求对软件进行的测试,通过对一个系统的所有的特性和功能都进行测试确保符合需求和规范。

功能测试也叫黑盒测试或数据驱动测试,只需考虑需要测试的各个功能,不需要考虑整个软件的内部结构及代码。一般从软件产品的界面、架构出发,按照需求编写出来的测试用例,输入数据在预期结果和实际结果之间进行评测,进而提出更加使产品达到用户使用的要求。

功能测试的方法

功能测试也叫黑盒测试,相当于把整个测试对象看作一个黑匣子,我们看不到黑匣子的内部结构和运行方式,但是却可以通过外部表现来对他进行功能方面的测试,这就是功能测试。

黑盒测试与之对应的有白盒测试,白盒测试主要是针对软件内部的代码逻辑进行测试,二者相辅相成,都是软件测试过程中的不同方法。

黑盒测试试图发现以下类型的错误:

(1)功能设计上的问题或者遗漏

(2)界面出现错误

(3)数据结构或外部数据库访问错误

(4)性能出现错误

(5)初始化和终止错误

黑盒测试设计测试用例的方法有:等价类划分法、边界值法、判定表法、因果图法、错误推断法、正交实验设计法。

一、等价类划分法

等价类划分法解决了不能穷举测试数据的问题,只要数据值是明确的,就可以使用等价类划分法。

等价类分为有效等价类和无效等价类

有效等价类无效等价类
输入的正确且合理的数据以此验证该功能是否能够正确正常的运行,验证软件设计是否符合我们规格说明中的要求通过输入对程序规格说明中不合理、不正确、无意义的数据来验证在异常输入数据的情况下程序是否也会出现异常

若输入条件规定了取值范围或者值的个数,以ATM机取款为例

取款条件
100<=单次取款额度<=10000

那么根据取款条件,我们就可以划分有效等价类和无效等价类

有效等价类无效等价类
取款金额:500取款金额:50、11000

这里有效等价类就1个、无效等价类有2个

若输入值是布尔类型,那么可以设置一真一假的有效等价类和无效等价类

若输入值是规定了必须要遵循的原则,可划分为一个有效等价类(符合规则)和若干个无效等价类,以保存联系人手机号为例

有效等价类无效等价类
11位数字号码输入字母
输入特殊字符
输入10位
输入12位

若输入值规定了符合好几个原则,则可划分为多个有效等价类和若干个无效等价类,以qq密码为例

有效等价类无效等价类
输入数字输入单引号或双引号
输入字母输入空格
输入特殊符号输入汉字
...

若规定了输入数据的一组值(假定n个),且程序对不同输入值做不同处理,则可划分为n个有效等价类(每个允许的输入值为一个有效等价类)和一个无效等价类(所有不允许的输入值的集合),以学历选择为例

有效等价类无效等价类
专科小学 初中 高中 职高
本科
硕士
博士

二、边界值法

边界值法是对等价类划分法的一个补充,边界值一般都是去等价类的边缘进行查找。一般大量的错误会出现在输入输出的边界上,因此使用各种边界值去设计测试用例能找出更多的BUG

边界值点分为上点、内点和离点

上点内点离点
区间的端点,如0<x<5或0<=x<5,那么上点都是0和5上点之间的任意一点最靠近上点的点,开内闭外,如0<X<5,那么离点就是1和4,如果0<=x<=5那么离点就是-1和6,如果0<x<=5,那么离点就是1和6

三、判定表法

判定表法又称决策表,他是以表格的形式,在处理比较复杂的问题时,统计多条件下的各种情况出现的可能性,然后全部列举下来,利用判定表法能够写出更全面的测试用例

适用范围:相比于等价类划分法和边界值法,他们针对的是单个条件在输入输出时的取值问题,而判定表法更多的是考虑到各种条件的相互组合和输入输出的相互制约当中。

判定表的组成:

条件桩:列出问题的所有条件,列出条件的次序无关紧要

动作桩:列出问题中可能采取的操作,操作的排列顺序没有约束

条件项:列出条件对应的取值,所有可能情况下的真假值

动作项:列出条件项的各种取值情况下应该采取的动作结果

四、因果图法

因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,她适用于检查程序输入条件的各种组合情况,适合于描述多种输入条件的组合、相应产生多个动作的方法。


因果图的四个好处:

(1)考虑多个输入之间的相互组合、相互制约关系。

(2)指导测试用例的选择。能够指出需求规格说明书描述中存在的问题。

(3)能够帮助测试人员按照一定的步骤,高效率地开发测试用例。

(4)因果图法是将自然语言规格说明转化成形式语言规格说明的一种严格的方法,可以指出规格说明书存在的不完整性和二义性。


1、因果图的基本关系------因果符号(恒等、非、或、与)---------因果关系


(1)

恒等:条件c1满足要求时,一定会输出结果e

若c1为1,则e1也为1,否则e1为0。

(2)

非(-):条件c1满足要求时,一定不会输出结果e

若c1为1,则e1也为0,否则e1为1。

(3)

或(^):条件c1、c2、c3任何一项满足要求时,就会输出结果e

若c1或c2或c3为1,则e1也为1,否则e1为0。

(4)

与:条件c1、c2、c3同时满足要求时,才会输出结果e

若c1和c2和c3都是1,则e1也为1,否则e1为0。

2、因果图的基本关系------原因符号( 异、或、唯一、要求)--------原因与原因之间的关系


(1)

异(E约束,Exclusive):原因a、b中只能有一个为真(只有2个条件)

a和b中至多有一个可能为1,即a和b不能同时为1。(不可能同时为1,但可以同时为0)

(2)

或(I约束,Inclusive):原因a、b中至少有一个为真(a为真,b也可以为真)

a和b中至少有一个必须是1,即a和b不能同时为0。(可以同时为1)

(3)

唯一(O约束,One and Only):在多组判定条件中,有且只有一个为真(多个条件)

a和b中必须有一个是1,且有且仅有1个为0。(有a无b,有b无a)

(4)

要求(R约束,Request):原因a满足条件时,原因b一定满足条件

a是1时,b必须是1,即不可能a是1时b是0。

五、场景设计法

现在的软件几乎都是用事件触发控制流程的。测试时,可以生动地描绘出时间触发时的情景,有利于设计测试用例,同时使测试用例更容易理解和执行。

场景业务分为基本流、备选流和异常流

基本流:基本流表示业务流程输入都正确,能达到业务目标

(插卡—>输入正确密码—>输入金额—>取款—>取卡)

备选流:备选流表示通过业务流程时输入错误(或者操作错误)导致流程存在反复,但是经过纠正过后任然能达到目的的流程

(插卡—>输入错误密码—>输入正确密码—>输入金额—>取款—>取卡)

异常流:异常流表示通过业务流程时输入错误(或者操作错误)产生异常终止的流程

(插卡—>输入3次错误密码—>吞卡)


基本流:只有一种情形,中间的所有业务都是正确的,最后达到的结果也是正确的,这个场景就是基线

备选流:

1、业务流程开始—>业务流程反复—>业务流程介绍

2、业务流程开始—>业务流程反复—>业务流程中断—>未结束

异常流:

业务流程开始—>业务流程中断—>未结束(在这种情况下业务流程还没有走完)

六、错误推断法

凭着直觉和经验来设计测试用例,它是根据之前项目相关的bug数据总结来的

第三方软件测试

如果一个公司没有专业的软件测试人员或者需要CNAS或CMA认证的软件测试报告,就可以选择第三方软件测试机构。选择第三方软件测试机构首先要考虑的是公司的资质问题,正规的软件测试机构必须要有CMA、CNAS证书,其次要拥有强大的软件测试团队,最后要有专业的软件测试环境。这里推荐成都精正检测技术有限公司,拥有CMA、CNAS证书,软硬件检测环境达标,可出具公正权威的软件测试报告。

发布于 2023-06-29 14:46

每一个接触测试的人都知道,要做好测试,一定得掌握好测试方法;

学会了测试方法,才能发现更多的bug。

测试过程中常用的测试方法有很多,有黑盒白盒测试,还有自动化测试等,如下图


现简单谈一下黑盒测试:

黑盒测试是依据已知的外在规格,检验产品的规格和预期是否一致的测试方法。黑盒测试又可以被称为基于规格的测试。

黑盒测试把被测对象看成一个黑盒,只考虑其整体特性,不考虑其内部具体实现。黑盒测试针对的被测对象可以是一个系统、一个子系统、一个模块、一个子模块、一个函数等。

所谓的功能测试是黑盒测试常见的一种测试类型。

发布于 2022-09-04 17:54

1、软件测试策略概述

软件测试策略是软件工程过程的一个软件测试的模板,也就是把特定的测试用例方法放置进去的一系列步骤:

PS:这里分享一套软件测试的自学教程合集。这份资料中包含了我们2022年最新录制的《软件测试零基础到自动化》的全套教程视频。测试猿出品,必属精品。全套内容已经打包到网盘,内容总量接近300个G。
  • ☑ 215集-零基础到精通全套视频课程
  • ☑ [PPT+代码]-完整配套的教学课件
  • ☑ 18套-测试实战项目源码
  • ☑ 37套-测试工具软件包
  • ☑ 268道-测试猿毕业学员真实面试题
  • ☑ 500个-面试简历模板(信息完整)

  • 软件测试包含的特征:
1)测试从模块层开始,然后扩大延伸到整个基于计算机的系统集合中;
2)不同的测试技术适用于不同的时间点;
3)测试由开发人员及独立的测试组来管理的;
4)测试和调试时不同的活动,但是调试必须能够适应任何测试策略;
  • 软件测试充分性准则:
1)对任何软件都存在有限的充分测试集合;
2)若果一个软件系统在一个测试数据集合上的测试是充分的,那么再多测试一些数据也应该是充分的;
3)即使对软件所有成分都进行了充分测试,也并不表名整个软件的测试已经充分;
4)即使对软件系统整体的测试是充分的,也并不意味着软件系统中各个成分都已经充分的得到了测试;
5)软件测试的充分性与软件的需求和软件的实现都相关;
6)软件越复杂,需要的测试数据就越多;
7)测试的越多,进一步测试所能得到的充分性增长就越少;

2、软件测试的分类

  • 软件开发阶段划分:
1)单元测试:
指对软件中的最小可测试单元进行检查和验证,单元测试需要从软件的内部结构出发设计测试用例。多个模块可以独立地进行测试。
2)集成测试:
组装测试/联合测试:将所有模块按照设计要求组装成子系统或者系统进行集成测试。
3)系统测试:
将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试 和确认测试,系统测试是针对整个产品的测试。
4)验收测试:
交付测试:确保软件准备就绪。
  • 测试技术划分:
1)白盒测试:
结构性测试/透明盒测试/逻辑驱动测试/基于代码的测试:
2)黑盒测试:
功能测试:通过测试每个功能是否都能正常使用。(输入数据/输出数据)
3)灰盒测试:
介于白盒测试和黑盒测试之间的一种测试方法:不仅关注输出、输入的正确性,同时也关注程序内部的情况。
  • 被测试软件是否实际运行划分:
1)静态测试
指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。
  • 对于代码测试:主要测试代码是否符合相应的标准和规范;
  • 对于界面测试:主要测试软件的实际界面与需求中的说明是否相符;
  • 对于文档测试:主要测试用户和需求说明是否符合用户的实际需求;
2)动态方法
指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性、健壮性等性能。
  • 测试实施组织划分:
1)开发方测试
验证测试/α测试
2)用户测试
β测试
3)第三方测试
  • 测试类型划分:
1)功能测试:
主要针对产品需求说明书对软件进行测试,验证软件功能是否符合需求,包括对原定功能的检验以及测试软件是否存在冗余功能、遗漏功能。
2)界面测试:
主要对系统的界面进行测试,测试用户界面是否友好,软件是否方便易用、系统设计是否合理、界面位置是否正确等问题。
3)性能测试:
主要测试系统的性能是否满足用户需求,即在特定的运行条件下验证系统的能力状态。性能测试主要是通过自动化的测试工具模拟正常、峰值、异常负载状况、对系统的各项性能指标进行测试。
4)强度测试:
迫使系统在异常的资源配置下运行。目的是找出因资源不足或者资源争用而导致的错误。
5)压力测试:
主要是在超负荷环境中,检验系统是否能够正常运行。
6)安全测试:
测试系统防止非法入侵的能力。
7)兼容性测试:
测试软件产品在不同的平台、不同的工具软件或者相同工具软件不同的版本下的兼容性。
8)安装测试:
主要校验软件是否可以正确安装、安装文件的各项设置是否有效、安装后是否影响整个计算机系统、卸载软件时是否可以卸载干净、卸载软件之后是否影响整个计算机系统。
9)文档测试:
主要检查内部或外部文档的清晰性和准确性。
发布于 2022-05-24 16:18
( 为什么?)