《微软的软件测试之道》读书笔记

《微软的软件测试之道》读书笔记








第一部分  关于微软
    第1章  微软的软件工程
        偏重于产品独立发布的模式通常称为PUM(Product Unit Manager)即产品部门经理模式。
    
    第2章  微软的软件测试工程师
        测试工程师的主要职责:制定测试计划、设计测试用例、分析缺陷的根本原因、参与程序代码的审查和产品设计的审查、开发测试自动化 程序
        我们(微软)在软件测试上面临着两种挑战:一是我们要培养测试工程师成为被测试的产品领域的专家; 二是培训他们怎样去测试。
        
        SDET培训路线图
        
        测试职种的发展道路: 测试架构师(一种角色而非一个职位) 、测试独立贡献者
        成为管理人员并不意味着升职(这是一个“平级”的变化)
        
    第3章  工程生命周期
        微软的软件工程:
               瀑布模式:  图 3-1
               螺旋模式:  图 3-1
               敏捷开发
               里程碑模式  图 3-2
               图 3-5 软件生命周期的工作流程



第二部分  关于测试
    第4章  软件测试用例设计的实用方法
        实践良好的软件设计和测试设计 --> 软件设计包括制定计划和解决难题

        测试设计和好的软件设计有很多相似处,甚至可以说,和好的设计都有相似之处。测试设计需要从计划和问题解决方面来决定做哪些测试,
以及哪种测试在验证功能和确认错误路径处理得当上是最有效的。测试设计中最重要的方面之一是能预见用户的需要和期望, 然后创建能够 恰当地
处理这些需要的测试。良好的测试设计通常从对软件设计的审查或批评开始。通常,对待设计审查和对待代码审查 是很相似的,也就是 设计者对设计
进行解释,参与者提出问题并提供反馈。一个好的设计审查会对所有主要的设计决策中的各种备选 方案做深度比较。比较的目的 是要就建立什么、
怎样去建立、还有更重要的,如何去测试它们等方面,达成共识。良好的设计和良好的 执行在成功的软件开发工程中占举足 轻重的地位。
        
        使用测试(设计)模式
                测试模式共享的常用形式是模板。测试设计模板包括10个属性:名称、问题、分析、设计、预言、用例、缺陷和局限、相关的模式
                基于模板的测试设计方法:交流测试想法、加速测试设计进程、构建测试设计的知识库
         
        估计测试时间 --> 测试需要多少时间?
               估计一个功能或是应用程序的测试时间的方法:拷贝开发时间。
        如果某个开发任务计划需要一个人工作两周,那么估计写自动化测试和描述手工测试用例也需要一个人工作两周。这在实际实践中只是一个
出发点,因为有太多因素可以影响到测试的进程,所以在估计测试时间时应该把这些因素都考虑 在内。         
        如果需求(功能规格)写得不好或没有,那么最好的测试设计的出发点就是问问题。如果程序已经可以运行,那么最好的测试设计的方法就是
运行程序。
        很多在测试过程中被错过了的软件缺陷都是因为测试人员没有问足够多的问题或者他们没有问对问题。问问题是测试设计阶段获得需要的
知识以进行检查的最好的方法。
         好的测试策略:一个测试策略引导着测试设计,而且可以为测试团队的测试设计提供方向。

         思考可测试性:早点思考可测试性。 可测试性是指软件可以被完全有效测试的程度。
                       测试人员可以用来提高可测试性的最普遍方法是在需求或设计评审中简单地问,“我们怎么来测试这个东西?”
                       一种提高软件可测试性的简单模式:SOCK-->简单、可见、可控制、知识

 
        测试设计规格说明: 测试设计规格说明描述了测试过程中的方法和意图,所以它就成为整个测试过程的不可分割的一部分并贯穿整个产品的
生命周期。
         
        数据测试--用好的和坏的:测试用例一般包括验证测试(使用期望的输入来验证产品功能的测试)和错误避免测试(使用预期之外的数据来检验
产品是否适当处理的测试)
         
        在测试用例设计中要考虑的其他因素:进度,资源以及质量是可以影响软件测试的依赖属性。
 
        黑盒测试和白盒测试: 
        黑盒测试:一种设计测试用例的方法。不需要知道任何关于应用程序内部是如何实现各种功能的知识。根据一个应用程序 的用户只关心这个 应用
程序是否满足了他们的需求,而不关心这个应用程序是如何被设计和实现的原理,黑盒测试的方法是一个有效的方法去模仿 和预估用户会如何使用这个
产品。 另一方面,单纯的黑盒测试方法也经常会导致过度测试一个应用程序的某些部分而对另一些部分没有足够的测试。
        
        白盒测试:通过对应用程序内部代码或者用户看不到的模式进行分析,并以此设计测试用例。单一凭借白盒测试方法设计的测试用例一般
                          都非常详尽,但无一例外的总是会错过关键的终端用户使用场景。
        
        解决这个设计测试用例的两难处境就是使用灰盒测试。设计测试首先是从用户关心的角度出发的(黑盒测试),然后再利用白盒测试方法保证
        测试用例能够有效并全面的覆盖被测对象。

        测试工程师需要从两个方面进行测试:用户角度 和 确定应用程序的正确性角度。为了能够有效涵盖这两个角度,必须考虑使用黑盒测试和
                                                                    白盒测试两个方法。
        
        探索性测试(微软):探索性测试是一种手工测试方法,每一步的测试和验证都是基于前一步的操作。
                                       结对测试 --> 探索性测试方法。

    第5章  功能测试相关技术
        功能测试的需求: 探索性测试--主要关注于行为测试。 然而探索性测试总的来说不能适应大型复杂的项目,或是任务非常关键的软件。
        使用黑盒方法进行软件行为测试,仅能企及所有测试能够覆盖范围的35%~65%之间。 从用户界面出发进行软件行为测试的确很重要,
        但如果它被用作唯一或主要的测试途径,我们就很有可能浪费时间在效果不佳的测试上,并且会漏过产品的某些重要的领域。

                        图 5-1 演示黑盒测试有效性的文氏图

        三角形测试: 大多数测试工程师只写了一个针对合法整型值导致非法三角形的测试、一个针对等边三角形的测试、一个针对不规则三角形的
                              测试、一个针对等腰三角形的测试。这四个测试仅仅覆盖了软件中最关键路径的50%而已。
        
        等价类划分
                等价类划分,简单地说就是一种工具,使得测试工程师能够以系统化的方式评估一个功能点中每个参数的输入和输出变量。不过,
        要等价类划分技术发挥出最大功效,就要求我们针对特定系统的上下文中的每个参数的变量数据实施全面的分析。所以在设计测试之前,
        有必要仔细为每个输入和输出参数涉及 的变量数据实施解耦和建模以将其模塑成分离的合法及非法分类子集。
        等价类测试的导出:  创建每个合法分类子集的合集,直到测试取遍合法分类的所有子集为止; 再对非法数据子集依次评估。
        等价类划分技术的整体效率主要依赖于测试人员的变量分解能力。(把变量数据建模为等价类子集需要对给定上下文环境系统的认识和理解。)
                  
        变量分解:等价类划分中最困难、且最具挑战性的方面是把数据分解为唯一合法和非法类子集。

        强化实践:在每一个等价类数据集合中使用多个元素来增加覆盖的宽度并减少错误功能的可能性。(一个等价类内抽取多个元素,以增加覆盖宽度)
                      
                      把数据分解为在合法和非法类中的离散集合的四个启发式方法: 值的范围、变量相似组、唯一值、特殊值
                      范围 : 在数据的邻近集合中最小值和最大值间的任何数据点应产生相同的结果。
                          例子:假设要从1到999间输入一个整数。合法的等价类是 >=1 和 <=999       
                                                                                      非法的等价类范围是 <1 和 >999的整数
                      
                      只要元素被等价地处理,那么元素组是允许的。
                          例子:车辆的类型决定了征税的类别,包括:卡车、小汽车、摩托车、房车、拖车等。属于相同的征税类别,那么这个元素组认为
                                     是 等价的。
                             
                      唯一值:在类或子集中的数据可能以不同于同一类或子集中的其他数据的方式被处理。
                          例子:数据 1月19日,2038,3:14:07在处理时间日期数据的应用中是唯一的。它应被分解为离散的子集。
                      
                      特殊值:条件必须提供或必须不被提供。
                          例子:在SMTP协议中,字符"@"是一个特殊字符,不应该作为E-mail名称或域名的一部分。
            
            等价类划分实战 ---> 帮助你更好地理解如何把参数变量划分为离散的合法和非法数据子集。  
            参数子集分析
            等价类划分测试
            等价类划分小结

            边界值分析---->最著名的功能性测试技术
            边界值分析:一个全新的公式(用于基本边界值分析的测试数量可以用4n+1来计算(或者6n+1 包括边界最小值-1 和 最大值+1) ),n等于独立
                                 参数的个数。 结合公式,可以更好地估计所需边界测试的数量,可提供更广泛的测试集合。
            边界值分析是个以介于特定边界值上下的数据作为研究目标的功能性技术。历史经验和递归问题的根本原因分析表明异常总是发生在独立输入
    输出参数的边界 条件附近。对处在边界条件的变量进行系统分析增加测试的有效性,提供更优的信息,增加检测特定类缺陷的可能性。这种缺陷
    可能在早期测试周期中,源于 输入或输出参数的线性变化。
    
    组合分析
            一个参数的输出状态取决于输入参数可变状态的各种组合。
            为了系统地测试几个相关参数可变状态间的相互作用,相对其他可选策略而言,组合分析是最优方法。

    第6章  结构测试技术
        块测试
        决策测试
        条件测试
        基础路径测试

    第7章  用代码复杂度分析风险

    第8章  基于模型的测试


第三部分  测试工具和系统
    第9章  缺陷和测试用例管理

    第10章  测试自动化

    第11章  非功能测试

    第12章  其他工具

    第13章  用户反馈系统

    第14章  测试“软件加服务”


第四部分  关于未来
    第15章  今天解决明天的问题

    第16章  建设未来













注:
        微软的软件测试之道  How we test software at Microsoft    Alan Page  Ken Johnston  BJ Rollison著 机械工业出版社 2009

 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
本书是以使读者熟悉微软产品、微软工程师、微软测试人员、测试的作用和对软件工程的通常做法作为开始。书的第二部分讨论许多在微软常用的测试实践和工具。 书的第三部分探讨某些我们工 作中使用过的工具和系统。书的最后一部分探讨在微软测试和质量的未来方向,以及我们打算怎么创造未来。 本书结构清晰,内容详实,可作为广大软件测试人员的参考用书。 本书内容:   本书是以使读者熟悉微软产品、微软工程师、微软测试人员、测试的作用和对软件工程的通常做法作为开始。书的第二部分讨论许多在微软常用的测试实践和工具。 书的第三部分探讨某些我们工 作中使用过的工具和系统。书的最后一部分探讨在微软测试和质量的未来方向,以及我们打算怎么创造未来。 本书结构清晰,内容详实,可作为广大软件测试人员的参考用书。 事实上,软件的“缺陷”是不可避免的,只能通过编程人员和测试人员的共同合作,把“缺陷”降低到最小的程度。现代的软件工程管理方法,就是边开发边测试,及时把“缺陷”降低到最小程度。本书是 实用性很强、实践经验很丰富的一本好书,对我们软件企业和软件工程师来说都具有十分重要的指导意义。 ——中国软件行业协会秘书长胡崑山 软件工程人员为了做好测试工作,认真学习测试的理论和方法是十分必要的,但还应该积累软件测试的经验,通过阅读本书可以吸取知名优秀软件企业的最佳实践。 ——中国软件行业协会系统与软件过程改进分会(CSPIN)常务副会长、 清华大学教授郑人杰 本书是我一直在寻找的关于软件测试最佳实践的书籍,我很愿意向我的学员们推荐此书,作为软件测试实践的有效补充。 ——国际软件测试认证委员会ISTQB中国分会专家组组长、ISTQB 软件测试培训师周震漪 本书为业界吹来一阵清新的实践之风。全书通过翔实的案例描述了这个世界著名的软件企业为了保证快速和可靠交付,是如何毫不留情地与那些狡猾的缺陷进行顽强斗争的系列故事;此外,仔细介绍如 何通过质量保证生产出世界一流软件的基本原则是本书的另外一个亮点;与此同时,随处可见令人惊讶的创新,则是本书强大的作者团队,在分享他们的微软最佳实践方面的宝贵经验 ——国际外包管理协会(IIOM)主席Jerry E Durant 软件测试软件工程中一个不可或缺的重要步骤,是一项需要高度智慧和极具挑战性的工作,又是一项需要实战经验积累的工作。“他山之石,可以攻玉”,此书的出版将为我们借鉴微软的先进测试经 验;培训中国软件测试人才;推动中国测试服务业的发展做出重要贡献。 ——中国软件测试机构联盟常务副理事长 上海计算机软件技术开发中心首席知识官杨根兴 软件测试技术和它在软件开发中的重要作用得到了业内越来越多的重视和研究。微软公司无疑的是软件测试技术的领引者。本书将给在这个行业工作的和准备加入这个行业的人以启迪,揭秘软件测试的 真谛。 ——软通动力信息技术有限公司董事长兼首席执行官刘天文 作为一位拥有数百测试工程师团队的外包企业的管理人员,我看到了大量测试微软产品的过程中所遇到的问题和工程师们设计出的各种解决方法。本书则把微软软件测试的方方面面的理念、方法、技术 、工具、流程等介绍给我们,不仅可以使测试工程师系统地学习测试技术,还可以让我们的管理团队开拓思路,少走弯路。我强烈推荐在各个企业的同仁们花时间读本书,从而起到事半功倍的作用。 ——文思创新软件技术有限公司执行副总裁及首席全球化官吴建 现代软件测试从方法、技术和工具层面已远远突破了“寻找缺损”和“验证功能”范畴。软件测试已成为软件开发和软件工程管理不可缺少的一部分。微软在这一领域的实践是划时代的,它将软件的规 模、工程的复杂性带到了前所未有的高度,其解决的问题的难度,以及为此而付出的代价都是无与伦比的。因此,多年以来,微软软件测试的理念、方法、技术、工具、流程,及其与其他角色的协作等 诸多方面,都一直是业界研究、探讨和借鉴的中心。本书第一次由微软的权威人士从内部系统地揭示这一奥秘。本书应该成为中国同行们的必备经典。 ——美国一通公司(iConnect Inc.)总裁王志峰 本书作者中有我的前同事Bj Rollison,他是微软公司中最有资历的测试专家之一。译者中也有我多年的好朋友张奭,她一直致力于把微软先进的公司文化、产品理念带给中国国内的企业和个人。感谢 他们的执着和付出,本书把神秘软件王国——微软如何进行软件测试揭露给了大家。本书必将成为国内软件测试人员的参考宝典,也将会彻底改变国内对软件测试的偏见,让大家充分理解,软件测试绝 对不是一件简单、低级的事情,而是一件极具复杂性,需要极高综合素质的人员才能做好的事情,这也将有助于更多的毕业生去选择从事软件测试,从而改善软件测试行业中人才缺乏的问题,特别是高 端人才。 ——海辉软件(国际)集团公司副总裁汪建兵 这是我所见过的测试方面的经典!它精薄而全面,言简意赅,结合实际,深入浅出,使读者快速理解软件测试流程和核心技术。 ——上海越通软件有限公司董事长周晓冬 我在天津市软件测试中心工作了7年,一直都在寻找不同软件测试方法、测试工具的使用、测试流程及管理。所以,一直都非常关注软件测试方面的书,以便用它来指导我们测试业务的开展,同时对 于软件开发企业控制软件质量,也有指导意义。本书汇集了微软极其丰富的软件测试的实践经验,从理论和实践的结合上,让软件测试界有了一个信赖和学习的榜样。这将有力的推动中国软件测试技术 的发展,从而保证软件产品的开发质量,缩短软件开发的时间。谢谢你们把软件测试的经验和我们分享,谢谢你们对软件测试领域的贡献。 ——中国天津市软件评测中心主任周文禾 微软拥有着伟大的产品,这离不开强大的测试团队和卓越的测试技术,本书将带你发现微软是如何展开测试的,以及在测试方面的最佳实践,这是软件测试领域的骄傲,我推荐更多的测试经理、测试骨 干人员阅读本书。 ——麦思博(msup)有限公司首席运营官刘付强 对于大多数国内软件公司来说,不缺少高水平的技术人员,而在如何做好软件测试,如何保证产品质量方面却面临着巨大挑战,能否突破这个挑战是软件产业持续发展的条件之一。值得高兴的是,最近 几年软件测试得到越来越多的重视和关注。但是,国内关于软件测试实用技术方面的书籍相对较少,本书深入浅出地介绍了微软软件测试的实践,包括相关测试技术与管理方法,这正是我们广大软件质 量人员所需要的,相信每位读者都能从本书中汲取到值得借鉴的经验。 ——浪潮集团山东通用软件有限公司研发管理部经理刘俊红微软内部专家的评论 在全球化的深刻变革中,信息技术所发挥的力量是毋庸置疑的。微软用软件的力量推动了全球化的进程,而软件测试理念和实践的革新带来了更加“智慧”和接近“完美”的软件产品。这本书完整地呈 现了走向“智慧与完美”的方法与实践。 ——微软公司全球资深副总裁张亚勤 以用户为中心的测试是专业软件开发流程中不可或缺且至关重要的一环。作为一名拥有十年软件测试经验的微软员工,我非常高兴能向国内软件开发人员和爱好者们推荐本书。它解析了微软公司的软件 测试体系,并在某种程度上揭示了微软的一个成功“奥秘”,即高度重视软件测试工作,并借此为全世界的用户和专业人员提供高性价比、高可用性的应用软件和开发平台。我诚挚地祝愿并期待这本以 微软“实战经验”为亮点的著作能够成为中国软件行业管理者和从业人士必读的经典书籍。 ——微软大中华区开发工具及平台事业部总经理谢恩伟 与大多数讲述软件测试理论的书不同,本书最大的特色之一是其实用性。所有的方法,流程,技术和工具都是基于实际开发需要而建立或实施,应用于微软产品的开发并经过多次的检验。作者在阐述中 ,也用了很大的篇幅讲述,强调如何在实际中运用这些知识。这在很大程度上取决于他们的背景和经历。本书作者都是在有过多年软件产品测试经验之后,专门在微软从事软件测试技术推广和测试人员 培训的资深专家。很多微软的工程师都是通过他们的培训来学习并理解软件测试的。而本书的出版,则给更多的人提供了这样一个机会。 ——微软全球产品开发部测试总监杨永生 本书详尽地阐述了微软各个产品部门间通用的软件测试的组织架构、方法、工具和实践。这本书总结了微软数十年来在软件测试上的经验,可以提供国内在软件开发与测试管理以及人才培养方向上宝贵 的参考非常值得一读。 ——微软中国Protocol部门首席测试经理黃镇铭 本书是我在微软公司过去13年从事软件工作以来读到的对微软公司的软件测试的过程、方法、理念和文化诠释得最为全面的一本书。阅读它带给我一种怀旧的感觉,更启发了新的感受和灵感。我相信微 软公司的这些经验也能为在学校和行业界的读者带来收获。 ——微软总部SQLServer首席测试经理张力
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

光明矢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值