一,信息系统测试概述
(一)测试目标
1,测试时为了发现程序中的错误而执行的过程;
2,好的测试方案是可能发现迄今为止尚未发现错误的测试方案;
3,成功的测试是发现了至今为止尚未发现错误的测试。
(二)测试原则
1,所有的测试都应追溯到用户需求。
2,应该在测试工作真正开始的较长时间之前就进行测试计划。
3,Pareto原则应用于软件测试。
4,测试应从“小规模”开始,逐步转向“大规模”。
5,穷举测试是不可能的。
6,为了达到最佳效果,应该由独立的第三方来构造测试。
(三)可测试性
- 可操作性(Operability):
○ 可操作性是指测试人员能够轻松地执行测试任务,包括设置测试环境、准备测试数据、运行测试用例等。
○ 良好的可操作性要求测试流程清晰、简单,测试工具易于使用,且测试所需的资源易于获取。 - 可观察性(Observability):
○ 可观察性是指测试人员能够容易地观察和记录测试结果,包括输出、日志、异常等。
○ 一个可观察性好的系统应该提供清晰的输出和日志信息,以便测试人员能够快速定位问题和验证系统行为。 - 可控制性(Controllability):
○ 可控制性是指测试人员能够精确地控制测试执行的条件和参数,以模拟不同的使用场景和测试需求。
○ 良好的可控制性允许测试人员隔离和测试特定的功能或组件,确保测试的准确性和有效性。 - 稳定性(Stability):
○ 在测试上下文中,稳定性指的是测试环境、测试数据和测试工具的可靠性,以及它们在多次测试中的一致性。
○ 一个稳定的测试环境可以减少测试中的不确定性,提高测试的准确性。 - 易理解性(Ease of Understanding):
○ 易理解性是指测试人员能够容易地理解软件的功能、结构和行为,从而设计和执行有效的测试用例。
○ 良好的文档、清晰的代码结构和合理的命名约定都有助于提高测试的易理解性。
二,硬件平台测试
(一)计算机测试
计算机裸机的测试通常比较专业,他要借助专业的仪器和设备这种测试,往往是在计算机生产厂家进行测试的。所以这里所要介绍的测试是对安装了操作系统的计算机的测试,是通过特定的软件进行测试,而且主要是对其性能的测试,一体化工具软件能够提供pc中安装的硬件一览表,对硬件的性能进行测试,甚至对影响整个系统性能的某个硬件提出建议,现在主要的测试工具如下:
1,SiSoftware Sandra Pro 2009
2,PCMark Vantage
(二)服务器测试
鉴于服务器在信息系统中所担负的角色,因而对一台服务器主要是对其服务端能力进行测试,要考察测试在不同访问密度情况下,服务器的吞吐能力,包括服务器的处理速度、处理能力、并发处理极限、请求接收能力和请求发送能力等,以确定服务器能否满足信息系统对它的要求。
(三)输入/输出测试
输入/输出设备通常要连到计算机上才能使用个别设备(如打印机可以直接连接到网络上使用),因此这些设备必须要能被计算机操作系统识别和管理。操作系统通常是通过驱动程序来操作和管理输入/输出设备的,所以绝大多数输入/输出设备都可以用厂商提供的设备驱动程序来进行测试。
输入/输出设备测试的方法和步骤如下:
1,正确安装设备驱动程序;
2,利用设备驱动程序测试设备的功能。
(四)网络测试
网络测试主要包括电缆测试,传输信道测试和网络测试。
电缆测试主要包括电缆的验证和认证测试,验证测试是测试电缆的基本安装情况,如电缆有无开路或短路,连接是否正确,接地是否良好,电缆走向如何等;认证测试是测试已安装完毕的电缆的电气参数(如衰减特性等)是否满足有关的标准。传输信道测试主要是测试传输信息的频谱带宽、传输速率和误码率等参数。网络测试包括网络规程验证、性能检测、安装调试、维护和故障诊断等。
- 单体测试:对硬件系统而言,是以构成系统的各个设备为对象,逐一进行测试。
- 连接测试:对各个设备或模块之间的接口和接口设备进行测试,以确定各个设备工作是否正常。
- 综合测试:对网络系统综合性能进行测试,即包括软件系统在内的测试,如数据传输的速率与可靠性、网络路由转化的正确性、用户上网的安全性和出错处理等。这些都是基于系统软件或应用软件的测试。
三,应用软件测试
(一)软件测试方法
系统测试的方法是多种多样的,可以从不同的角度加以分类:
1,按照是否需要执行被测试系统的角度来分,可以分为静态测试和动态测试。
2,按照测试是否针对系统的内部结构和具体实现算法的角度来分,可以分为白盒测试和黑盒测试。
3,按照软件测试的手段来分,可以分为手工测试和自动测试。
4,按照测试过程来划分,可以分为单元测试、集成测试、确认测试和综合测试等。
1,静态测试与动态测试
静态测试是指被测试程序不实际运行,而是采用人工检测和计算机辅助静态分析的手段对程序进行检测,主要对被测程序的编程格式、结构等方面进行评估。
动态测试则是指通常意义上的测试——通过运行和使用被测程序,发现软件故障,以达到测试的目的。
2,黑盒测试与白盒测试
白盒测试也称结构测试或逻辑驱动测试,它知道产品内部工作过程,可以通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都能按预定的要求正常工作,而不管它的功能。白盒测试的主要方法有逻辑驱动、基本路径测试等,主要用于软件验证测试。
黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有功能的情况下,通过测试来检测每个功能是否都能正常使用。在测试时把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检测程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据并产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试主要用于软件的确认测试,其测试方法主要有等价类划分、边值分析、因果图、错误推测等。
3,验证测试与确认测试
一种称为验证的测试,就是针对开发过程中的任何中间产品进行的测试。
所谓验证是指确定系统开发的每个阶段,每个步骤的产品是否正确无误,是否与其前面开发阶段和开发步骤的产品相一致。
另一种称为确认的测试,则只能通过运行代码来完成。
所谓确认是指确认最后的产品是否确认无误。
(二)软件测试过程
若把信息系统开发理解为一个自顶向下逐步细化的过程,软件测试则是一相反顺序的字体向上逐步集成的过程。
- 单元测试:
● 定义:单元测试是软件测试中的最小单位测试,用于验证软件中的最小可测试单元(如模块、类或函数)是否按照设计要求正确地实现了功能。
● 目的:帮助开发人员在编写代码的过程中尽早发现和解决问题,减少代码错误和缺陷,提高代码的可靠性和可维护性。
● 测试种类:通常使用断言技术来验证代码的正确性,是一种自动化测试方法。 - 集成测试:
● 定义:集成测试是将不同的模块组装在一起进行测试,以验证它们之间的交互和协作是否正常,检测系统整体功能是否符合要求。
● 目的:确保各个单元在整合后能够正常工作,并验证整个系统的功能是否符合预期。
● 测试种类:关注模块间的接口和交互,确保集成后的系统能够正确运行。 - 确认测试:
● 定义:确认测试是对通过组合测试的软件进行的,旨在验证软件是否满足需求规格说明书中的全部功能和性能要求。
● 目的:确保软件符合用户需求,能够在实际环境中正常工作。
● 测试种类:通常包括功能测试、性能测试等,验证软件是否满足预定要求。 - 综合测试(有时也称为系统测试):
● 定义:综合测试是将已经通过确认测试的软件,置于实际运行环境中,与其他系统元素(如硬件、外设、支持软件、数据、人员等)组合在一起进行测试。
● 目的:验证软件在实际使用环境中的表现和性能,确保其与其他系统元素能够协同工作。
● 测试种类:可能包括兼容性测试、安全性测试、压力测试等,以全面评估软件的性能和稳定性。 - 测试过程及相应的测试种类
(三)测试工具
信息系统测试需要各种测试工具的支持,测试工具既可以辅助测试工作,又可以自动化测试过程,在测试过程中应用测试工具可以提高测试效率和质量,减少测试的开需要降低测试过程中的重复劳动,实现测试的自动化。
1,白盒测试工具
1)静态测试工具
Logiscope、PRQA和AQtime等。
2)动态测试工具
DevPartner、Purify和AQtime等。
2,黑盒测试工具
WinRunner、TeamTest、Robot和QACenter等。
3,测试管理工具
TestDirect、TestManager、TrackPecord和AQ devTeam等。
4,其他测试工具
TestBytes:数据库测试;
EcoScope:应用性能进行优化。
四,面向Web的信息系统测试
(一)功能测试
- 链接测试:
○ 链接测试是功能测试的一个重要方面,主要用于检查软件中的每一个链接是否都能正确导向对应的页面,以及页面之间的切换是否流畅无误。
○ 在进行链接测试时,测试人员会按照需求文档或用户手册中的描述,逐一点击软件中的链接,检查是否存在死链接、错误链接或重定向问题。 - 表单测试:
○ 表单测试主要针对软件中的各类表单,如注册表单、登录表单、搜索表单等。
○ 测试人员会检查表单中的各个字段是否都能正常输入和提交,以及提交后的数据处理是否正确。这包括检查必填项、字段长度限制、数据类型验证等。 - 数据校验:
○ 数据校验是确保软件中的数据准确性和完整性的重要手段。
○ 测试人员会检查软件在接收和处理用户输入的数据时,是否进行了有效的校验。这包括检查数据格式、数据类型、数据范围等是否符合预期,以及是否对非法或异常数据进行了正确处理。 - Cookies 测试:
○ Cookies测试主要针对软件在处理用户会话和状态信息时的正确性。
○ 测试人员会检查软件是否正确地使用Cookies来保存和传递用户的状态信息,以及在Cookies过期或失效时,软件是否能够妥善处理并提示用户。 - 数据库测试:
○ 数据库测试是验证软件与数据库交互的正确性和可靠性的关键环节。
○ 测试人员会检查软件对数据库的增删改查操作是否准确无误,以及数据库的数据完整性、一致性和安全性是否得到了保障。此外,还会测试软件在并发访问数据库时的性能表现。
(二)性能测试
- 压力测试(Stress Testing):
● 压力测试是一种测试方法,通过逐渐增加系统的负载,测试系统在超出正常负载情况下的性能表现。这种测试旨在确定系统在极端负载条件下的稳定性和可靠性,以及是否存在性能瓶颈或故障点。 - 连接速度测试:
● 连接速度测试通常用于评估网络应用或系统的性能。它主要测试的是用户与服务器之间的连接速度,包括下载速度、上传速度以及响应延迟等。这种测试对于评估网络应用的用户体验和性能至关重要。 - 负载测试(Load Testing):
● 负载测试是一种通过模拟实际用户的并发访问行为,测试系统在不同负载下的性能表现的方法。这种测试可以帮助确定系统的最大负载能力,以及在不同负载水平下的性能指标,如响应时间、吞吐量等。通过负载测试,可以为系统的性能调优提供数据支持。
(三)可用性测试
- 导航测试:
● 导航测试主要关注用户在软件或系统中的移动和浏览体验。测试人员会检查系统的导航结构是否清晰,用户是否可以容易地找到所需的信息或功能。这包括检查按钮、链接、菜单等导航元素的布局和标签是否合理,以及系统是否提供了有效的站内搜索或地图功能来辅助用户定位信息。 - 图形测试(也称为UI测试):
● 图形测试主要关注软件或系统的视觉呈现,包括图片、动画、颜色、字体、按钮等UI元素。测试人员会检查这些元素是否清晰、一致,并且与系统的整体风格和功能相符。同时,也会考虑图片的尺寸和压缩方式,以确保加载速度不会影响用户体验。 - 内容测试:
● 内容测试关注软件或系统中信息的可读性和适用性。测试人员会检查文本、图像、视频等内容的清晰度和准确性,以及是否满足目标用户的需求和期望。内容测试还包括检查信息是否易于找到和理解,以及是否符合系统的整体风格和用途。 - 整体界面测试:
● 整体界面测试是对软件或系统整体视觉和交互设计的评估。测试人员会关注用户在浏览和使用系统时的整体感受,检查系统的设计风格是否一致,以及界面布局和元素是否符合用户习惯。整体界面测试通常通过调查问卷或用户反馈来收集数据,以便对界面进行优化和改进。
(四)安全性测试
- 目录设置测试:
● 目录设置测试主要关注系统目录和文件的安全配置。测试人员会检查目录的权限设置,确保只有授权用户能够访问和修改相关文件。同时,还会测试目录路径的暴露情况,防止潜在攻击者通过猜测或扫描目录结构来访问敏感信息。 - SSL测试:
● SSL(安全套接层)测试用于验证系统是否使用了有效的SSL证书,并检查SSL配置的安全性。测试人员会使用SSL检测工具来评估服务器证书的部署情况、加密套件、协议支持等方面的安全性。这有助于确保数据传输过程中的机密性和完整性,防止数据被截获或篡改。 - 登录验证测试:
● 登录验证测试关注用户认证和授权过程的安全性。测试人员会检查登录功能的健壮性,包括测试密码策略的有效性(如密码长度、复杂度要求等)、防止暴力破解和字典攻击的措施,以及防止账户锁定和防止会话劫持的机制等。通过这些测试,可以确保只有合法用户能够访问系统,并防止未经授权的访问。 - 日志文件测试:
● 日志文件测试旨在验证系统是否记录了关键的安全事件和操作。测试人员会检查日志的完整性、准确性和可用性,确保系统能够记录并保存所有重要的安全相关信息。同时,还会测试日志的访问权限,防止未经授权的用户查看或篡改日志数据。 - 脚本语言测试:
● 脚本语言测试关注系统中使用的脚本语言的安全性。测试人员会检查脚本代码是否存在潜在的安全漏洞,如跨站脚本攻击(XSS)、命令注入等。通过对脚本语言的深入测试,可以确保系统免受恶意脚本的攻击,并保护用户数据的安全性。
(五)系统兼容性测试
系统兼容性测试包括平台测试,浏览器测试,分辨率测试,连接速率测试和打印机测试。
平台测试是指在系统发布前,在各种操作系统下对web应用系统进行兼容性测试;浏览器测试是测试Web应用系统在不同的浏览器中是否能够正常;显示分辨率测试是测试web应用系统在不同分辨率模式下是否正常显示;连接速率测试是测试web应用系统在不同上网方式下等待首页出现的时间;打印机测试是测试网页打印是否正常。
(六)接口测试
1,服务器测试
服务器测试主要关注服务器端的接口实现和功能。在接口测试中,服务器测试扮演着至关重要的角色,因为它涉及到系统后端的核心逻辑和数据处理。
关键测试点:文章来源地址https://www.toymoban.com/news/detail-856420.html
- 接口功能验证:测试接口是否按照设计文档中的规定提供了正确的功能。
- 性能测试:评估接口的响应时间、吞吐量等性能指标,确保在高并发场景下也能稳定运行。
- 安全性测试:检查接口是否存在安全漏洞,如未授权访问、SQL注入等。
- 稳定性测试:通过长时间运行和模拟各种异常情况来检验接口的稳定性。
2,外部测试
外部测试是指对系统调用外部服务或API的接口进行测试。这通常涉及到与其他系统或第三方服务的集成。
关键测试点:
- 接口兼容性测试:验证接口是否与外部服务或API的协议、规范兼容。
- 数据传输测试:检查数据在接口间的传输是否准确、完整,包括数据格式、编码等。
- 依赖服务测试:测试当依赖的外部服务出现故障或响应延迟时,系统是否能够妥善处理。
- 安全性测试:确保与外部系统的交互过程中不会泄露敏感信息或引入安全风险。
3,错误处理
错误处理在接口测试中至关重要,它涉及到对异常情况的处理和恢复机制。文章来源:https://www.toymoban.com/news/detail-856420.html
关键测试点:
- 异常输入测试:向接口发送非法、异常或超出范围的输入,检查系统是否能够正确识别并返回错误信息。
- 错误码和消息测试:验证系统返回的错误码和错误消息是否清晰、准确,有助于开发者定位问题。
- 重试机制测试:检查系统是否实现了合理的重试逻辑,以应对暂时性的网络故障或服务不可用。
- 容错和恢复测试:模拟系统故障或异常情况,检查系统是否能够自动恢复或提供降级处理方案。
考点总结
测试的目标和测试的正确定义
硬件测试的相关概念
网络测试各种类型的概念
测试过程的阶段划分
回归测试的概念
到了这里,关于第六章 信息系统的测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!