关闭

浅谈SQL Server Engine GQL测试

发表于:2010-3-31 13:32

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:刘志(CSDNBlog)    来源:51Testing软件测试网采编

  摘要:

  近三年来(2007年7月至今),笔者作为一家软件外包公司的外派员工有幸参与了软件跨国公司MS的SQL Server数据库软件产品的核心模块 SQL server Engine(数据库引擎)的测试工作。由于该款数据库产品是世界级的。为确保  SQL server Engine的质量,使之高效、稳定、可靠的为用户提供高质量的服务,可想而知,MS公司对它的测试是非常严格的。无论从GQL 测试用例选择、GQL测试的方法、测试流程、测试工具、测试管理、团队的建设等方面,都有一套完整、严密的方案。本文就以上几个方面来分别加简述,并就其中存在的问题与大家探讨。

  正文:

  SQL server Engine是SQL Server的核心,保证SQL server Engine高效的、可靠的为用户提供高质量的应用就成为测试的重中之重。SQL server Engine的测试单靠测试团队是不可能完成的,它必须依靠产品开发团队、build团队、测试团队、测试执行团队、测试管理团队的共同合作才能最终完成。

  MS产品组对SQL server Engine(数据库引擎)采用GQL(Guaranteed Quality Level质量保证级别)测试。

  一、测试用例的选择:

  1. 由于该款产品针对引擎的测试用例开发已经经过近二十年的积累,总数已达到几十万个。那么要想从中选出必要的GQL测试用例,就要根据引擎的模块划分,从中选出代表性的测试用例,使所有核心功能被覆盖到。从而达到质量保证测试的目的。

  2. GQL用例也不是选择好后就一成不变了。它会随着产品开发的推进和测试的不断重复实施,针对新的特性(feature)的加入和QFE(Quick Fix Engineering)、CU(Cumulate Update)、 OD(On Demand) 等数据库补丁的不断产生,要不断补充增加新的测试用例。

  GQL测试的目的是保证产品开发没有重大的缺陷(defect or bug),但通过GQL测试的build不能说就不存在其他类型的bug,还需要由其他测试如FullFunctional全功能测试、 Stress压力测试、Performance性能测试来检测。

  二、测试方法的选择

  由于该款数据库产品的产品线非常宽,最新版本根据新增功能的不同,会从产品主线中分成许多不同的分支,每一个分支 称为一个improvement,而已经发布的产品也有很多improvements,也要不断的维护,这样所有的improvements加起来的数量就有几十或者上百个之多。针对这些分支的GQL测试也就相当繁重。因此必须采用自动化测试的方法!

  目前GQL测试执行、测试结果记录已经是自动化运行。但针对测试的结果分析和缺陷的提交、跟踪还必须由人工干预。

  三、测试的流程

  SQL server Engine(数据库引擎)的测试需要多个Team合作执行。首先,由improvement team提出申请,然后TE team(测试执行团队)根据提出的申请配置测试环境,准备机器。并开始执行测试。当全部测试执行完毕。交给SQL China VAT ( China Vendor Assistant Team中国测试辅助团队,由软件外包公司招募) 进行测试结果的调查,并提交Product bug或Test bug 到Bug 库中。开发人员和测试人员根据SQL China VAT Team提交的bug进行bug种类的确认和修复,同时SQL China VAT Team也承担一部分测试bug 的修复工作。测试人员可以指导Vendor Team如何进行测试bug 的修复。

  四、测试的组织管理:

  由于各个团队在地理上分布在不同的国家,比如开发人员和测试人员在美国, 测试执行团队在美国,SQL China VAT Team在中国北京。根据这些地方的时差,再根据每轮测试优先级不同,又将测试分为P0, P1, P2等不同的级别。 对于P0的测试,在GQL 测试执行完成后,美国的测试团队或SQL China VAT Team在当天工作日必须马上响应,并在8小时内(当天的工作日内)将测试结果调查完毕,同时提交测试总结报告。将测试发现的bug列表提交给美国的开发和测试团队,以便于在他们的工作日及时对Vendor Team所开具的bug 进行分析并修复。以此类推,对于P1的测试,Vendor Team可在48小时内提交测试结果。P2的时间可相对更长,在72小时内。

  五、测试使用的工具

  针对如此重要的一款产品,如此庞大的测试规模,如果没有一套完整,稳定可靠的测试架构作为支撑,可以想象测试是无法顺利有效进行下去的。

  a) MS公司针对SQLServer的测试框架使用的是WTT(Windows Test Technology),WTT提供的功能主要有,测试的调度执行、测试结果的收集、测试机器的维护和管理、测试任务的(JOB)开发和维护。

  b) 测试用例的开发和调试工具:Meta(Multi-Environmet Testing Automation)专门用于测试用例的开发和调试。在该集成开发工具里,可以使用command-line、Javascript\vbscript等方式编辑测试脚本。也可以使用T-SQL脚本编辑测试用例。甚至可以导入用VSTS开发的复杂的测程序源码,并在运行测试时动态编译出该测试可执行程序或者动态DLL库, 并由Meta自己将该程序它加载到他的程序运行空间动态的执行。Meta同时还对外提供多个接口,可自动加载符合Meta定义的,由特殊类型测试所需要的测试模块,供测试结果的过滤功能、特殊验证功能等用。

  c) 测试用例、程序源代码管理工具:MS用SD(Source depot)进行测试用例、程序源代码的管理,这个源码管理工具功能十分强大。首先它是基于微软全球网络的,而不单单是一个公司内部网络的,也就是它是基于广域网的。其次,它支持多人同时对源码进行迁入迁出,不似SourceSafe那样,如果一个人对源码进行了迁出,则该文件就处于锁定状态,其他人无法对它再进行修改的操作了。 既然SD允许多人同时对同一文件进行修改,那么如果再迁回SD库是,就可能产生冲突。SD提供了非常好的冲突解决方案,可使开发、测试人员方便地进行冲突的解决。同时SD提供命令行和图形用户两种操作方式供,大家可以根据自己的使用偏好任选其中一种。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号