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

第一部分  关于微软
    第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

《微软的软件测试之道》读书笔记相关推荐

  1. 读书笔记 | 墨菲定律

    1. 有些事,你现在不做,永远也不会去做. 2. 能轻易实现的梦想都不叫梦想. 3.所有的事都会比你预计的时间长.(做事要有耐心,要经得起前期的枯燥.) 4. 当我们的才华还撑不起梦想时,更要耐下心来 ...

  2. 读书笔记 | 墨菲定律(一)

    1. 有些事,你现在不做,永远也不会去做. 2. 能轻易实现的梦想都不叫梦想. 3.所有的事都会比你预计的时间长.(做事要有耐心,要经得起前期的枯燥.) 4. 当我们的才华还撑不起梦想时,更要耐下心来 ...

  3. 洛克菲勒的38封信pdf下载_《洛克菲勒写给孩子的38封信》读书笔记

    <洛克菲勒写给孩子的38封信>读书笔记 洛克菲勒写给孩子的38封信 第1封信:起点不决定终点 人人生而平等,但这种平等是权利与法律意义上的平等,与经济和文化优势无关 第2封信:运气靠策划 ...

  4. 股神大家了解多少?深度剖析股神巴菲特

    股神巴菲特是金融界里的传奇,大家是否都对股神巴菲特感兴趣呢?大家对股神了解多少?小编最近在QR社区发现了<阿尔法狗与巴菲特>,里面记载了许多股神巴菲特的人生经历,今天小编简单说一说关于股神 ...

  5. 2014巴菲特股东大会及巴菲特创业分享

     沃伦·巴菲特,这位传奇人物.在美国,巴菲特被称为"先知".在中国,他更多的被喻为"股神",巴菲特在11岁时第一次购买股票以来,白手起家缔造了一个千亿规模的 ...

  6. 《成为沃伦·巴菲特》笔记与感想

    本文首发于微信公众帐号: 一界码农(The_hard_the_luckier) 无需授权即可转载: 甚至无需保留以上版权声明-- 沃伦·巴菲特传记的纪录片 http://www.bilibili.co ...

  7. 读书笔记002:托尼.巴赞之快速阅读

    读书笔记002:托尼.巴赞之快速阅读 托尼.巴赞是放射性思维与思维导图的提倡者.读完他的<快速阅读>之后,我们就可以可以快速提高阅读速度,保持并改善理解嗯嗯管理,通过增进了解眼睛和大脑功能 ...

  8. 读书笔记001:托尼.巴赞之开动大脑

    读书笔记001:托尼.巴赞之开动大脑 托尼.巴赞是放射性思维与思维导图的提倡者.读完他的<开动大脑>之后,我们就可以对我们的大脑有更多的了解:大脑可以进行比我们预期多得多的工作:我们可以最 ...

  9. 读书笔记003:托尼.巴赞之思维导图

    读书笔记003:托尼.巴赞之思维导图 托尼.巴赞的<思维导图>一书,详细的介绍了思维发展的新概念--放射性思维:如何利用思维导图实施你的放射性思维,实现你的创造性思维,从而给出一种深刻的智 ...

  10. 产品读书《滚雪球:巴菲特和他的财富人生》

    作者简介 艾丽斯.施罗德,曾经担任世界知名投行摩根士丹利的董事总经理,因为撰写研究报告与巴菲特相识.业务上的往来使得施罗德有更多的机会与巴菲特亲密接触,她不仅是巴菲特别的忘年交,她也是第一个向巴菲特建 ...

最新文章

  1. linux 设置代理 安装jdk mysql tomcat redis hadoop
  2. 文件系统管理 之 Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍...
  3. VCenter电源报警
  4. 中国最大的python社区-在python数据框中的每一行中查找最大值
  5. protobuf与protoc-gen-go
  6. BizTalk开发系列(三十一)配置和使用HTTP适配器
  7. Android LiveData
  8. 飞机游戏跟踪导弹的算法[C#源码]
  9. Hibernate框架核心组件
  10. 大数据 | 致敬科比的篮球生涯。
  11. Delta对冲:模拟实验
  12. px和毫米的换算_iOS尺寸单位pt、ppi与px之间换算关系
  13. 青少儿编程Python入门教程——Python基础知识库
  14. 后台清理 清理cookie_清理枯木
  15. 嵌入式FCT项目案例分享(STM32)
  16. mysql没有for循环语句(使用while替代)
  17. 华为鸿蒙P10plus,华为P10深度评测:徕卡双摄拍照逆天!
  18. ★ 我的世界各类奇葩武器实现!(命令方块1.13+)
  19. 关于ubuntu无法播放土豆视频的解决方法
  20. JavaScript实现flatten

热门文章

  1. sql 字符串转数组_T-SQL象数组一样处理字符串、分割字符串
  2. 图像的膨胀与腐蚀--确认这个大牛的才是正确的
  3. ADC的信噪比与过采样
  4. 用Python爬取2019富豪榜数据分析
  5. 《史记》中最精妙的一篇文章,贡献三句经典名言,影响世人两千年!
  6. 文档处理教程:使用Java拆分MS Word文档
  7. 阿里云弹性公网EIP收费价格表
  8. 中华术数系列之奇门遁甲-精简版
  9. ssh 连接错误 Too many authentication failures 解决方法
  10. 深度学习引发的思考和三巨头时代