首页 > 软件测试

《赢在测试2》读书笔记

作者: 顾翔

 1、阿尔卡特-朗讯测试架构师 郑文强

  1) 作为一个合格的测试人员首先需要具备深入了解测试对象,它的架构,功能以及 客户是如何使用他们的业务知识的。火车模型[1],TCL语言(Tool Command Language)

  2) 结对测试Pair Testing(多人测试 Mutiple Testing)

  业界内有两种含义,一是指两个人一起做测试,二是指一种测试设计技术,在有多种参数需要测试情况下,应用结对测试减少测试用例数,提高测试效率

  3) 今天分享了经验,同时需要一段时间去消化。的确,很赞同,分享很重要

  4) 项目成功的观点:沟通,分享,合适的测试过程,测试与开发的紧密合作。

  5) 如何成为优秀的测试工程师

  A. 深刻了解测试对象

  B. 熟悉研发流程

  C. 如何有效地去做

  D. 培养软技能

  6)探索性测试(Exploratory Testing)是Cem Kaner在1983年提出的,是软件测试的一种方法。与脚本化测试(Scripted Testing, ST)相比,探索性测试将更高的认识水平放在测试执行方面,同时更强调测试人员学习,设计,执行与结果分析等测试活动并行,相互反馈与相互支持。与脚本化测试相比,探索性测试更强调测试人员的思维自由度与主观能动性

  7)软件发布之前的评估

  缺陷

  测试通过率

  测试覆盖率

  信心

  8)缺陷检测百分比DDP(Defect Detected Percentage):

  客户现场发现缺陷数/(发布前测试团队发现缺陷数+客户现场发现缺陷数)*100%

  9)如何做好测试设计

  明确参考输入:需求,开发文档,标准与规范,测试经验知识库

  关注功能之间的交互

  "相对于开发人员来说,功能交互视测试人员的优势,我们要在这方面好好发挥",我非常赞成这个说法

  采用合适的技术与方法

  做好评审

  10)思维导图:Mind Mapping,是表达发射性思维的有效的图形工具[3]

  成为测试牛人

  制定目标

  技能要求

  立即行动

  11)面试中考虑点

  产品知识与业务知识

  测试流程,技术及方法

  性格特征

  12)ISTQB测试认证沙龙

  ISTQB测试认证:[4]

  13)测试人员提高自己水平

  A. 自动化测试与手工测试之争

  B. 探索性测试与脚本化测试之争

  C. 敏捷开发下的敏捷测试

附录

[1] 软件开发中的火车模型发布模式

http://www.biaodianfu.com/release-train.html

[2] TCL语言

[3] 思维导图

[4]ISTQB

2、广联达-彭月

  1) 有多种业余爱好是一笔宝贵的财富,可修身养性,也可打法时间

  2) 测试一定要比客户更专业

  3) 挑战1,特殊用户使用的场景

  挑战2,专业知识深度不够

  挑战3,实验室环境与客户环境不同

  4) 敏捷中保证测试工程师独立而独特的视角,坚决同意

  5) CMM5,千行代码bug率在千分之2.53之下

  6) IBM ODC Orthogonal Defect Classification 正交缺陷分类 [1]

  7) 绩效分为基本绩效和贡献

  8) 软件测试做2个纬度

  验证我们的产品是否达到设计要求

  在第二步基础上再去发现更多缺陷,并且是否可以优化

  9) 作为一个管理者,首先要有经营意识

  10)支持鼓励渐进性创新,而不是变革性创新。注:可操作性强

  11)测试框架

  云计算服务层

  核心驱动层

  自动化测试框架

  12)招聘看中

  聪明

  有激情

  该学的都学好

  13)突破发展前景

  14)保持危机意识

  15)实现专业生存

  16)保持开发心态

附录

[1] 正交缺陷分类(ODC)流程简介及应用经验分享





  3、独立测试顾问-邰晓梅

  1) MFQ&PPDCS

  http://www.taixiaomei.com/archives/31 网页打不开 [1]

  2) StartWest/StartEast [2]

  3) 测试压倒开发和开发压倒测试一样,不是好的项目状态

  4) 预防测试 PreventiveTest 完整团队(whole Team)

  5) 启发

  第一,如果一个产品或项目有大量bug暴露出来,作为项目管理者要注意了,这意味着项目本身有很大改进空间,产品质量不容乐观。

  第二,测试流程只起到辅助型的作用。

  测试流程是个启发式的(Heuristics),遵守流程,测试不一定做得好;不遵守流程,测试也不一定做不好,测试流程更多起到辅助型而不是决定性作用。(测试流程是否需要,作用在哪里,是否可以取消?)

  第三,做任何测试工作,首先要做到Know Your Mission(知道你的任务所在)

  6) 测试认为的三个阶段:

  以bug为中心

  以流程为中心

  以人为中心

  7) 测试深度图(Test Depth Graph)

  深度思考(Focused Thinking)

  广度思考(Defocused Thinking)

  8) 基于需求的测试ReqBT(Requirements Based Testing)[3]

  快速软件测试 RST(Rapid Software Testing)[4]

  James Bach 和Michael Bolton讲述的一门课程,侧重于如何在测试进度紧张,测试资源有限等情况下快速而有效地开展测试工作。

  Quality is the value to someone who matters

  9) 对于软件测试,可以先实践后理论的路子
10)如何学习软件测试

  多实践,多思考

  人与人之间最有效的沟通是面对面的交流

  三步法

  描述目标

  要实现目标,具备哪些知识和技能

  掌握这些和技能

  测试就是学习(Testing is learning)

  11)如何把握软件质量

  1, 找到问题的客户是谁?

  2, 明白客户的在意的价值事啥?

  3, 制定测试策略-------------优先风险高的,不要平均用力

  12)GOM(Goal-Question-metrics)

  13)问问题三步法

  A) Huh? 恩?

  B) Really? 真的吗?

  C) So? 接下来如何做?

  14)不是如何提高测试设计能力,而是提高分析能力

  15)基于模型的测试(Model Based Test)

  http://wenku.baidu.com/link?url=6jBquzGXriyxWihZIrbz2r6Bt_Sz2FAgFJvWM6Mgy_sQ4ukQJ82y6WZCeMLTz2EvHuP9CVoDWj6JMLqgevOIkLQECP26CmfveoZdY0QdkFy

  16)测试的独立性

  测试可以

  A) 让开发人员做

  B) 让专业的测试人员做

  C ) 独立的第三方

附录

[1] MFQ&PPDCS:

[2] 09年美国StarWest和StarEast举办了全美国最大的软件测试领域的展会及展会部分资料

[3] 专家观点: James Bach讲如何成为软件测试专家

[4] 认识软件测试中的黑天鹅





  4、迈瑞-肖利琼

  1) 作测试逆向思维很重要,测试是要找出软件有哪些问题,而不是证明软件没有问题

  2) 成为一个优秀的测试工程师

  A) 积极主动的心态

  B) 责任心强

  C) 善于总结,乐于分享

  D) 全局意识强

  3) 测试方案:

  A)切实了解和掌握用户使用场景

  B)了解开发人员实现原理

  C)确定测试范围-〉深入分析测试对象-〉确定测试点和测试方法

  4) 测试对象分析法

  1)三层架构模式分析法:

  功能应用层

  模块接口层

  系统接口层

  2)多叉树结点分析法

  3)业务状态变迁分析法

  4)代码更改追溯分析法

  5) 做好评审

  A) 用例编写者自评

  B) 测试主管审核

  C) 参加评审会

  D) 高频用例;中频用例;低频用例

  E) 测试用例的交叉执行会是一个检查和提高测试用例的好办法。A执行B的测试用例;B执行A的测试用例---------非常同意

  6) 嵌入式自动化测试

  A) 数据层:负责与脚本程序打交道,读取数据,分析数据等

  B) 逻辑层:处理自定义脚本关键字的识别,与系统的动作做交互

  7) 内存泄露软件:top,valgrid

  8) 把握软件质量

  A)制定好测试策略

  B)做好测试过程控制 IBM ODC Orthogonal Defect Classification,缺陷正交分析法[1]

  C)邀请客户试用

  9) 优秀管理者

  A)培养人才

  B)合适的人作合适的事情来分配工作---good

  C)胜任人才招聘和人才识别

  D)维护一个好的团队氛围

附录

[1]http://www.ithov.com/linux/122683.shtml

 5、百度——董杰

  1) 发现实验室里所看重的功能不是客户所要的;而用户所要的却不是开发和测试看重的重点

  2) 对我看到四五十岁的人仍然在技术一线工作,对创新保持者热情市,内心感动

  3) 如何开展测试

  减少测试用例的用余---从设计提高效率

  减少漏测---从设计提高质量

  提高测试评审质量---提升测试本身的质量

  4) 《基于缺陷的测试技术体系》

  5) 变化分为两类:

  基于社会,行业,产业的变化

  技术的发展

  6) 因为教是最好的学

  7) 如果你已经做到了测试的高级管理职位,我恭喜你,同时也提醒你不要完全脱离具体的测试工作

  8) 如何开展测试工作

  首先测试工程师要做好被测对象的分析和建模,要理解清楚业务

  其次,应用多种测试方法来做测试

  第三,展开缺陷预防工作

  9) 探索性测试适合新人快速掌握业务。探索性测试大粒度,小粒度

  10)探索性测试不是自由测试,只有测试有两个软肋:

  没有计划,随机性强

  经验无法积累,无法给别人做培训

  11)对于预防缺陷:

  发现缺陷

  建立质量保证体系,预防缺陷

  A) 需求方面:结对需求评审是很好的需求缺陷预防的很好方法

  B) 架构设计方面:收集公司里的设计缺陷。

  灰盒测试分析法:在开发人员写好设计文档以后,测试人员阅读设计文档并创建产品设计的二叉树表,画出产品从一种状态迁移到另一种状态的过程,每个过程都要画出成功与失败两条路径。

  C) 编码的缺陷预防:白盒测试技术

  12)如何做好测试设计

  A) 做好测试分析,做好测试对象的分类与建模

  B) 采用多样化的测试手段

  C) 准备多种测试数据

  D) 做一些该产品领域特有的测试

  13)个人发展

  A) 坚持爬坡

  B) 不要局限在自己小圈子里

  C) 可以从宽度和广度上来发展





  6、金山-赖炳新

  1) 作产品经理的体会

  A) 要用运营的是未来高铝产品质量

  B) 软件研发过程修复所有缺陷是不可能的,优先解决用户经常用到的问题,以客户为核心

  2) 如何成为优秀的测试工程师

  A) 对所从事的职业有正确认识

  B) 耐心,细心

  C) 钻研精神

  D) 要有恐惧之心

  3) 如何成为优秀管理者

  A) 从一线起来

  B) 沟通能力

  C) 了解团队成员的特点

  D) 身先士卒

  4) 如何测试安全产品

  A) 安全产品影响面广,不光是自身,重视兼容性

  B) 性能很重要

  C) 安全类软件的本身安全性很重要

  5) 安全类软件测试的三个技术要求

  A) 对Windows机制要有深入了解

  B) 安全软件测试对代码能力有一定的要求

  C) 对病毒,木马要有一定的了解

  6) 安全软件性能测试

  A) 自身的性能

  B) 与同类产品比较的性能

  7) 招聘每个新人的要求

  A) 技术方面要有一定要求

  B) 更看重人的品格

  C) 学习能力好

  8) 非安全软件的安全测试

  A)到软件最核心的地方去做

  B)通过一个好的开发流程来保障软件的安全性

  C)提高产品的迭代速度,这样可以及时修复和改进产品

  9) 快速迭代中保证质量

  A)发给内部测试用户

  B)发到论坛上

  C)发给更大的客户群

  D)发给所有用户

  10)做事的原则和方法

  A) 去一家公司工作,要相信它

  B) 相信你选择的行业

  C) 要与同事相互信任

  D) 软件行业不是传统行业,不要有过于机械的等级关系

7、淘宝-高翔

  1) 在微软期间认识到:

  A) 测试工程师应当持续培养自己的代码能力

  B) 测试工程师不仅是找bug,而且还要想到如何帮助开发

  C) 要相信测试可以做得更规范,更好

  2) 快,好,准,稳

  CTC(Common Test Center) 把互联网里面公共测试用例放入CTC,集中维护,共同管理,避免重复设计测试用例--------我非常赞同

  3) 测试与开发亦敌亦友,有合作的地方,也有对抗的地方。如果你和开发没吵过架,你就没有真正站在客户立场上---------有同感

  4) 优秀的测试

  A)学习流程和规范

  B)学习行业内最佳实践

  C)拓宽视野

  D)分享总结

  5) 测试用例设计6个阶段

  A)啥都不懂

  B)开始做

  C)如何更好地做好测试用例的设计

  D)继续提升

  E)融合起来

  F)学习探索式测试

  6) 评审:内部评审,外部评审

  开评审会,让愿意发言的人去-----同意

  7) 对于互联网来说,自动化率超过50%就很好了

  8) 测试技术三大方向

  A) 探索式测试

  B) 基于需求的测试

  C) 基于模型的测试:根据软件系统的规格说明建立模型。根据模型自动生成测试用例,自动运行。常见工具:Spec Explorer

  D) 基于风险的测试RBT(Risk Base Testing)

  9) 底层自动化测试,上层探索性测试

  10) 敏捷好处

  A)提高测试效率

  B)提高自动化测试框架的质量

  11) 测试工程师发展方向

  A)提高自己开发能力,转向专为测试开发

  B)转向项目管理

  C)转向产品需求分析与收集

  12) 如何学习

  A) 相信自己的梦想

  B) 做好分析和总结

  C) 沟通





  8、CA-步琼

  1. 用Perl实现Web Service & CLI, 用Selenium和JAVA来做GUI测试

  2. 对同事要求特别高,这是双刃剑,用的时候要小心

  3. 优秀测试工程师

  A) 必须爱钻研

  B) 很强的逻辑思维

  C) 具备较轻的技术能力

  掌握常用的测试方法

  掌握常见的测试工具

  掌握编程语言

  D) 掌握产品知识

  E) 细心

  F) 良好沟通能力

  G) 良好工作态度

  4. 做好测试用例

  A)了解类似功能

  B)有权限的话看看代码

  C)与相应开发人员沟通

  D)把自己的测试思路画在纸上,看有无遗漏

  5. 评审会

  A)会议要有主持人

  B)要形成改进措施

  C)最好做复审

  6. 可以没有开发背景,但应当懂编程

  7. 性能测试的建议

  A) 之前制定好Baseline,就是基本定义

  B) 注重附加影响,比如CPU占用率一直很高

  C) 熟悉一些概念,比如区分内存使用中的Working Set & Virtual Size/Virtual Bytes

  D) 掌握一些常用工具

  8. 推行在测试中采用基于风险测试,根据]风险等级排优先级

  9. 即使敏捷,测试人员在开始回比较闲,要介入设计,不要等

  10. 要想深入,至少持续做3年

  11. 永远保持学习的热情

  A) 信守承诺

  B) 不要随波逐流,保持自己方向

  C) 坚持不懈

  D) 对学习始终保持热情

9、用友-薛继国

  1. 新人加入公司,导师制-----同我们公司

  2. 兴趣是最重要的,总结能力也很重要

  3. 管理技术两条线

  普通测试工程师----〉高级测试工程师---〉测试专家-----〉高级测试专家

  |--〉测试经理

  4. 提高创新能力的另外一个小小尝试是交换测试

  5. 做好团队管理

  A) 管理者起表率作用

  B) 让员工认识到自己的积极性不够

  绩效考核PBC Personal Business Commitment 分为A B C D 四个级别

  6. 每一个管理岗位配备一个副手

  7. 大会上少表扬,日常工作多表扬少批评

  8. 很少看候选人检验,看素质

  9. 做测试用例:测试经理与测试专家,测试设计人员。参照别人的测试用力提高自己的水平---------------我同意

  10. 自动化测试的要求:核心产品,核心场景

  11. 测试技术并不难,难的是业务系统------------我同意

  12. 如何学习业务,通过产品去学,强调自学

  13. 我们是做测试的,要敢于提出问题,敢于反对;不要制造矛盾




  10、奇虎360-王东

  1. 经历往往是财富

  2. 绿萌三个主要产品

  A)入侵检测

  B)漏洞扫描

  C)防DOS攻击

  3. 作为测试工程师,不要满足于文档,要多做些文档没有提到的东西考虑不同的场景。我们测试不只是证明软件工作正确,讷只是初步目标,我们还要考虑什么情况下会出错。---------200%同意

  4. 走向优秀

  A)学习和总结能力是关键

  B)做好沟通

  C)积极向上的精神

  5. 提炼自己的方式学习

  A)找一个高手辅导自己,这样学习更快

  B)提炼自己的方式学习

  C)不要忽视软技能

  6. 安全软件测试重点是理解安全需求,安全软件的稳定性及容错性很重要

  7. 如何做好非安全产品的安全测试

  A)审核自己软件里开放接口和界面

  B)多做代码review,从内部做好预防

  C)可以请测试工程师作暴力测试

  8. 设计好的测试用力是理解功能

  A)理解功能

  B)测试人员要主动提问

  C)然后主动去学

  9. 安全领域的自动化测试

  A)提高测试正确性

  B)提高测试效率

  C)有些地方是手工测试无法作的,要用自动化

  10. 自动化测试包括

  A)回归测试;

  B)性能测试;

  C)主要功能点的测试

  11. 提高测试设计能力

  A)召开测试用力设计讨论会

  B)注意举一反三

  C)生活中要注意观察用户

  12. 典型应用场景是性能测试的重要步骤

  13. 面试

  A)积极的工作态度

  B)对自己有合适的认识

  C)具备良好的沟通表达能力

  D)学习能力

  14. 管理---管好两头

  A)管理领头的优秀人才

  B)抓好所谓拖后腿的

  15. 管理者不应该做的事情

  A)不要孤立自己

  B)不要脱离业务

  C)不要推脱责任

  16. 测试人员与开发人员走向融合,开发要会测试,测试要会开发---不同意

  17. 软件测试从业人员面临的挑战

  A)来自于公司高管对软件测试的看法

  B)不同的开发技术和测试技术如何融合问题

软件测试咨询

  

   

投稿关闭窗口打印