功能测试的准备工作主要分为两大块:搭建稳固的测试环境,和制定清晰的测试方法。
环境搭建指南
一个理想的测试环境应该是和生产环境高度一致的,可以按照以下步骤来搭建:
第一步:确定测试需求
先要和开发、产品经理确定本次测试的目的和范围。包括确定是Web、App还是API测试,需要哪些操作系统、浏览器或设备,预期的并发用户量,以及是不是需要和第三方服务联调。
第二步:规划硬件和软件资源
硬件:服务器的CPU、内存等配置应参考生产环境规格,避免因资源不足导致功能异常。
软件:操作系统、数据库(如MySQL, PostgreSQL)、Web服务器(如Nginx)、运行时环境(如JDK)等,其版本必须和生产环境严格保持一致。版本差别可能导致假阳性或假阴性的测试结果。
第三步:准备测试数据
准备测试数据为了包括各种情况,需要准备正常数据、边界数据、异常数据、特殊字符和大数据量等多样化的数据。同时注意数据安全性,避免使用真实的敏感信息。
第四步:部署测试应用
将待测的应用包部署到配置好的服务器上,保证所有依赖的服务都已启动,并建议保留部署日志,以便在出现问题时排查。
第五步:配置网络和安全方法
保证测试网络和办公网或开发网隔离,避免相互影响。同时,正确配置防火墙规则、端口号等,保证测试流量能够访问服务器。
第六步:安装和配置测试工具
Web端:Selenium、Playwright、Cypress等。
App端:Appium、云真机平台(如WeTest)。
接口/性能:Postman、JMeter、LoadRunner等。
缺陷管理:Jira、禅道、TAPD等,用于记录和跟踪Bug。
环境维护:使用Docker可实现一次创建,随处运行,是保持环境一致性的利器。此外Ansible、Puppet等工具也能自动化环境配置和管理。
第七步:环境
在正式测试前,必须进行一次冒烟测试,手动执行几个流程保证所有组件都能正常工作。
其他准备工作
除了环境,测试方法和工具的准备工作也同样重要。
需求分析:深入理解产品需求文档,和相关人员充分沟通,确定测什么和怎么测。功能测试是保证软件的实际行为和需求规格、用户预期一致。
测试用例设计常用的方法有:
等价类划分:将输入数据分类,用代表性数据代替穷举测试。
边界值分析:重点重视输入范围的边界(如最小值、最大值)。
场景法:模拟真实用户的操作途径,设计完整的业务流程测试。
正向和反向:证实系统在正确输入下的行为,也证实其在错误输入下的容错能力。
测试数据准备:准备好账号、权限、基础数据和业务数据,并保证数据可重复使用,支持多轮回归测试。
缺陷管理流程:确定Bug的生命周期(如:提交->确定->修复->测试->关闭)以及严重程度分级标准。
自动化和不断集成(CI):将自动化测试流程集成到CI/CD流水线(如Jenkins)中,实现代码提交后自动触发测试,快速反馈。
完成以上所有准备后再对照下面的清单检查一下:
环境隔离:是不是完全独立,不影响开发和其他测试环境?
配置一致:软件版本、数据库、网络配置等是不是和生产环境或预期一致?
数据完整:是不是准备了包括各类场景的测试数据?
工具就绪:所需的测试工具是不是已安装并配置好?
文档齐全:测试计划、测试用例等文档是不是已完成?
流程清晰:缺陷提交流程和标准是不是已确定?