软件测试中的系统测试包括什么(什么是软件测试)

软件测试中的系统测试包括什么(什么是软件测试)(1)

什么是软件测试?

软件测试,顾名思义,是一种检查软件结果是否符合预期的活动。有效的软件测试确保软件做它应该做的事情——也就是说,它验证软件是否适合某一目的。

软件测试可以手动执行,也可以使用自动化工具执行,甚至可以混合执行。

为什么说软件必须进行测试?

正如我们前面提到的,软件测试是在产品发布前识别缺陷的好方法。

为了强调这一点,这里有一些现实生活中的例子,说明为什么应该认真对待正确的软件测试。

  • 2015年4月,彭博的伦敦终端由于软件故障而崩溃。这影响了成千上万的金融市场交易者。它甚至迫使英国政府推迟了30亿英镑的债券发售。通过适当的测试,这是可以避免的。
  • 同样在2015年,由于一个身份不明的软件故障,星巴克被迫关闭了在美国和加拿大约60%的门店。在他们的销售点系统的日常系统刷新期间的一个问题,阻止公司进行交易。在某些情况下,星巴克被迫免费提供订单。
  • 1991年2月,在第一次海湾战争期间,一枚伊拉克导弹击中了美国在沙特阿拉伯达兰的基地,造成28名美国士兵死亡。经过调查,确定基地的反弹道系统发射失败是因为电脑故障。内部时钟以每小时几毫秒的速度漂移,这最终对系统的计时产生了巨大影响。
  • 尼桑曾被迫从市场上召回将近100万辆2013年和2014年的英菲尼迪车型,原因是发现了与安全气囊传感器有关的严重软件缺陷。在此之前,有两起事故导致这个问题最终被发现。
  • 1982年福克兰群岛战争期间,皇家海军驱逐舰英国舰队谢菲尔德由于雷达预警系统的软件故障,该公司已经沉没。根据一项从时间开始报告当它能够捕捉到来袭的飞鱼反舰导弹时,它将其记录为“友军”,阻止了反措施的发射。
  • 最近,在2018年两架飞机坠毁后,波音737 Max 8被迫停飞,进行软件升级。这些软件故障不仅让波音公司损失了数十亿美元,而且不幸地夺去了数百人的生命。

如果实行了适当的检测制度,上述情况至少有一部分是可以避免的。但是,这些错误在发生之前是不容易预见的。

软件测试的好处是什么?

软件测试中的系统测试包括什么(什么是软件测试)(2)

  • 软件测试是非常划算的:这可能是软件测试最重要的好处。对任何IT项目进行及时的测试可以帮助您在长期内节省资金。对于在开发周期的早期发现错误、bug和其他问题,这一点尤其正确。
  • 软件测试有助于提高安全性:测试的另一个至关重要的好处是确保产品的安全性,它给开发人员带来好处。这不仅确保了消费者对产品的信任,还有助于在黑客发现之前堵住其防御漏洞。
  • 产品质量:这是任何软件产品的基本要求。测试确保向客户交付高质量的产品。
  • 顾客满意:任何产品的主要目的都是让顾客满意。UI/UX测试确保最佳用户体验。
有哪些不同类型的软件测试?

软件测试通常分为三大类。广义上来说,这些是:

  • 功能测试
  • 非功能测试和性能测试
  • 维护测试
功能软件测试有哪些类型?

下面是一些最常见的功能软件测试形式。

1. 集成测试

集成测试是软件测试的一种形式,其目的是检查一块软件中所有集成的模块。这通常发生在所有组件模块集成在一起之后,因此有了这个术语。

模块通常可以由代码模块、单独的应用程序、网络上的客户端和服务器应用程序等组成。这种类型的测试尤其与客户机/服务器和分布式系统相关。

2. 单元测试

与集成测试不同,单元测试是一种评估单个组件或模块的软件测试形式。单元是任何软件中最小的可测试部分。这样的测试通常由程序员自己执行,而不是由专门的测试人员执行。这是因为它往往需要程序内部设计和代码的详细知识。

单元测试是软件测试的第一级,在集成测试之前完成。

3.系统测试

系统测试在某种程度上类似于集成测试,但是更加全面。这种形式的测试将检查整个系统是否完全符合软件的需求。

它有时被称为黑盒类型测试,在集成测试之后执行,并验证整个软件包是否按预期工作。这是一个必要的测试过程,以确保任何交付的包的最高质量。

4. 冒烟测试

冒烟测试是一种初步测试,用于检查特定应用程序的基本功能和稳定性。这样的测试旨在快速执行,其目标通常是确保系统的主要特性能够按照预期工作。

这样的测试通常在新构建被开发之后立即执行,并且在更深入的测试之前检查稳定性。冒烟测试有效地寻找代码中的“显示暂停”缺陷,这些缺陷可能会阻止以后的测试正常运行,或者根本无法正常运行。

如果测试人员发现主要的关键功能在初始阶段就被分解了,那么测试团队就可以拒绝构建,并相应地通知开发团队。冒烟测试是在任何功能或回归测试的详细级别上进行的。”-软件测试帮助。

5. 完整性测试

完整性测试用于确定一个新软件版本的性能是否足够好,可以接受它进行进一步的主要测试。例如,如果应用程序在初次使用时崩溃,则认为该系统太不稳定,无法进行进一步测试。

它还用于检查代码或功能中的微小更改,以确定这些更改不会引入进一步的问题。这个测试并不是用来客观地验证软件,而是确保开发人员在生产软件时已经应用了合理性(即理智)。

6. 回归测试

回归测试用于在对模块或功能进行修改后对应用程序进行整体测试——因此称为回归测试。实际上,它用于确认所做的任何更改没有对其他现有特性产生不利影响。

回归测试只是对已经执行的测试用例的全部或部分选择,这些用例被重新执行,以确保现有的功能工作良好。进行此测试是为了确保新的代码更改不会对现有功能产生副作用。它确保了在完成最新的代码更改后,旧代码仍然可以工作。”

7. 图形用户界面(GUI)测试

图形用户界面(简称GUI)测试,顾名思义,是针对客户端或最终用户需求对界面进行的测试。这通常会在项目简介中解释,通常还会提供用于测试的参考GUI原型。

这类测试通常检查在给定或范围内的分辨率下按钮和输入字段的大小。它还将检查文本、表格和一般内容的对齐方式。

这样的测试还应该验证出现的任何菜单,比如填充的下拉菜单。它还验证页面不会波动,以及当鼠标指针悬停在页面上时对齐保持稳定。

8. 测试

测试是一种你可能听说过的软件测试形式,即使你不是这个行业的人。与前面提到的其他测试不同,这种类型的测试通常由客户和其他第三方终端用户执行。

实际上,这是在产品最终发布之前,在真实环境中对软件的一次测试。进行此类测试是为了确保软件没有重大故障,并确保软件满足所有要求。

最终用户通常会被鼓励向开发人员提供反馈,并为潜在的改进提供建议。一旦编译完成,开发人员就会在最终发布之前执行任何改进。

软件测试中的系统测试包括什么(什么是软件测试)(3)

9. 端到端测试

这种形式的软件测试用于测试应用程序从开始到结束的流程是否按预期运行。它的目的是识别系统依赖关系,并确保在各种系统组件和系统之间维护数据完整性。

它通常会测试整个应用程序的关键功能,比如与其他系统、接口、数据库、网络和其他应用程序的通信。

10. 可用性测试(用户体验- UX)

顾名思义,这个软件测试检查它的实际用户友好性。应用程序流也被称为UX,它是用来测试一个没有经验的新用户是否能够理解这个应用程序。

它还可以测试任何帮助函数,以查看它们是否有用,并检查系统导航是否符合逻辑。

非功能性的软件测试

软件测试中的系统测试包括什么(什么是软件测试)(4)

下面是一些最常见的非功能软件测试形式。

1. 性能测试

性能测试,有时包括压力或负载测试,是一种重要的非功能软件测试形式。

它检查系统是否满足定义的性能参数,它使用各种工具。

2. 压力测试

如前所述,压力测试可以作为一般性能测试的一部分执行,也可以作为独立测试执行。正如名字所暗示的,这测试软件的极限,其定义的性能和超越。

一旦超出了正常的性能预期,它会有效地尝试发现系统如何以及何时会失败。这样的测试通常在高负载下进行,比如输入超出存储容量的数据,进行复杂的数据库查询或对系统的连续输入,或者测试数据库负载。

3. 负载测试

负载测试是非功能软件测试的另一种形式,它检查当多个用户同时访问程序时系统的行为。它与多用户系统最为相关;通常是使用客户机/服务器模型构建的,比如web服务器。

可以使用JMeter、LoadRunner、WebLoad、Silk performer等工具执行负载测试。

4. 安全性测试

安全测试,顾名思义,就是检查任何一个软件是否容易或难易被黑客攻击。它通常由专业测试人员(如白帽黑客)执行,用于从内部和外部威胁中找出软件的优势和劣势。

“这一测试包括软件在多大程度上能够抵御恶意程序和病毒,以及授权和认证过程的安全性和强度。”

它还检查软件如何应对黑客攻击或恶意程序,以及在遭受黑客攻击后如何维护软件的数据安全。”

5. 容量测试

容量测试是另一种非功能性软件测试,通常由性能测试团队执行。被检查的软件暴露于大量数据中,测试将检查软件的行为和响应。

它用于评估这样的数据流入对性能和处理时间有什么影响(如果有的话)。

6. 兼容性测试

这种形式的软件测试验证软件包在各种不同环境中的行为。这将包括web服务器、硬件和网络环境等内容。

这种形式的测试检查它是否可以运行在不同的配置、数据库等以及它们的不同版本(如果适用的话)上。

7. 安装/卸载测试

顾名思义,这种形式的测试执行对全部、部分或升级安装和卸载的检查。它通常在使用各种不同硬件和软件环境的各种操作系统上进行测试。

8. 可靠性测试

这种形式的操作系统软件测试评估了一个软件在特定时间内跨多个环境进行无故障操作的概率。

“可靠性测试是为了确保软件是可靠的,它满足它的目的,在特定的时间内,在给定的环境,并能够呈现一个无故障的操作。”-软件测试帮助。

9. 恢复测试

恢复测试是另一个重要的测试,用于查看在系统崩溃或其他灾难发生后软件的特定部分的行为。它检查有问题的系统在此类实例发生后能够恢复的程度。

这类测试在实践中相对简单,可以简单地通过断开网络电缆来迫使连接断开。测试的目的是看软件是否能够恢复到故障之前的状态并继续运行。

10. 遵从性测试

法规遵循测试,也称为一致性测试、规则测试或标准测试,是另一种常见的软件测试。此测试将确定系统是否符合设置的外部标准。

这些测试的内容可能会根据所应用的标准的要求而有所不同。

11. 本地化测试

最后,本地化测试是一种软件测试形式,用于评估其针对不同文化或设置的行为。它的主要目的是检查一个特定的地理位置在语言和文化方面是否合适。

换句话说,它是为目标语言和国家定制软件应用程序的过程。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页