系统测试将软件作为一个完整的、集成的产品进行测试,证实其是不是符合需求规格说明中的所有功能性和非功能性要求。系统测试从用户角度出发,在尽可能真实的环境中进行端到端证实。
测试范围和方面
系统测试是多方面的全面证实,包括以下重点方面:
功能性测试
证实所有需求规格说明中的功能点
测试正常流程、异常流程和替代流程
证实业务规则和数据处理思路
非功能性测试
性能测试:包括负载测试、压力测试、并发测试、耐久性测试
安全测试:证实认证、授权、数据加密、漏洞防护等安全特性
兼容性测试:测试不同操作系统、浏览器、设备、数据库版本的兼容性
可用性测试:考虑用户界面友好性、操作便捷性和用户体验
可靠性测试:证实系统在长时间运行和异常条件下的稳定性和恢复能力
可安装性/可部署性测试:证实安装过程和部署流程的顺畅性
测试环境和数据管理
系统测试对环境有严格要求:
环境真实性:尽可能模拟生产环境,包括硬件配置、网络拓扑、软件版本
数据准备:需要精心设计测试数据,包括各种业务情形和边界条件
环境隔离:保证测试环境和开发、生产环境隔离,避免相互影响
配置管理:严格管理测试环境的配置,保证测试结果的可重复性
测试设计和执行方法
系统测试一般采用黑盒测试方法,测试设计根据:
需求规格说明:直接映射需求到测试用例
用例情形:模拟真实用户使用情形
业务流程图:包括所有业务流程途径
风险分析:优先测试高风险区域和重要功能
探索性测试:结合系统知识和测试经验进行非脚本化探索
自动化和手工测试的平衡
系统测试中自动化和手工测试的适当平衡非常重要:
回归测试:高度自动化,保证已修复缺陷不再复发
新功能测试:初期手工测试为主,逐步转化为自动化用例
探索性测试:以手工为主,发挥测试人员的经验和创造力
性能和安全测试:主要依赖自动化工具和脚本