2. 性能测试
有的系统虽然某些功能暂时性能不理想,但随着程序算法的优化,系统性能提高很大,能很好地满足业务的扩展性。这说明系统的架构设计很合理,算法的完善、改进优化是比较容易实现的。这样的系统通过性能测试比较容易发现问题、改善系统性能质量。
通过系统上线前的性能测试,可以对系统主要功能进行抽样检测,从而基本确定一定条件下系统的预期性能,识别系统可能存在的性能瓶颈;
3. 体会
根据很多项目的开发规律,在设计阶段项目进度相对比较宽松,但项目上线前一般非常紧张,此时主要精力放在了完成业务功能以及数据逻辑处理的正确性上,对性能测试提出的问题可能无暇顾及。
因此,比较可行的方案是:
1)重视架构设计,对系统主要架构、关键技术、核心数据设计、统一规范等利用原型进行实现,在开发过程中,通过理论分析与类比、专家评审、代码走查、程序运行验证等手段,确认系统能满足用户需求及对产品的定位;
2)在系统上线前利用Loadrunnert等性能测试工具,对系统整体性能进行验证和评价,保证系统上线时满足用户当前并发处理要求和主要功能的性能。对一般功能的性能问题,如时间、进度等不允许,可暂不关注和处理;
3)系统上线初期一般选择部分客户端试运行,必须密切跟踪生产环境下系统性能随着数据量、业务量、用户量变化而下降的幅度。如条件允许,可开启数据库监控开关,或者通过监控服务器日志、应用日志等手段,分析实际生产环境下性能不理想的功能模块,结合性能测试结果,以及用户的实际感受和反映,对具体功能的设计及算法进行优化;
4)如果通过对具体功能的设计及算法进行优化,不能有效提高系统的可靠性和性能,需要重新评价系统的架构、技术实现、数据设计等是否合理。
3.2 如何做好架构测试?
总结各项目的测试过程,架构测试的难点:
1. 架构测试内容与手段:架构测试需要测试的内容包括系统的主要架构、关键技术、核心数据设计、统一规范等,需要具备行业高水平的专家进行评审,以及需要编制各种测试脚本进行程序运行验证;
2. 测试的基准难以把握:例如对综合业务系统产品,IBM P55A作为服务器,一定数据量的前提下,系统能支持多少用户、响应时间在什么范围内可以认为通过测试?这就需要我们对产品性能指标有个清晰的定位,像是access、Sql Server、Oracle各有不同的性能指标。
3. 测试人员对系统的理解难以达到一定深度,为了证明而去测试是没有任何价值的,关键是要发现产品性能上的缺陷,定位问题,解决问题,这才是测试要做的。
架构测试需要项目经理的协助、开发人员的大力支持,特别是,需要技术经理的全程参与。架构测试需要验证的是系统的核心架构、主要技术实现模式、核心数据库设计、统一规范等,这些工作需要技术经理的指导和帮助,对测试内容的确定、测试结果的分析、测试过程中需要编制的测试脚本等工作全力协助。
架构测试对测试工程师知识的深度和广度都是一个考验。对于复杂系统的架构测试,到底如何使用什么样的测试策略、如何分析测试需求、如何选取性能度量项的转换计算模型、如何确定测试内容和轮次、如何设计性能测试案例等等以及规划和实施性能测试中的其它诸多问题,都需要遵循一个系统的方法来解决。