软件测试实践之测试环境的规划与管理
- 格式:doc
- 大小:29.50 KB
- 文档页数:4
软件测试中的测试环境搭建和维护在软件测试中,测试环境的搭建和维护是一项关键任务。
一个良好的测试环境可以确保测试的准确性和可靠性,提高测试效率。
本文将介绍如何进行测试环境的搭建和维护。
一、测试环境的搭建1.确定测试环境需求在搭建测试环境之前,需要明确测试的目标和需求。
根据软件测试计划和测试用例,确定所需的硬件设备、操作系统、数据库、网络配置等。
2.准备硬件设备根据测试需求,准备适当的硬件设备,如服务器、客户端机器、网络设备等。
确保硬件设备的配置满足测试要求,并按照测试计划中的要求进行配置。
3.安装操作系统和软件根据测试环境需求,选择合适的操作系统版本,并在硬件设备上进行安装。
安装操作系统后,根据需要安装所需的测试工具和软件,如IDE、测试管理工具、数据库、Web服务器等。
4.配置网络环境在测试环境搭建过程中,需要配置适当的网络环境,确保测试过程中的数据传输和通信正常。
配置网络地址、端口号、防火墙等,以满足测试需求。
5.创建测试数据库根据测试需求,创建测试数据库,并导入测试数据。
设置数据库的用户权限,并进行必要的数据清理和备份,以保证测试环境的稳定性和一致性。
二、测试环境的维护1.定期备份与恢复为了确保测试环境的可靠性,需要定期备份测试环境的数据和配置信息。
备份包括数据库备份、系统配置文件备份等。
在出现异常情况时,能够及时恢复测试环境,以减少测试中断时间。
2.监控与性能优化测试环境通常会面临大量的测试任务,因此需要监控测试环境的性能。
定期检查硬件设备、网络带宽、数据库负载等指标,及时发现并解决潜在问题。
对于性能瓶颈,可以通过调整配置、优化代码等方式提升测试环境的性能。
3.升级和配置更新随着项目的进行,会有新的测试需求和新的测试工具出现。
因此,需要定期进行升级和配置更新。
在升级和更新过程中,需要保证测试环境的稳定性和兼容性。
4.问题记录和解决在测试环境中,可能会出现各种问题和异常情况,如软件崩溃、网络中断等。
软件测试中的测试环境管理指导在软件开发过程中,测试环境管理是一个至关重要的环节。
一个良好的测试环境管理可以提高软件测试的效率和质量,确保最终发布的产品符合用户需求。
本文将针对软件测试中的测试环境管理进行指导,帮助测试团队建立和维护适合的测试环境。
测试环境的建立是测试工作的基础。
在软件测试之前,测试团队需要与开发团队紧密合作,了解软件系统的架构和所有的组件。
依据软件系统的特性,测试团队需要准备适当的硬件和软件环境,以模拟客户实际使用软件的场景。
测试环境的建立应该根据测试需求,合理选择测试工具和支持软件的版本,确保测试环境和生产环境的一致性。
同时,为了最大程度地模拟真实环境,测试团队可以使用虚拟化技术,快速创建和复制多个测试环境。
测试环境的管理需要有严格的规范和流程。
测试环境应该是独立的,并与其他环境(如开发环境和生产环境)隔离开来,以避免互相干扰。
测试环境应该具备良好的稳定性和可靠性,保证测试人员能够在稳定的环境下进行测试工作。
测试环境的配置和版本信息应该得到记录和管理,以便快速恢复到某个点上,进行问题的跟踪和排查。
测试环境应该定期进行维护、备份和更新,确保测试人员拥有可靠的测试环境。
测试环境的监控和度量是测试环境管理的关键。
测试团队应该根据测试需求,制定监控方案,监控测试环境的性能和资源使用情况,及时发现和解决潜在问题。
同时,测试团队可以使用度量工具进行测试环境数据的收集和分析,以便更好地了解测试环境的性能、稳定性和可靠性。
基于这些数据,测试团队可以对测试环境进行优化和改进,提高测试效率和质量。
对于测试环境的变更管理,测试团队需要建立相应的变更管理流程。
任何对测试环境的变更都应该经过事先的评审和批准,以确保变更的可行性和稳定性。
变更管理流程应该包括变更的申请、审批、实施和验证等步骤,以保证变更的安全和有效性。
变更管理有助于减少测试环境的不稳定因素,提高测试工作的效率和稳定性。
综上所述,软件测试中的测试环境管理是确保测试工作顺利进行的关键环节。
如何进行测试环境的部署与配置在软件开发过程中,测试环境的部署与配置起着至关重要的作用。
测试环境的正确配置可以确保软件在不同环境中的正常运行和高质量。
如何进行测试环境的部署与配置成为了开发团队中一个重要的课题。
测试环境的部署需要选择合适的硬件和软件基础设施。
选择合适的硬件可以保证测试环境的性能和稳定性。
在选择服务器的时候,要考虑到测试环境的规模和所需的资源。
如果需要进行大规模的性能测试,可能需要使用高性能的服务器。
对于小规模的测试环境,一台普通的服务器就可以满足需求。
还需要选择合适的操作系统、数据库和网络设备。
这些软件基础设施的选择应根据项目的需求和团队的技术水平来确定。
测试环境的配置需要进行一系列的操作。
需要在选择的硬件上安装操作系统。
操作系统的安装过程中,要根据实际需求选择合适的版本和配置选项。
安装完成后,还需要对操作系统进行一些基础的配置,如网络设置、用户权限等。
接下来,需要安装和配置数据库。
数据库的选择应根据项目的需求来确定,常见的包括MySQL、Oracle、SQL Server等。
在安装数据库之后,还需要创建数据库和表结构,并进行相关的权限设置。
除了硬件和软件基础设施的配置外,还需要进行环境变量的设置。
环境变量可以影响软件的运行环境和行为。
在测试环境中,可能需要设置一些特定的环境变量,如数据库连接信息、日志路径等。
通过设置环境变量,可以为软件提供正确的运行环境,并减少问题的产生。
测试环境中也需要安装和配置版本控制工具。
版本控制工具可以帮助团队管理代码的版本和变更。
常见的版本控制工具有Git、SVN等。
在安装和配置版本控制工具后,团队成员可以通过提交和更新代码来共享和管理代码的变更。
版本控制工具的使用不仅能够提高代码的可维护性和追踪性,还可以方便团队成员之间的协作和合作。
测试环境的部署与配置还需要考虑安全性和监控。
测试环境中的数据和代码可能包含敏感信息,需要采取一些安全措施来保护。
常见的安全措施包括对数据库和服务器进行访问权限管理、加密传输、防火墙设置等。
软件测试环境管理软件测试环境是进行软件测试的基础设施,它提供了适合进行软件测试的硬件、软件和网络环境。
在软件开发和测试过程中,一个良好管理的测试环境能够有效提高测试效率,确保软件质量,降低软件发布的风险。
本文将就软件测试环境的管理进行探讨,包括环境规划、环境建设、环境配置和环境维护等方面。
一、环境规划在进行软件测试前,需要进行合理的环境规划。
环境规划包括确定测试环境的需求、优先级和周期,并考虑到测试所需的硬件、软件和网络资源等。
通过对测试环境的需求进行评估和规划,可以避免测试所需资源的浪费和不足,并保证测试进程的顺利进行。
1. 硬件资源规划根据测试项目的需求,确定测试所需的硬件资源,如服务器、虚拟机、工作站等。
同时,需要考虑硬件资源的数量和配置,确保测试环境能够满足测试的要求。
2. 软件资源规划根据测试项目的需求,确定测试所需的软件资源,包括操作系统、数据库、测试工具等。
同时,需要考虑软件版本的兼容性和稳定性,以及软件授权和许可证的管理。
3. 网络资源规划在进行分布式测试时,需要考虑测试环境的网络资源规划。
确定网络拓扑结构、带宽、网络连接等,以保证测试环境的性能和稳定性。
二、环境建设环境建设是指按照环境规划的要求和需求,进行测试环境的搭建和部署。
它包括硬件的采购与建设、软件的安装与配置、网络的搭建与调试等方面。
1. 硬件建设根据环境规划确定的硬件需求,进行硬件采购并搭建测试环境。
确保硬件设备的正常运行和稳定性。
2. 软件建设根据环境规划确定的软件需求,进行软件的安装和配置。
确保软件的版本和配置符合测试要求,并进行必要的测试工具的安装和配置。
3. 网络建设根据环境规划确定的网络需求,进行网络的布线、设备的配置和网络的调试。
确保网络的连通性和稳定性,保障分布式测试的顺利进行。
三、环境配置环境配置是指对测试环境进行必要的设置和调整,以满足具体的测试需求。
它包括测试数据的准备、测试环境的部署和测试工具的配置等方面。
软件测试报告测试环境与配置建议软件测试报告测试环境与配置建议本次软件测试旨在对新开发的软件进行功能、性能和稳定性等方面的验证。
以下是对测试环境与配置的建议,旨在优化测试流程并提高测试效果。
一、测试环境需求在进行软件测试前,应确保测试环境满足以下需求。
1. 硬件要求根据软件的系统要求,准备符合要求的硬件设备。
例如,确保计算机配置符合最低系统要求、安装合适的操作系统版本,并根据软件要求预留充足的磁盘空间等。
2. 软件要求安装所需的开发工具和测试工具,并确保其版本与软件的兼容性。
如有需要,进行必要的配置和更新。
3. 网络要求确保测试环境与被测软件所依赖的网络连接稳定可靠。
若软件需要连接外部服务器、数据库等,设置合适的网络连接,并保证其正常运行。
二、测试配置建议为了提高测试效果和准确性,以下是对测试配置的建议。
1. 测试数据准备根据软件的需求和预期使用场景,准备丰富、多样的测试数据。
包括正常情况下的数据、边界情况的数据以及异常情况下的数据等。
2. 测试环境复制在测试之前,应建立一个与生产环境尽可能相似的测试环境。
这包括操作系统版本、数据库版本、网路配置等。
复制测试环境的目的是为了更真实地模拟用户的使用情况,以发现潜在的问题。
3. 自动化测试工具考虑使用自动化测试工具来提高测试效率和减少人为错误。
选择适合的工具,并进行相应的配置和脚本编写。
自动化测试可以覆盖更广泛的测试用例,并减少人工回归测试的工作量。
4. 错误日志记录在测试过程中,建议开启错误日志记录功能,以方便对测试过程和结果的分析和追踪。
错误日志记录可以帮助快速定位问题,并提供有效的解决方案。
5. 性能监测工具如果软件需要满足一定的性能指标,建议使用性能监测工具来评估软件在不同负载下的表现。
通过监测关键指标,如响应时间、吞吐量等,可以对软件的性能进行评估和调优。
三、测试环境和配置管理在整个测试过程中,应进行良好的测试环境和配置管理,以确保测试的可重复性和可靠性。
测试环境的规划与搭建测试环境是软件开发过程中一个非常重要的组成部分,它对于确保软件质量和稳定性起着至关重要的作用。
在测试环境的规划与搭建过程中,需要考虑到多个关键因素,包括硬件设备、软件配置、测试数据管理等。
本文将从这些方面对测试环境的规划与搭建进行详细阐述。
一、硬件设备在测试环境的规划中,首要的任务是确定所需的硬件设备。
这些设备可能包括服务器、客户端设备、网络设备等。
对于较大规模的测试环境,可以考虑使用虚拟化技术,以降低硬件投资和维护成本。
在选择硬件设备时,需要根据项目的需求和预算进行合理的配置,确保测试环境的性能和可靠性。
二、软件配置测试环境的软件配置是测试环境规划的另一个重要方面。
首先,需要确定适合项目需求的操作系统及版本,以及相关的开发和测试工具。
接下来,需要配置数据库、应用服务器、Web服务器等软件,并进行相应的参数调优。
此外,还需要建立版本控制系统,确保测试人员使用的软件版本一致,以减少因版本不一致导致的问题。
三、测试数据管理测试数据管理在测试环境规划中也是一个不可忽视的环节。
测试数据的准备和管理直接影响到测试的准确性和可靠性。
为了满足测试需求,需要收集和准备各种类型的测试数据,包括正常数据、异常数据、边界数据等。
同时,需要制定合理的测试数据管理方案,确保测试数据的有效性和安全性。
此外,还可以利用自动化测试工具或者脚本来生成和管理测试数据,提高测试效率。
四、环境监控与维护测试环境的监控和维护是测试环境规划的最后一个重要环节。
监控系统可以通过对关键指标的实时监测,及时发现和解决潜在问题,以确保测试环境的稳定性和可用性。
环境维护包括定期维护、备份与恢复、安全性管理等方面。
在测试环境规划的同时,需要建立相应的环境监控和维护机制,确保测试环境的可靠性和稳定性。
综上所述,测试环境的规划与搭建是一个复杂而又关键的任务。
通过合理的硬件设备选择、软件配置、测试数据管理和环境监控与维护,可以搭建出稳定、可靠的测试环境,从而确保软件质量和稳定性。
测试环境的部署与维护实践在软件开发过程中,测试环境的搭建和维护是至关重要的环节。
测试环境的质量直接影响到软件的质量和稳定性,因此测试环境的部署和维护实践也受到越来越多的关注。
一、测试环境部署测试环境的部署是对软件测试过程中所需环境的搭建和配置,包括硬件环境、操作系统环境、应用程序环境、数据库环境等方面。
测试环境部署需要遵循以下步骤:1. 硬件设备的选取和配置。
测试环境需要具备与生产环境相同或相近的硬件设备,用于模拟真实的生产环境。
在硬件设备配置方面,需要考虑测试所需的内存、处理器、硬盘等资源,以及能够支持测试所涉及的网络架构、存储、备份等方面的硬件设备。
2. 操作系统的安装和配置。
测试环境需要安装并配置与生产环境相似的操作系统,以确保测试环境与生产环境的软件支持环境相同。
例如,如果生产环境使用的是Linux操作系统,那么测试环境也应该使用Linux操作系统,并确保与生产环境相同的操作系统版本和配置。
3. 应用程序的安装和配置。
测试环境需要安装和配置与生产环境相同的应用程序,以确保能够充分验证软件在生产环境中的行为。
例如,如果软件在生产环境中运行在Tomcat服务器上,那么测试环境也应该安装和配置Tomcat服务器,并确保与生产环境相同的版本和配置。
4. 数据库的安装和配置。
测试环境需要安装并配置与生产环境相同或类似的数据库,以确保软件在生产环境中的数据存储和访问行为能够得到充分的验证。
例如,如果生产环境使用的是Oracle数据库,那么测试环境也应该安装和配置Oracle数据库,并确保与生产环境相同的版本和配置。
5. 测试工具和脚本的准备。
测试环境部署还需要准备相应的测试工具和脚本,用于验证软件在测试环境中的性能、可靠性、安全性等方面的表现。
例如,可以使用JMeter进行性能测试,使用Selenium进行UI自动化测试,使用OWASP ZAP进行安全测试等。
二、测试环境维护测试环境部署完成后,还需要进行定期的维护,以确保测试环境的稳定性和可用性。
软件测试中的测试环境搭建与管理一、引言在软件测试过程中,测试环境的搭建与管理是非常重要的一项任务。
测试环境的搭建与管理是为了模拟真实的软件运行环境,以便进行各种测试活动,包括功能测试、性能测试、安全测试等。
本文将介绍软件测试中的测试环境搭建与管理的相关内容。
二、测试环境搭建1. 硬件设备准备在进行测试环境搭建之前,首先需要准备相应的硬件设备。
这包括计算机、服务器、网络设备等。
根据测试需求,确定所需硬件设备的类型、数量和配置要求。
2. 软件安装与配置在确定硬件设备后,需要进行软件的安装与配置。
根据测试需求,选择合适的操作系统、数据库、应用程序等软件,并按照规定的步骤进行安装与配置。
3. 网络搭建测试环境中的设备通常需要进行网络连接,以实现各个设备之间的通信。
根据测试需求,进行网络的搭建与配置,确保各个设备间的通信畅通。
4. 数据准备在进行软件测试时,通常需要使用一些测试数据。
根据测试需求,确定所需的测试数据,并进行相应的准备工作,包括数据的采集、整理和导入等。
三、测试环境管理1. 环境配置管理测试环境的配置管理是指对测试环境的各种配置信息进行管理,包括硬件配置、软件配置、网络配置等。
通过配置管理工具,可以对测试环境进行版本控制、变更管理等,确保测试环境的稳定性和一致性。
2. 环境访问控制为了保护测试环境的安全性,需要对测试环境进行访问控制。
只有经过授权的人员才能够对测试环境进行访问和操作。
可以通过账号、密码、权限等方式实现环境的访问控制。
3. 环境监控与维护测试环境的稳定性和可用性对测试工作的顺利进行至关重要。
因此,需要对测试环境进行监控和维护。
监控测试环境的硬件设备、软件运行情况,及时发现并解决问题,确保测试环境的正常运行。
4. 环境复制与恢复在进行某些测试活动时,可能需要对测试环境进行复制和恢复操作。
比如测试某个特定场景时的环境快照,或者在测试出现问题时的环境恢复等。
通过环境的复制与恢复,可以提高测试的效率和质量。
测试环境的搭建与维护实践随着软件开发和测试的不断发展,测试环境搭建与维护成为一个重要且具有挑战性的任务。
在软件开发的不同阶段,测试环境被用于模拟真实生产环境,以确保软件在不同平台上的正常运行。
本文将介绍测试环境的搭建与维护的实践。
测试环境的搭建是一个复杂的过程,需要考虑到硬件、软件和网络等方面的因素。
为了搭建一个稳定可靠的测试环境,需要选择适合的硬件设备。
硬件设备的性能和配置应当与目标生产环境相近,以保证测试结果的准确性和可靠性。
合适的操作系统和软件平台对于测试环境的搭建也至关重要。
根据测试需求,选择适当的操作系统和软件组件,确保测试环境的兼容性和稳定性。
网络也是测试环境搭建的一个关键因素。
测试环境需要与其他系统和服务进行通信,所以需要确保网络连接的稳定性和速度。
在测试环境搭建完成后,维护测试环境的可靠性和稳定性是一个持续的过程。
需要实施合适的安全措施来保护测试环境的数据和系统安全。
例如,定期更新操作系统和软件组件的安全补丁,限制对测试环境的访问权限,加密敏感数据等。
定期备份和恢复测试环境的数据是维护测试环境的重要一环。
任何失误或故障都可能导致数据丢失,因此定期备份数据并测试恢复过程是非常必要的。
定期监测测试环境的性能和资源利用率也是维护测试环境的一项重要任务。
通过监测性能指标,可以及时发现和解决性能问题,提高测试环境的稳定性和可靠性。
自动化测试在测试环境搭建与维护中起到关键作用。
自动化测试工具可以大大减轻测试人员的工作负担,提高测试效率和准确性。
通过使用自动化测试工具,可以自动执行测试用例、生成测试报告、自动生成测试数据等。
自动化测试还可以帮助测试人员识别和解决测试环境中的问题,提高测试环境的稳定性和可靠性。
除了技术层面的搭建与维护实践,测试环境的管理与协调也是不可忽视的一部分。
测试环境应当有明确的责任人,负责测试环境的规划、搭建、维护和管理。
测试环境的规划应与项目进度紧密结合,确保测试环境能够满足及时进行测试的需求。
软件测试中的测试管理与测试执行关键步骤与最佳实践软件测试是软件开发生命周期中至关重要的一环。
通过对软件进行系统的测试,可以发现和修复潜在的缺陷,确保软件的质量和稳定性。
在软件测试过程中,测试管理和测试执行是两个关键环节,通过良好的管理和执行,可以提高测试的效率和准确性。
本文将介绍软件测试中测试管理与测试执行的关键步骤与最佳实践。
一、测试管理测试管理是测试过程中的组织和协调工作,它负责制定测试策略、安排测试资源、跟踪测试进度等。
以下是测试管理中的关键步骤和最佳实践:1. 确定测试目标和范围在开始测试之前,首先需要明确测试的目标和范围。
测试目标是指测试的目的,例如发现软件中的错误、保证软件功能的正确性等。
测试范围则是指测试的覆盖范围,包括被测软件的功能模块、业务流程等。
确定清晰的目标和范围有助于提高测试的效率。
2. 制定测试计划测试计划是指对测试活动进行详细规划和安排的文档。
在制定测试计划时,需要定义测试的策略、方法和技术,确定测试的时间和资源,并制定测试的执行计划和进度安排。
测试计划应该根据具体的项目需求进行调整和定制,确保测试的全面和有效。
3. 配置测试环境测试环境是进行软件测试所必需的硬件和软件资源。
在配置测试环境时,需要根据测试的需求选择合适的硬件设备和软件工具,确保测试环境的稳定和可靠。
同时,还需要对测试环境进行管理和维护,及时更新和修复环境中的问题。
4. 分配测试任务测试任务的分配是指将测试工作分配给相应的测试人员或测试团队。
在分配测试任务时,需要根据测试人员的技能和经验,合理安排测试工作的负载和优先级。
同时,还需要明确测试任务的要求和目标,确保测试人员能够正确理解和执行测试任务。
5. 跟踪测试进度和缺陷测试进度和缺陷的跟踪是测试管理中的重要环节。
通过跟踪测试进度,可以及时了解测试的状态和进展情况,对测试工作进行有效的监控和调整。
同时,跟踪缺陷可以帮助发现和解决测试过程中出现的问题,确保软件质量的提高。
测试环境是指为了完成软件测试工作所必需的计算机硬件、软件、网络设备、历史数据的总称。
毫无疑问,稳定和可控的测试环境,可以使测试人员花费较少的时间就完成测试用例的执行,也无需为测试用例、测试过程的维护花费额外的时间,并且可以保证每一个被提交的缺陷都可以在任何时候被准确的重现。
简单的说,经过良好规划和管理的测试环境,可以尽可能的减少环境的变动对测试工作的不利影响,并可以对测试工作的效率和质量的提高产生积极的作用。
一、规划测试环境——让环境为你服务
对于“金山词霸”这样的软件,大多数测试工作都可以在一台单独的电脑上完成,而对于一套电信系统,为了执行测试用例,你可能会需要搭建一个由多台计算机以及其他网络设备组成,采用集群和负载均衡技术,并且接驳到Internet的计算机网络。
不同的行业应用,不同的质量目标,都可能会影响到测试环境的规划。
但从测试工作自身的要求来看,一条应当遵守的原则就是“尽可能的还原软件在用户那里最终实际运行的环境”——虽然在很多时候这是不现实的。
^_^
通常来说,我们所需要搭建的环境,主要是用于被测应用的系统测试——单元测试和集成测试由开发人员在开发环境中进行,而验收测试则在用户的最终应用环境中进行,因此都可以暂不考虑。
为了确定测试环境的组成,我们需要明确以下问题:
1. 所需要的计算机的数量,以及对每台计算机的硬件配置要求,包括CPU的速度、内存和硬盘的容量、网卡所支持的速度、打印机的型号等;
2. 部署被测应用的服务器所必需的操作系统、数据库管理系统、中间件、WEB服务器以及其他必需组件的名称、版本,以及所要用到的相关补丁的版本;
3. 用来保存各种测试工作中生成的文档和数据的服务器所必需的操作系统、数据库管理系统、中间件、WEB服务器以及其他必需组件的名称、版本,以及所要用到的相关补丁的版本;
4. 用来执行测试工作的计算机所必需的操作系统、数据库管理系统、中间件、WEB服务器以及其他必需组件的名称、版本,以及所要用到的相关补丁的版本;
5. 是否需要专门的计算机用于被测应用的服务器环境和测试管理服务器的环境的备份;
6. 测试中所需要使用的网络环境。
例如,如果测试结果同接入Internet的线路的稳定性有关,那么应该考虑为测试环境租用单独的线路;如果测试结果与局域网内的网络速度有关,那么应该保证计算机的网卡、网线以及用到的集线器、交换机都不会成为瓶颈;
7. 执行测试工作所需要使用的文档编写工具、测试管理系统、性能测试工具、缺陷跟踪管理系统等软件的名称、版本、License数量,以及所要用到的相关补丁的版本。
对于性能测试工具,则还应当特别关注所选择的工具是否支持被测应用所使用的协议;
8. 为了执行测试用例,所需要初始化的各项数据,例如登陆被测应用所需的用户名和访问权限,或其他基础资料、业务资料;对于性能测试,还应当特别考虑执行测试场景前应当满足的历史数据量。
当然,还有另外一个非常关键的问题:在测试过程中受到影响的数据如何恢复?
明确了上面的问题后,明确哪些条件是可以满足的,哪些是需要其他部门协助调配、采购或者支援的。
建议在搭建测试环境之前,把上面的问题做成一张 CheckList,并为每一项指定一个责任人,完成一项就填写一项,最终形成的文档则作为测试环境的配置说明文档使用。
当然,如果时间或其他条件允许,应当做好应急预案,尽量保证在环境失效时不会对正常工作产生太大的影响。
二、管理测试环境——把变化掌握在手中
测试环境搭建好以后不太可能永远不发生变化,至少被测应用的每次版本发布都会对测试环境产生或多或少的影响。
而应对变化之道,不是禁止变化,而是“把变化掌握在手中”。
下面的这些建议可以帮助你尽可能摆脱环境变化所带来的不利影响。
1. 设置专门的测试环境管理员角色
每个测试项目或测试小组都应当配备一名专门的测试环境管理员,其职责包括:
测试环境的搭建。
包括操作系统、数据库、中间件、WEB服务器等必须软件的安装,配置,并做好各项安装、配置手册的编写;
记录组成测试环境的各台机器的硬件配置、IP地址、端口配置、机器的具体用途,以及当前网络环境的情况;
完成被测应用的部署,并做好发布文档的编写;
测试环境各项变更的执行及记录;
测试环境的备份及恢复;
操作系统、数据库、中间件、WEB服务器以及被测应用中所需的各用户名、密码以及权限的管理;
当测试组内多名成员需要占用服务器并且相互之间存在冲突时(例如在执行性能测试时,在同一时刻应当只有一个场景在运行),负责对服务器时间进行分配和管理。
2. 明确测试环境管理所需的各种文档
一般来说,下面的几个文档是必需的,当然你也可以根据需要增加新的文档。
组成测试环境的各台计算机上各项软件的安装配置手册,记录各项软件的名称、版本、安装过程、相关参数的配置方法等,并记录好历次软件环境的变更情况;
组成测试环境的各台机器的硬件环境文档,记录各台机器的硬件配置(CPU/内存/硬盘/网卡)、IP地址、具体用途以及历次的变更情况;
被测应用的发布手册,记录被测应用的发布/安装方法,包括数据库表的创建、数据的导入、应用层的安装等。
另外,还需要记录历次被测应用的发布情况,对版本差异进行描述;
测试环境的备份和恢复方法手册,并记录每次备份的时间、备份人、备份原因(与上次备份相比发生的变化)以及所形成的备份文件的文件名和获取方式;
用户权限管理文档,记录访问操作系统、数据库、中间件、WEB服务器以及被测应用时所需的各种用户名、密码以及各用户的权限,并对每次变更进行记录。
3. 测试环境访问权限的管理
应当为每个访问测试环境的测试人员和开发人员设置单独的用户名,并根据不同的工作需要设置不同的访问权限,以避免误操作对测试环境产生不利的影响。
下面的要求可以作为建立“测试环境访问权限管理规范”的基础。
访问操作系统、数据库、中间件、WEB服务器以及被测应用等所需的各种用户名、密码、权限,由测试环境管理员统一管理;
测试环境管理员拥有全部的权限;
除对被测应用的访问权限外,一般不授予开发人员对测试环境其他部分的访问权限。
如的确有必要(例如查看系统日志),则只授予只读权限;
除测试环境管理员外,其他测试组成员不授予删除权限;
用户及权限的各项维护、变更,需要记录到相应的“用户权限管理文档”中。
4. 测试环境的变更管理
对测试环境的变更应当形成一个标准的流程,并保证每次变更都是可追溯的和可控的。
下面的几项要点并不是一个完整的流程,但是可以帮助你实现这个目标。
测试环境的变更申请由开发人员或测试人员提出书面申请,由测试环境管理员负责执行。
测试环境管理员不应接受非正式的变更申请(例如口头申请);
对测试环境的任何变更均应记入相应的文档;
同每次变更相关的变更申请文档、软件、脚本等均应保留原始备份,作为配置项进行管理;
对于被测应用的发布,开发人员应将整个系统(包括数据库、应用层、客户端等)打包为可直接发布的格式,由测试环境管理员负责实施。
测试环境管理员不接受不完整的版本发布申请;
对测试环境做出的变更,应该可以通过一个明确的方法返回到之前的状态。
5. 测试环境的备份和恢复
对于测试人员来说,测试环境必须是可恢复的,否则将导致原有的测试用例无法执行,或者发现的缺陷无法重现,最终使测试人员已经完成的工作失去价值。
因此,应当在测试环境(特别是软件环境)发生重大变动(例如安装操作系统、中间件或数据库,为操作系统、中间件或数据库打补丁等对系统产生重大影响并难以通过卸载恢复)时进行完整的备份,例如使用Ghost对硬盘或某个分区进行镜像备份。
并由测试环境管理员在相应的“备份记录”文档中记录每次备份的时间、备份人以及备份原因(与上次备份相比发生的变化),以便于在需要时将系统重新恢复到安全可用的状态。
另外,每次发布新的被测应用版本时,应当做好当前版本的数据库备份。
而在执行测试用例或性能测试场景之前,也应当做好数据备份或准备数据恢复方案,例如通过运行SQL
脚本来将数据恢复到测试执行之前的状态,以便于重复的使用原有的数据,减少因数据准备和维护而占用的工作量,并保证测试用例的有效性和缺陷记录的可重现。