来到新的公司里,已经快到3个月的时间,做着完全不同的事情。
在华为,除了日常工作以外,我接触到更多的是软件beta测试,我很喜欢这一块东西,可以和用户(或客户)打交道,可以做很多的统计分析,然后帮助软件更好的设计,满足用户(或客户)需求。 然后就是基站的维护,懂得了什么是集群技术(trunking not claster),熟称"push too talk",认识到了很多年龄相近、志趣相投、性格相仿的同事,一年过的很快。但想到自己可能一辈子和通信无缘,最终选择了离开,去寻找另外一片天空。
一开始接触更多是自动化测试,尤其是性能测试方面的工作,没有任何经验可谈,一点一点的开始积累,先从概念开始。
首先,对于性能测试方面的相关概念就有很多,例如性能测试(performance testing)、压力测试(stress testing)、负载测试(load testing)等等。它们之间有区别,但也有联系,从目的到技术都有所差别。
从我参看的各种测试的资料的理解上来看,性能测试和负载测试是一件事物的两个方面,而压力测试是将以上两种测试结合起来,然后再加上时间参数或者增加大量的并发事件,进行的极限黑盒测试。
所谓性能测试,其测试的对象是服务器端或源代码是否可以承受,通过一些服务器端安装的观测工具将其监视出的各项性能指标(例如cpu,memory,hard disk utilization,DB calls)进行分析,得到结论,程序结构,数据库的结构设计是否合理,服务器端的硬件是否可以承受的起较大的冲击,或者对较大冲击的处理是否合理,有时候也需要得到客户端的性能指标。它是从白盒或程序级的角度去分析问题。
大体上性能测试可以分成以下个层次:1、应用层,2、数据库层,3、系统层,4、网络层
另外,在做性能测试之前,我们应该在测试之前将以下两个指标确定下来,以便有测试的方向:
根据当前的用户数量估计出的期望负载。
(expected load in terms of concurrent users or HTTP connections)
合理的响应时间(acceptable response time )
run load test->measure performance->tune system
而负载测试,则是从黑盒的角度去模拟现实中大量用户使用系统或网站的情况,它更期望得到的是客户端的响应时间。也是我们常常使用一些工具,如JMeter, opensta,The Grinder 等等,实现的一些方法。这些也正是大多数测试人员所做的所谓“性能测试”。它的目的是证明系统可以承受预定负载的。
相反,压力测试,是证明系统不能承受的界限,它的目的是要让系统崩溃,找出极限范围。并给出合适的解决方法。 "把系统搞死是压力测试的目的"。在有限的硬件资源条件下,大数据量,大用户并发,可以达到压力测试的目的。压力测试的过程可以独立开来。
总结起来,测试性能是以下过程的重复:
run load test->measure performance->tune system
感谢以下连接:
http://agiletesting.blogspot.com/2005/02/performance-vs-load-vs-stress-testing.html
http://testing.csai.cn/testtech/200612291051321768.htm
推荐几本有关网络测试的书籍
"Testing computer software" by Kaner et al
"Software testing techniques" by Loveland et al
"Testing applications on the Web" by Nguyen et al.
Sunday, January 07, 2007
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment