{eval=Array;=+count(Array);}
软件测试常见的有黑盒测试和白盒测试两种。
黑盒测试方法群:等价类划分、边界值、因果图、基路径法、专家测试法、smoking、场景测试等
白盒测试方法群:同行评审、需求审查、代码审查、接口测试(调用测试和返回测试,需要结合等价类和因果图方法)等。
希望我的答案能帮助你,有任何软件测试方面的问题都可以来私信我,欢迎交流~
软件测试产生发展已达40多年,经过长期地实践,总结归纳出了一些基本的测试原理与测试特性准则,并被业界普遍接受和遵循,对测试的设计、执行和 管理均具有工程的指导意义。原理 1:测试可以证明缺陷存在,但不能证明缺陷不存在测试可以证明软件系统(产品)是失败的,即说明软件中有缺陷。但测试不 能证明软件中没有缺陷。适当的软件测试可以减少测试对象中的隐藏缺陷。即使 在测试中没有发现失效,也不能证明其没有缺陷。原理 2:穷尽测试是不可能的测试若考虑所有可能的输入值及其组合,并结合所有的前置条件进行穷尽测 试是不可能的。实际测试过程中,对软件测试基本上是抽样测试。因此,必须根 据风险和优先级,控制测试工作量。原理 3:测试活动应尽早开始在软件生命周期中,测试活动应尽早实施,,并聚焦于定义的目标上,这样 可以尽早的发现缺陷。原理 4:缺陷集群性在通常情况下,缺陷并不是平均而是集群分布的,大多数的缺陷只存在于测 试对象的极小部分中。因此,如在一个地方发现了较多缺陷,通常在附近会有更 多的缺陷,这就是所谓的缺陷集群性,也就经常所说的‘8/2 现象’,80%的缺 陷集中在 20%的程序模块中。因此,在测试中,应机动灵活地应用这个原理。原理 5:杀虫剂悖论若同样的测试用例被一再重复执行,则会减少测试的有效性。先前没有发现的缺陷反复使用同样的测试用例也不会被重新发现。因此,为了维护测试的有效 性,战胜这种“抗药性”,应对测试用例进行修正或更新。这样软件中未被测试 过的部分或先前没有被使用过的输入组合会被重新执行,从而发现更多的缺陷。原理 6:测试依赖于测试内容测试必须与应用系统的运行环境及使用中固有的风险相适应。因此,没有两个系统可以完全相同的方式进行测试。对于每个软件系统,测试出口准则等应依据其使用的环境分别量体定制。例如,对安全起关键作用的系统与一个电商应用系统所要求的测试是不尽相同的。原理 7:没有失效就是有用的系统是一种谬论测试找到了导致失效的 Bug、并修正了缺陷,并不能保证整个系统达到了用 户的预期要求和需要。因此说,没有发现失效就是有用的系统是一种谬论。
1、从是否关心内部结构来看
(1)白盒测试:又称为结构测试或逻辑驱动测试,是一种按照程序内部逻辑结构和编码结构,设计测试数据并完成测试的一种测试方法。
(2)黑盒测试:又称为数据驱动测试,把测试对象当做看不见的黑盒,在完全不考虑程序内部结构和处理过程的情况下,测试者仅依据程序功能的需求规范考虑,确定测试用例和推断测试结果的正确性,它是站在使用软件或程序的角度,从输入数据与输出数据的对应关系出发进行的测试。
(3)灰盒测试:是一种综合测试法,它将“黑盒”测试与“白盒”测试结合在一起,是基于程序运行时的外部表现又结合内部逻辑结构来设计用例,执行程序并采集路径执行信息和外部用户接口结果的测试技术。
2、从是否执行代码看
(1)静态测试:指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。
(2)动态测试:是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能指标。
3、从开发过程级别看
(1)单元测试:又称模块测试,是针对软件设计的最小单位----程序模块或功能模块,进行正确性检验的测试工作。其目的在于检验程序各模块是否存在各种差错,是否能正确地实现了其功能,满足其性能和接口要求。
(2)集成测试:又叫组装测试或联合,是单元测试的多级扩展,是在单元测试的基础上进行的一种有序测试。旨在检验软件单元之间的接口关系,以期望通过测试发现各软件单元接口之间存在的问题,最终把经过测试的单元组成符合设计要求的软件。
(3)系统测试:是为判断系统是否符合要求而对集成的软、硬件系统进行的测试活动、它是将已经集成好的软件系统,作为基于整个计算机系统的一个元素,与计算机硬件、外设、某些支持软件、人员、数据等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。
在系统测试中,对于具体的测试类型有:
(1)功能测试:对软件需求规格说明书中的功能需求逐项进行的测试,以验证功能是否满足要求。
(2)性能测试:对软件需求规格说明书的功能需求逐项进行的测试,以验证功能是否满足要求。
(3)接口测试:对软件需求规格说明中的接口需求逐项进行的测试。
(4)人机交互界面测试:对所有人机交互界面提供的操作和显示界面进行的测试,以检验是否满足用户的需求。
(5)强度测试:强制软件运行在异常乃至发生故障的情况下(设计的极限状态到超出极限),验证软件可以运行到何种程序的测试。
(6)余量测试:对软件是否达到规格说明中要求的余量的测试。
(7)安全性测试:检验软件中已存在的安全性、安全保密性措施是否有效的测试,
(8)可靠性测试:在真实的或仿真的环境中,为做出软件可靠性估计而对软件进行的功能(其输入覆盖和环境覆盖一般大于普通的功能测试)
(9)恢复性测试:对有恢复或重置功能的软件的每一类导致恢复或重置的情况,逐一进行的测试。
(10)边界测试:对软件处在边界或端点情况下运行状态的测试。
(11)数据处理测试:对完成专门数据处理功能所进行的测试。
(12)安装性测试:对安装过程是否符合安装规程的测试,以发现安装过程中的错误。
(13)容量测试:检验软件的能力最高能达到什么程度的测试。
(14)互操作性测试:为验证不同软件之间的互操作能力而进行的测试。
(15)敏感性测试:为发现在有效输入类中可能引起某种不稳定性或不正常处理的某些数据的组合而进行的测试。
(16)标准符合性测试:验证软件与相关国家标准或规范(如军用标准、国家标准、行业标准及国际标准)一致性的测试。
(17)兼容性测试:验证软件在规定条件下与若干个实体共同使用或实现数据格式转换时能满足有关要求能力的测试。
(18)中文本地化测试:验证软件在不降低原有能力的条件下,处理中文能力的测试。
4、从执行过程是否需要人工干预来看
(1)手工测试:就是测试人员按照事先为覆盖被测软件需求而编写的测试用例,根据测试大纲中所描述的测试步骤和方法,手工地一个一个地输 入执行,包括与被测软件进行交互(如输入测试数据、记录测试结果等),然后观察测试结果,看被测程序是否存在问题,或在执行过程中是否会有一场发生,属于比较原始但是必须执行的一个步骤。
(2)自动化测试:实际上是将大量的重复性的测试工作交给计算机去完成,通常是使用自动化测试工具来模拟手动测试步骤,执行用某种程序设计语言编写的过程(全自动测试就是指在自动测试过程中,不需要人工干预,由程序自动完成测试的全过程;半自动测试就是指在自动测试过程中,需要手动输入测试用例或选择测试路径,再由自动测试程序按照人工指定的要求完成自动测试)
5、从测试实施组织看
(1)开发测试:开发人员进行的测试
(2)用户测试:用户方进行的测试
(3)第三方测试:有别于开发人员或用户进行的测试,由专业的第三方承担的测试,目的是为了保证测试工作的客观性
6、从测试所处的环境看
(1)阿尔法测试:是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试
(2)贝塔测试:是用户公司组织各方面的典型终端用户在日常工作中实际使用贝塔版本,并要求用户报告
一个软件项目就好比一部复杂的汽车,有很多零件,当每个零件生产完成后,就要测试零件是否存在质量问题。 零件组成复杂的汽车后,我们还要测试汽车。比如著名的中保研,测试刹车,测试气囊,测试防撞....,顾客从4s店购买汽车,要带懂车的人帮忙检查成品车,其实也是一种测试。软件也是一样,除了有测试零件的单元测试,还有集成测试、确认测试、系统测试、验收测试等等....,看下图:
单元测试是针对软件设计中的最小单位-程序模块,进行正确性检查的测试工作。 单元在软件代码中指一个函数或一个类,在图形化的软件中,单元一般指一个窗口,一个菜单。
当软件项目中相关单元都开发完成并完成单元测试后只能确保每个独立单元没有问题, 但多个单元整合成完整功能时, 需要再次进行质量验证。这个步骤就是集成测试。
集成测试又叫组装测试,通常在单元测试的基础上,将所有程序模块进行有序的、递增的测试。重点测试不同模块的接口部分。
无论单元测试还是集成测试,都是根据不同的测试阶段划分的。一个项目首先要进行的就是单元测试,单元测试完成后进行集成测试。 集成测试完成后还有系统测试和验收测试等等才能完成软件项目的最终验收和交付。
在具体的测试执行过程中又分为是否查看源代码的测试方式, 不查看源代码的测试方式为黑盒测试,查看源代码的测试方式为白盒测试。
黑盒测试是指测试的时候完全不考虑程序内部结构和内部特性,注重于测试软件的功能需求,只关心软件的输入数据和 输出数据。
白盒测试是指把软件的源代码打开,去研究里面的程序结构和具体编程实现方式。
除了黑盒测试与白盒测试,还有介于两者之间的灰盒测试。
灰盒测试: 是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。
软件测试工程师大多数时候在做黑盒测试。 在一些特殊场景也需要辅以灰盒测试, 但白盒测试由于需要对编程非常了解,所以软件测试工程师涉及的相对较少。
可私信我获取教程哦
测试方法分为两大类,一类是黑盒测试,方法包括:边界值分析法,等价类划分法,因果图,判定表,正交表,错误推算法等,还有一类是白盒测试方法,包括:语句覆盖,判定覆盖,条件覆盖,判定-条件覆盖,多重条件覆盖,路径覆盖
软件测试的方法根据软件工程的组织和实现方式,有很大差别,有些是比较技术化的方法,有些则是工程方法,主要分为:
黑盒测试方法群:等价类划分、边界值、因果图、基路径法、专家测试法、smoking、场景测试等
白盒测试方法群:同行评审、需求审查、代码审查、接口测试(调用测试和返回测试,需要结合等价类和因果图方法)等。
当在单元层面黑盒而在集成层面白盒时,基本上两类方法就会有结合了,就会出现习惯上说的灰盒测试(说实话,不做到纯产品级开发,基本上都是用的灰盒测试)。
按结构分:黑盒测试,白盒测试
其中黑盒分为功能测试和性能测试
按运行程序分:静态测试,动态测试
按阶段分:单元测试,集成测试,系统测试,验收测试
其他测试类型;回归测试,冒烟测试,随机测试
关注小优了解更多IT咨询~
10
回答7
回答0
回答0
回答8
回答0
回答0
回答0
回答0
回答0
回答