微软全球测试体系精髓

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

微软全球测试体系之精髓--------汪胜2010-11-021.软件测试团队的核心目标2.微软研发团队的角色分工3.微软研发团队的流程4.微软开发与测试的规划5.产品测试的背景知识6.产品测试的具体流程7.产品测试的具体分类8.一个微软测试工程师的一天9.微软测试的精髓10.目前业界的发展方向目录子曰:百战百胜,非善之善者也;不战而屈人之兵,善之善者也。故上兵伐谋,其次伐交,其次伐兵,其下攻城。攻城之法,为不得已。《孙子兵法.谋攻篇》•说法一:找BUG呗,确保软件产品没有BUG•说法二:测试团队的核心目标是对软件质量负责•说法三:测试团队的核心目标是提高软件质量•说法四:找到了迄今为止没有发现过的BUG没找到BUG的测试工程师是在浪费时间软件测试团队的核心目标软件测试的两种主流方法:•第一类测试方法是试图验证软件是“工作的”,所谓“工作的”就是指软件的功能是按照预先的设计执行的(Dr.BillHetzel1972);•第二类测试方法则是设法证明软件是“不工作的”(GlenfordJ.Myers1979)•微软在软件测试活动中将两类方法结合起来,以第一类测试方法为基础和主要线索,阶段性地运用第二类测试方法。软件测试团队的核心目标微软的理解:•QualityMeasurement:Thepurposeofsoftwaretestingistoassessorevaluatethecapabilitiesorattributesofasoftwareprogram’sabilitytoadequatelymeettheapplicablestandardsandcustomerneeds.•Pushingqualityupstreamthroughdefectprevention:Testing!=FindingbugsFormalSpecInspection,codereviews,doingtestearlyinthecycle,document/samplecodereviews•CustomerFocus:WatsonDataPSSData软件测试团队的核心目标•程序经理(ProgramManager)设计产品并编写功能规格书跟踪总体项目进程跟踪竞争对手动态访问用户参加大型技术发布会•开发小组(DevelopManager,Devlead,SDE)预研开发实现细节编写设计规格书编码与实现软件模块修改优化代码并修补BUG微软研发团队的角色分工•测试小组(TestManager,Testlead,SDET)编写软件功能模块测试规格书编写自动测试工具编写测试代码运行测试程序并报告结果汇报软件BUG并验证BUG修改结果对于每日的构建结果或以发布产品的补丁运行回归测试•用户教育编写组(UserEducation)编写用户帮助文件编写用户示例与PSS合作编写知识库(knowledgebasearticle)微软研发团队的角色分工•M0—M3:Milestone0-3,canhavemini-milestone3.1,3.2,3.3,etc•Alpha:Earlyadopterpreview•Beta:AnnounceatPDC(ProfessionalDeveloperConference)•RC1-2:ReleaseCandidate•RTM:ReleasetoManufacture微软研发团队的流程简介微软开发与测试的规划产品测试的背景知识•编程过程中,每写100行代码会犯150个错误•编程与编译运行结束后,每100行代码中大约残留1-3个BUG•寻找与修改程序错误的代价占总体开发投资的40%-80%•BUG在整个研发流程中被发现的越早,修改的代价就越低•在微软内部,大家是怎样利用这些原理的呢?产品测试背景知识•计算机科学经典之作——《TheArtofComputerProgramming》Author:Donald.E.Knuth,计算机程序设计艺术,被誉为20世纪最重要的20部着作之一,与Einstein的相对论并列,是计算机科学领域的权威著作•DonaldE.Knuth(唐纳德.E.克努特,中文名高德纳)号称没有BUG的人:36岁获得图灵奖,是最年轻的获得者•TEX,1989,Itstartedat$2.56,anddoubledeveryyearuntilitreached$327.68•如果你认为你是一名真正优秀的程序员……读Knuth的计算机程序设计艺术,如果你能读懂整套书的话,请给我发一份你的简历.----BillGates产品测试背景知识•测试过程从产品设计开始•SpecReview非常重要•微软产品SpecReview演示•SharepointServer的应用•测试代码编写由软件开发设计者自已开始•DRT(DeveloperRegressionTest)的重要性•没有相随的DRT,FeatureArea不算开发完•DRT不全部编译并100%通过,不允许Check-in•测试组的测试不100%编译并100%通过0级测试(BVT,BuildVerificationTest),70%通过1级测试,不允许Check-in产品测试的具体流程•测试代码主体由软件测试工程师(SDET,STE)编写•测试从写软件测试规格书开始•测试规格书必须通过PM,Dev与同组的Tester共同开会研究通过•测试代码根据不同测试的情景分为0-4级的优先级•O级测试称为BVT(BuildVerificationTest)•在Dev主要的功能实现Check-in前,0-1级测试代码必须已由测试工程师完成•产品编译由构建团队每日进行•Test编译由测试团队在产品编译完成后进行•测试编译完成后,由测试自动化系统进行测试•在随后的代码优化与稳定期内,测试工程师编写2-4级测试代码,并报告产品BUG,Dev负责修改BUG,稳定并优化产品。产品测试的具体流程•验证产品实现符合功能规格书•验证产品代码运行的正确性•以用户角度测试产品的可使用性•边缘条件测试•产品安全性测试•从已有BUG增加的回归测试•产品代码覆盖度测试(CodeCoverage)•产品代码注射测试(CodeInjection)•从错误或异常中的恢复测试•产品速度性能的比较测试产品测试具体分类•产品极限情况测试•产品与国际标准的兼容性测试•产品与以前版本的操作系统,文件格式的兼容测试•产品的安装,卸载程序测试•同产品不同版本的共同运行的兼容性测试•产品在不同语言操作系统下的运行测试•用户帮助文档的验证•SDK示例代码的编译与运行验证•最终CD或DVD发行MasterCopy的验证产品测试具体分类•产品编译必须在此之前完成•每日零晨3时,测试编译自动开始•如果测试编译成功,BVT测试自动开始•测试工程师每早上班,先检查TestBuild与BVT结果的email•如果有BVT错误,在第一时间里分析原因,隔离错误代码并汇报0级BUG•开发团队对于0级BUG应当于当日之内修改完毕•测试工程师接着检查BUG情况,验证分配给自已已修改合格的BUG•关闭BUG并增加针对此BUG的回归测试一个微软开发测试工程师的一天•验证最近的LabRun结果•如果其中有新的错误,隔离并汇报新BUG•开发新的测试规格书与新的测试代码•使用个人PrivateRun来验证新开发的测试程序•使用个人PrivateRun来验证开发伙伴新开发的产品有没有重大错误•改进与提高自动化测试系统的功能•参与Spec,TestSpecReview会议,做测试同伴测试代码Review,UE帮助文件Review,回答内外Newsgroup问题等一个微软开发测试工程师的一天•微软测试的精髓做法是:系统可重用的测试用例;以问题(bug)发现和跟踪为核心的测试活动;独立的测试人员;基于产品规划、产品设计规格的测试计划;与整个项目配合的基于里程碑的软件测试周期。而基于产品规划、产品设计规格的测试计划和系统可重用的测试用例则是微软的“秘密武器”。微软测试的精髓•尽量把质量保证引入整个开发的流程从设计评审开始,设计缺陷往往导致最大的问题开发团队自已Codereview,codeinspection产品团队进行自测,单元测试,Check-in准入测试产品代码经常性地通过各种代码分析工具的检验测试团队的Smoketest,BVTtest,快速的回归测试,再加入新功能测试,尽量与开发团队同步•软件测试的最高境界在于通过强有力的流程与各种快速的自动化工具,防BUG于未然。目前业界的发展方向

1 / 23
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功