什么是系统测试?(定义、类型、示例)
在软件测试中,什么是系统测试?
系统测试是指测试整个系统。所有模块/组件都连接在一起,以查看系统是否按计划运行。系统测试在集成测试之后进行。这对于生成高质量输出至关重要。
系统测试示例
汽车制造商不会整体制造汽车。汽车的每个组件,例如座椅、方向盘、后视镜、制动器、电缆、发动机、车身结构和车轮,都是独立制造的。
制造每个部件后,都会单独对其进行测试,以查看其是否按预期运行。这称为单元测试。
现在,当每个部件与另一个部件集成时,会测试完成的组合,以查看组件的组装是否对每个部件的功能产生了任何副作用,以及这两个部件是否按预期一起运行,这称为集成测试。
当所有部件都组装好,汽车似乎已准备就绪时,情况并非如此。
必须根据要求检查整车的各个方面,例如汽车能否平稳行驶,制动器、齿轮和其他功能是否正常工作,连续行驶 2500 英里后汽车是否没有疲劳迹象,汽车的颜色是否被广泛接受和喜爱,以及汽车能否在任何类型的道路上行驶,包括平坦和崎岖、泥泞和笔直的道路等。所有这些测试工作称为系统测试,并且
示例按预期执行,客户对系统测试所需的工作量感到满意。
系统测试——方法
它在集成测试完成后进行。
它主要是一种黑盒测试。这种测试使用规范文档,从用户的角度评估系统的功能。它不需要任何内部系统专业知识,例如代码设计或结构。
它包括功能性和非功能性应用程序/产品领域。
系统测试的目的是什么?
完成完整的测试周期至关重要,而 ST 是完成此任务的阶段。
系统测试在与生产环境类似的环境中进行,使利益相关者能够全面了解用户的响应。
它减少了部署后进行的故障排除和支持呼叫的数量。
在 STLC 的这个级别,应用程序架构和业务需求都将得到测试。
系统测试至关重要,在为客户提供高质量产品方面发挥着关键作用。
如何运行系统测试?
它本质上是软件测试的一个子集,测试计划应始终为其留出空间。
要测试整个系统,需求和期望必须明确,测试人员还必须了解程序在实时中的使用方式。
此外,系统的功能、性能、安全性、可恢复性和可安装性都受到最常用的第三方工具、操作系统版本、风格和架构的影响。
因此,清晰地了解程序将如何使用以及在实时环境中可能遇到的哪些挑战,可能对测试系统有所帮助。此外,需求文档与理解程序一样重要。
清晰且最新的需求文档可以避免测试人员产生大量误解、假设和疑问。
总而言之,清晰简洁的需求文档(包含最新的修订版),以及对实时应用程序使用的了解,可以帮助提高 ST 的效率。此测试以系统且有组织的方式进行。
系统测试类型
ST 被称为所有类型测试的超集,因为它涵盖了所有主要类型的测试。尽管对不同类型测试的重视程度会根据产品、组织流程、时间表和需求而有所不同。
总的来说,可以概括如下:
**功能测试**——确保产品的功能符合既定标准,同时保持在系统的功能范围内。
**可恢复性测试**——确保系统能够从各种输入错误和其他故障场景中恢复。
**互操作性测试**——确定系统是否与第三方产品兼容。
**性能测试**——验证系统在不同条件下的性能特征。
**可扩展性测试**——确保系统可以在用户扩展、地域扩展和资源扩展等方面进行扩展。
**可靠性测试**——确保系统可以在更长的时间内运行而不会出现故障。
**回归测试**——确保系统在集成各种子系统和执行维护任务时的稳定性。
测试系统用户指南和其他相关帮助文档,以确保其有效且有用。
进行安全测试以确保系统不允许未经授权访问数据和资源。
进行可用性测试以确保系统易于使用、理解和运行。
更多系统测试类型
**图形用户界面 (GUI) 测试**——GUI 测试用于查看系统的图形用户界面 (GUI) 是否按计划运行。图形用户界面 (GUI) 是用户使用程序时看到的内容。测试按钮、图标、复选框、列表框、文本框、菜单、工具栏、对话框和其他 GUI 元素。
**兼容性测试**——兼容性测试确保生成的产品与各种浏览器、硬件平台、操作系统和数据库兼容,如需求规范中所述。
**异常处理**——异常处理测试是为了确保即使产品遇到意外故障,它也会显示相关的错误消息,并且不会导致程序停止。异常处理方式使得错误显示的同时,产品恢复,并且系统能够完成错误的事务。
**批量测试**——批量测试是一种非功能测试,它使用大量数据进行测试。例如,为了测试系统的性能,会增加数据库的数据量。
**压力测试**——压力测试涉及增加应用程序上的用户数量(同时),直到程序失败。这样做是为了查看应用程序是否会在任何时候失败。
**健全性测试**——发布包含代码或功能更改的版本时,或者修复问题时,都会进行健全性测试。它确保所做的修改不会影响代码,并且不会因此出现新的问题,并且系统继续正常运行。如果出现问题,则该版本将不会被批准进行进一步测试。为了节省时间和金钱,不会对版本进行严格的测试,这会导致由于发现问题而拒绝该版本。健全性测试针对的是已解决的特定修改或问题,而不是整个系统。
**冒烟测试**——冒烟测试是一种对版本进行的测试,以查看其是否可以进一步测试。它确保版本已准备好进行测试,并且所有重要功能都能正常运行。冒烟测试对整个系统进行,从头到尾。
**探索性测试**——顾名思义,探索性测试就是对应用程序进行调查。探索性测试不包括任何脚本测试。在测试的同时,编写测试用例。它强调实施而非准备。测试人员可以自由地独立进行测试,依靠他的直觉、经验和智慧。与使用结构化方法执行测试的其他方法相比,测试人员可以选择任何特性先进行测试,即他可以选择随机测试特性。
**随机测试**——随机测试是未经计划的测试,在没有任何文档或准备的情况下进行。测试人员在没有任何测试用例的情况下测试应用程序。测试人员的目标是破坏应用程序。为了发现应用程序中的主要缺陷,测试人员依靠他的专业知识、猜测和直觉。
**安装测试**——安装测试的目的是确保程序正确安装。程序的安装是用户与产品的第一次互动,因此它是测试中最关键的阶段。所需的安装测试类型取决于许多因素,包括操作系统、平台、软件分发等等。
结论
系统测试非常重要,因为如果做得不好,在现实世界中可能会出现严重的问题。
必须确认系统整体的属性。任何网页都是一个基本的例子。如果测试不足,用户可能会发现网站非常迟缓,或者如果大量用户同时登录,网站可能会崩溃。
在检查整个网站之前,无法检查这些功能。