空闲之余,接到老大的通知,说有时间了解下协议级及框架级的测试,类似应用服务器的测试,目前针对这一块的知识比较缺乏,于是立即Google了一把!
协议测试已经成为计算机网络和分布式系统协议工程学中最活跃的领域之一。近年来,协议一致性测试技术得到了很好的发展和完善,与此同时,互操作测试和性能测试逐渐成为新的研究热点。
协议测试包括四种测试:
1.一致性测试(Conformance):检测所实现的系统与协议规范符合程度;
2.性能测试(Performance):检测协议实体或系统的性能指标(数据传输率、联接时间、执行速度、吞吐量、并发度等);
3.互操作性测试(Interoperability):检测同一协议不同实现版本之间、或同一类协议(如电子邮件协议x.400和SMTP)不同实现版本之间互通能力和互连操作能力;
4.坚固性测试(Robustness):检测协议实体或系统在各种恶劣环境下运行的能力(信道被切断、通信技术掉电、注入干扰报文等)。
在测试协议时,大多数测试者的习惯是遵循制定的业务协议流程,进行协议的正确性测试,间或进行协议的保护与边界值测试。
但是,这种测试思路可能存在比较大的漏洞。协议测试必须包括2个方面:
1.协议数据的测试。
2.协议时序的测试。
协议数据测试比较好理解。例如协议数据正确、错误、边界等典型数据的交互测试,类似一致性测试。
协议时序测试是指协议业务流程发生变化情况下待测设备对协议的处理情况。例如B流程的发起的前提条件是A流程的结束,那么在不执行A流程的情况下直接执行B流程,软件是否能够响应?在一个交互性业务流程协议A中,待测设备发起协议,在没有收到回复协议的情况下,收到业务流程B的协议,软件是否响应?