51Testing软件测试网

 
 

常用链接

  • 我的随笔
  • 我的评论
  • 我参与的随笔

留言簿(3)

  • 给我留言
  • 查看公开留言
  • 查看私人留言

随笔档案

  • 2021年6月 (1)
  • 2021年3月 (1)
  • 2020年9月 (1)
  • 2020年3月 (1)
  • 2020年1月 (2)
  • 2019年12月 (3)
  • 2019年11月 (5)
  • 2019年10月 (1)
  • 2019年9月 (2)
  • 2019年8月 (14)
  • 2019年7月 (20)
  • 2019年6月 (15)
  • 2019年5月 (12)
  • 2019年4月 (19)
  • 2019年3月 (20)
  • 2019年2月 (9)
  • 2019年1月 (16)
  • 2018年12月 (17)
  • 2018年11月 (21)
  • 2018年10月 (16)
  • 2018年9月 (20)
  • 2018年8月 (22)
  • 2018年7月 (3)
  • 2018年6月 (1)
  • 2018年5月 (7)
  • 2018年4月 (1)
  • 2018年3月 (3)
  • 2018年2月 (6)
  • 2018年1月 (2)
  • 2017年9月 (8)
  • 2017年8月 (28)
  • 2017年7月 (3)
  • 2016年11月 (1)
  • 2016年6月 (1)
  • 2016年4月 (1)
  • 2016年2月 (2)
  • 2015年7月 (1)
  • 2015年5月 (1)
  • 2015年4月 (2)
  • 2015年3月 (1)
  • 2015年2月 (2)
  • 2015年1月 (6)
  • 2014年12月 (3)
  • 2014年11月 (3)
  • 2014年10月 (3)
  • 2014年9月 (2)
  • 2014年8月 (8)
  • 2014年7月 (16)
  • 2013年12月 (5)
  • 2013年11月 (1)
  • 2013年10月 (3)
  • 2013年9月 (2)
  • 2013年8月 (2)
  • 2013年7月 (3)
  • 2013年5月 (1)
  • 2013年4月 (2)
  • 2013年3月 (2)
  • 2013年2月 (3)
  • 2013年1月 (4)
  • 2012年12月 (4)
  • 2012年11月 (4)
  • 2012年10月 (3)
  • 2012年9月 (4)
  • 2012年8月 (3)
  • 2012年7月 (4)
  • 2012年6月 (2)
  • 2012年5月 (2)
  • 2012年4月 (1)
  • 2012年3月 (2)
  • 2012年2月 (2)
  • 2012年1月 (1)
  • 2011年12月 (3)
  • 2011年11月 (2)
  • 2011年10月 (1)
  • 2011年9月 (4)
  • 2011年8月 (3)
  • 2011年7月 (2)
  • 2011年6月 (4)
  • 2011年5月 (4)
  • 2011年4月 (2)
  • 2011年3月 (4)
  • 2011年2月 (4)
  • 2011年1月 (7)
  • 2010年12月 (7)
  • 2010年11月 (5)
  • 2010年10月 (4)
  • 2010年9月 (7)
  • 2010年8月 (7)
  • 2010年7月 (3)
  • 2010年6月 (3)
  • 2010年5月 (4)
  • 2010年4月 (4)
  • 2010年3月 (5)
  • 2010年2月 (3)
  • 2010年1月 (4)
  • 2009年12月 (3)
  • 2009年11月 (3)
  • 2009年10月 (1)
  • 2009年9月 (3)
  • 2009年8月 (2)
  • 2009年7月 (3)
  • 2009年6月 (1)
  • 2009年5月 (2)
  • 2009年4月 (4)
  • 2009年3月 (5)
  • 2009年1月 (1)
  • 2008年11月 (2)
  • 2008年7月 (5)
  • 2008年6月 (4)

文章分类

  • 行业资讯(45) (rss)
  • 软件业务知识(43) (rss)
  • 软件开发知识(33) (rss)
  • 软件测试工具(39) (rss)
  • 软件测试技术(157) (rss)
  • 软件测试管理(40) (rss)
  • 软件测试职业发展(57) (rss)

51testing软件测试网

搜索

  •  

最新评论

  • 1. re: 淘宝后台技术大揭秘,不看这篇你双十一要损失几个亿!
  • 关注官方公众号“Atstudy网校”,点击中间菜单栏“双11”,领取双十一技术内幕资料。
  • --51testing
  • 2. re: 软件测试流程的一点感悟
  • 提交缺陷时只需要描述现象即可,过多的分析可能会误导开发
  • --凡客诚品
  • 3. re: 软件测试流程的一点感悟
  • 阿达宿建德江阿斯顿
  • --凡客礼品卡
  • 4. re: 手机软件测试的经验总结
  • 很好啊~不错
  • --乐蜂网
  • 5. re: 手机软件测试的经验总结
  • 很好啊~
  • --罗莱家纺

阅读排行榜

  • 1. 软件测试流程的一点感悟(1525)
  • 2. 5年经验之谈:月薪3000到30000,测试工程师的变“行”记!(1136)
  • 3. 测试自动化及软件测试工具的比较(1014)
  • 4. 银行线上信贷系统如何做好接口测试?手把手教你接口工具Postman(1000)
  • 5. 软件为什么要做异常测试?测试员必知的22个测试点总结!(971)

评论排行榜

  • 1. 软件测试流程的一点感悟(4)
  • 2. 软件测试的原则和经验 (4)
  • 3. 嵌入式软件测试技巧(2)
  • 4. 手机软件测试的经验总结 (2)
  • 5. 常用软件测试工具的分析与比较(1)

Powered by: 博客园
模板提供:沪江博客
IT博客 | 首页 | 发新随笔 | 发新文章 | 联系 | 聚合 | 管理

我谈软件测试

  在做软件测试工程师的这几年,收获了不少,对软件测试这一职业的理解也随着工作经验有这更加深入的了解,在这里写一篇关于“软件测试”的小文,发表一下我个人的一些拙见,供大家探讨学习之用。

  软件测试

  什么是软件测试?其实现在很多人对软件测试这一职业不是很了解,不知到底什么是软件测试。

  关于软件测试的定义有很多种,我个人觉的比较符合的是:“使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别”。由于现在软件发展的十分迅速,软件的复杂度也越来越高,所以软件测试现在也变的原来越重要,软件测试贯穿于整个软件生命周期,软件测试并不局限于程序测试,它还包括对相关的需求、文档的测试,也包括一些多样化的回归测试、压力测试、性能测试等。

  关于软件测试理论知识在很多书中都有详细的描写,这里就不摘抄了。但是根据我的经验,想要做好软件测试,深入了解软件测试的理论知识是必不可少的,很多很多实际遇到的问题,都是由于对软件测试的理论知识的不了解造成的。

  测试心理

  做好一名软件测试人员,调整好心理是必须的。

  (1)“创造者”与“破坏者”

  在心理上,软件开发和测试最大的区别在于前者是“创造者”而后者是“破坏者”。

  对于“创造者”而言,在心理上是不会对自己“创造”出来的产品进行破坏,就像每个人都会很爱惜自己的手工作品。而对于“破坏者”,心理上应该是属于乐于看到自己测试的系统“崩塌”的场面,就像拿着别人的手工作品摔砸扔来证明那个手工不行一样。

  又如在实际应用中,开发人员会说:“这个功能我测过好几遍了,没有问题了”,但测试软件却还是能在这个功能里挑出很多的问题,原因在于,开发人员测试时,心理上的关注点放在了“证明这个功能点可行”上,往往会无意识的绕过一些可能会引起问题的操作;而测试人员的关注点放在了“使这个功能点不行”上,会尝试各种可能造成问题的操作。所以“破坏者”需要利用你所有可知的测试策略与方法,对软件进行不同程度的“破坏”,检查各种状况下,软件的处理方式与系统的能力。

  (2)“第三方视角”&“好奇心”

  以第三方的眼光看软件产品是测试人员与开发人员在进行测试时最大的区别。除了“第三方的视角”,测试人员在心理上还要时常保持“好奇心”,随着测试的深入,测试人员应不满足于现有的测试成果,“好奇心”会让我想知道每次点击操作背后系统正在做些什么,驱使我去找程序员问个究竟或者看他们的代码是怎么写的,看看能否进一步优化系统;“好奇心”会让我想弄清楚究竟多少用户同时操作,系统就会崩溃,能否应付系统上线后的正常使用;“好奇心”会驱使我在想用户如果来使用软件的时候会如何操作,会遇到什么样的问题,会不会觉得繁琐。有了“好奇心”,才能让系统在上线前就做了更加完备的测试。

  (3)“兴趣”

  “兴趣”也是关键,做过软件测试工作的人知道,软件测试有时候是一个很繁琐枯燥的工作。比如测试一个表单填写提交的功能,需要使用不同数据进行填写并提交,所以非常有可能出现的情况是,这一星期,每天8小时的工作就是坐在电脑前,不停的做着“填写表单并提交”这样的简单机械时劳动,这时,“兴趣”是能让我摆脱枯燥的方法。兴趣是最好的老师,如果对测试工作真正感兴趣的,就会不断地研究测试相关的理论知识、技能技巧、工具等。就如上面说的“提交表单”测试,你可以把它当成一种挑战,目标是搞垮它,这时,就可以尝试各种各样测试方法:尝试不同的填写数字、在填数字的地方写英文、在写英文的地方写中文、将必填处留空提交、在填写框中复制上一篇10W字的文章、上传附件处上传各式各样的格式文件、上传50MB以上的图片文件、使用QTP反复快速操作、使用QTP Object对象方法篡改页面控件属性提交、使用Loadrunner模拟大量用户同时提交、提交的时候拔掉网线、用Sniffer或HttpWatch抓包进行观察等等,有太多的方法可以尝试,再使出浑身解数后,发现不知不觉中,已对表单的各种场景进行了模拟测试,提交了大量表单,时间也觉得一个星期都不够了呢。用一个比喻来说的话,如James A. Whittaker的《How to Break Software》说的,“像小时候我们拿上一个小玩具,可能就是一个陀螺,甚至是一个拖把,我们也会玩上半天也不会感到厌烦。我们会变着花样来玩它,我们扮演各种角色,把它当成道具,玩得不亦乐乎。现在的测试工作是什么,测试的对象有时候就是个玩具,只不过有些看起来过于严肃而已。如果我们能把软件当成玩具来玩,那么我们可能不会那么快就认为测试已经可以停止了。因为还有那么多有趣的玩法还没尝试。如果实在是玩腻了,还大可以把玩具狠狠地甩在地上,用脚踩几下,看它有什么反应。这也是一种测试方法!你是在进行破坏性测试!把你的小脚踏车一边又一边地从斜坡上冲下来,每次装上不同重量的东西,看装上哪一种东西会最快。哈哈,原来你是在做压力测试!”

  PS:经常有初入软件测试的人发邮件给我问,说做软件测试是如此的枯燥无味,而且很难在一个软件中找到更多的BUG了,或是开始抱怨回归测试的无聊时,我都会告诉他,你还没找到软件测试的“兴趣”。非常有幸的,我发现了“它”,它让我工作到现在仍能在软件测试中找到无限的乐趣与挑战,也是它,迫使我学习更多的知识。

  ......

本文转载自51Testing软件测试网,查看全文:http://www.51testing.com/html/60/n-827660.html

posted @ 2012-10-17 15:09 51testing 阅读(137) | 评论 (0) | 编辑 收藏
 
设计的软件测试用例是否越详细越好?

  软件测试人员设计测试用例的时候,面临的第一个问题就是软件测试用例的步骤是否越详细越好?或者如何把握软件测试用例的详细步骤?在这个问题上,赞成测试用例详细化的人肯定有不少,因为详细测试用例可以提供如下优点:

  1)缺乏经验或者技能的软件测试人员,可以按照测试用例的步骤顺利开展测试执行工作。这是脚本化测试实践中的思维:有经验与技能的测试人员设计测试用例,而缺乏经验的人员去执行测试用例。

  2)缺乏经验的测试人员,按照详细测试用例的步骤执行的过程,不仅可以帮助他们了解测试对象的功能与业务知识,也可以帮助他们了解测试设计技术与方法。

  3)更好的一致性。由于设计的测试用例提供了详细了步骤,每个测试人员按照这个步骤可以得到一直的测试结果,因此保证测试一致性。

  3)有助于测试用例的自动化。因为详细的测试用例提供了详细的步骤和期望的结果,因此将它们转化为自动化测试用例会相对比较简单。

  4)有时候提供详细的测试用例,是为了满足法律法规的要求,特别是针对安全关键系统,在有审计的情况下。

  尽管详细化测试用例可以有上述的优点,但是反对测试用例详细化的也大有人在,因为详细化测试用例也会导致一系列的问题:

  1)设计成本高:测试人员需要花费大量的时间投入到测试用例的编写上面。同时测试用例文档的页数越多,被完整阅读的可能性就越少。

  2)效果差:穷尽测试不可能,好的测试用例设计是从无穷的测试中选择合理测试输入、测试组合、测试数据等,以相对有限的测试用例数目尽量达到理想的覆盖率。而详细的测试用例设计很难完全定义这些组合和场景,实践中需要测试设计不断迭代和更新。

  3)维护成本高:测试用例的输入参考,例如:需求文档是经常变更的,这就会导致测试用例越详细,其维护的工作量更大。

  因此,测试用例的详细程度要求,并没有一个标准的答案,尽管我是轻量级测试用例设计的拥护者。测试用例详细与否,会受到各种因素的因素,例如:

  1)测试目标。测试人员测试该产品或者系统的目标是什么。假如测试用例文档不能支持这个目标,或者无助于达到这个目标,那么这样的测试用例设计文档价值就会降低很多。

  2)测试用例文档是产品还是工具。假如测试用例文档是软件系统或者产品的一部分,那么这些文档是需要发布给客户使用的,这时候测试用例文档就需要按照客户的要求遵循某种表尊。而假如它们只是内部使用的工具,那么就不必太完整、太整齐,能够在最低限度上有助于达到目标即可。

  3)软件设计变更是否频繁。如果软件设计变更很频繁,则不要将许多细节写入测试用例文档中,因为这些细节很快就会过时。这种情况下,不要编写大量的测试用例文档,它们被修改或者放弃的速度太快,不值得在测试用例文档上投入太多。

  4)采用的测试方法。假如目前采用的软件开发模型是V模型之类的线性模型,那么采用的测试方法通常是依赖于预先定义的测试,这时候需要详细的测试用例的操作和维护文档。假如采用的是探索性测试,则更需要策略方面的文档,例如:关于某个测试领域的想法,但不是具体的测试用例。

  5)测试用例文档给谁看。假如测试用例文档是主要给新的测试人员或者没有经验的测试人员看,那么需要足够详细使得他们能够正常开展工作。

本文转载自51Testing软件测试网,查看更多:http://www.51testing.com/html/news.html

posted @ 2012-10-10 14:27 51testing 阅读(172) | 评论 (0) | 编辑 收藏
 
软件测试人员就是QA吗?

  本期话题阐释:软件测试人员和QA完全不是一回事儿。

  作为软件测试人员,我们来学习和探讨QA那些事儿。

  首先,命题比较的应该是SQA,而非QA。

  QA,(Quality Assurance)即质量保证,包括各行业,如制造业、工业、船舶业等,在业务各个领域都设有QA部门来监管项目/产品,注意,只是在流程上进行管理、控制。

  SQA即Software Quality Assurance,特指软件行业上的质量保证, 是对软件开发测试过程中的各环节质量进行管理,看看符不符合公司的规程。其中不单有业务流程上的,也有产品/项目具体质量目标上的。

  软件测试是对软件产品的质量本身进行测试,是从技术方面出发测试软件。

  SQA偏重于质量管理体系的建立和维护,客户和认证机构质量体系审核工作,质量培训工作等。

  为了更形象地表述两者区别,必须引入开发人员角色,形成三足鼎立之局面。^_^

  举个例子。

  假设软件产品交付过程等同与学生考试的过程,那么在这个过程中:

  1、开发人员是做考卷的学生。

  2、测试人员是改考卷的老师。

  3、QA(SQA)人员是辅导员。

  软件产品是开发人员做出来的,产品是否可以在市场使用,考试是否及格,决定性的因素还是在开发。

  开发人员提交了结果,学生做完了试卷,是否及格?需要测试人员进行测试的分析与判断。辅导员对具体课程不必具有特别多的专业知识,但是他会要求开发人员要先复习,然后做模拟题,最后才参加考试。他只监督你是否复习过,这就够了。因为他知道,不复习直接考试,基本上就是不及格的命。复习了,总比不复习好。而对于测试人员,他也许不懂如何做题-。-,但知道最终答案术(如执行用例者),只要有标准答案,就可以评定答案是否正确,满足预期要求(软件需求)。

  所以说,软件测试与开发一样,是一个单纯的技术活,只是个结果控制。具体不多说啦~

  QA不涉及具体的技术,其实是个过程改进控制过程,是对整个过程的监督和改进,保证所有的标准和程序都被遵守,并且发现和处理相关问题。QA的工作涉及公司的全局,各个相关职能,覆盖面比较宽广,是保证生产过程受控或保证产品合格,着重于维护。

  以上纯个人理解,有不足之处望各位指正,谢谢!

  原帖地址:http://bbs.51testing.com/thread-806370-1-1.html

版权声明:本文由会员土土的豆豆首发于51Testing软件测试论坛每周一问活动。

原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。

posted @ 2012-09-26 13:26 51testing 阅读(199) | 评论 (0) | 编辑 收藏
 
好的软件测试人员是什么样的?

  这个问题是回应我上一篇博文的。因为我正在雇用一个软件测试员,我觉得应该给他点刺激。以下是软件测试这个职位一般应该具备的品质。

  一个好的软件测试员应该…

  ● 经常思考,什么是我现在能执行的最好的测试。

  ● 提交的bug含义明确,有清晰的复现步骤,能用简洁的语言把问题描述清楚。

  ● 不会因为开发人员的做法受影响。软件测试员不应该仅仅是因为他们能够理解那些决定开发人员做法的技术难点,就去全力维护自动化。应该做的是交流在当前有意义的领域,自动化是怎么工作的。

  ● 有能力理解利益相关者的业务。

  ● 足够专业,能认识到一个系统的某个部分对整个系统的影响;

  ● 有很强的解决问题的技巧。他们能够控制很多变数,并最终找到引发问题的那一个。他们能恰到好处的坚持。他们知道何时应该停止这个问题转向下一个。

  ● 能够熟练的沟通和倾听,务必做到完全彻底的理解。

  ● 非常谦逊的去问所有的问题(甚至是愚蠢的问题),同时又有足够的怀疑精神,能从众多资源中找到答案(保持信任但仍需验证)。

  ● 服从组织安排,坚持完成任务,同时留意未来的新任务。

  ● 有能力从海量的相互关联中隔离观察到的软件行为,并与整个团队交流这些软件行为。他们能够看着一个不完整的系统的部件,通过想象整个系统来推断该系统实际的优缺点。

  ● 是开发人员和业务分析人员的受尊敬的伙伴。他们越能理解测试人员的工作有多么努力,就越能表现的更友好。

  ● 自己发现了产品初期的bug就很兴奋,用户发现了产品后期的bug就很沮丧。

  ● 有能力处理让人紧张的截止日期,快速做出决定,并且为了利益相关者的终极最佳利益而放弃一些喜欢的流程。

  ● 是软件测试社区的积极的参与者,阅读测试书籍和测试博客,并参加本地的测试团体。

  ● 有良好的职业道德;能按时完成任务,完不成时进行良好的沟通,必要的时候一周工作40个小时以上,专业的,能服从组织安排, 关注整个团队的成功,诚实的,遵守规定的工作流程,遵守SOX法案,等等。

  我还漏掉了什么吗?以下是有价值的评论回复:

  另一个没有提到的品质是,测试人员应该有能力阅读和理解代码。举例说,如果测试人员看过单元测试的代码了,他就能用不同的方式实现自动化。如果单元测试做了完备的边界检查,然后测试人员就可以更专注于业务逻辑验证了。

  1、最好能具备良好的代码能力

  2、快速学习能力

  3、这还有一些(至少在我们这里)

  ① 一个好的测试员知道目前自动化测试的实现程度,在需要的时候能够做一些更新;

  ② 一个好的测试员能够在执行测试用例期间对用例进行维护(如果跳过了任何一个用例,给出解释);

  ③ 一个好的测试员知道什么时候违背一条测试用例是正确的,什么时候是不正确的;

  ④ 一个好的测试员尊重开发人员和其他的测试员的时间。

  4、①一个好的测试员知道什么时候应该测试盒子外面;

  ②一个特别好的测试员永远不会停止问问题;

  ③知道验证和确认之间的区别;

  别以为我会支持你说的这条,“测试员工作越努力,开发人员和业务分析人员越友好”。这会导致人们问一些愚蠢的问题,比如说这个,“测试员是否应该为有缺陷的软件负责”。

本文转载自51Testing软件测试网,查看更多:http://www.51testing.com/html/news.html

posted @ 2012-09-17 14:14 51testing 阅读(147) | 评论 (0) | 编辑 收藏
 
做软件测试工程师真的很容易吗?

  步入软件测试这行,是因为毕业后找到的工作实在不怎么样,去上海的同学说你也来上海做软件测试吧,软件测试入门的门槛不高,只要点点鼠标就行了,初级的工资也有2.5K左右。拿着“高工资”,坐在写字楼里当白领,这比当时窝在一个东北的小镇做一名职高的老师,每天上班14个小时,每天要喝胖大海来保证嗓子不哑,下一节课能正常讲课,每个月只能拿到600块,简直就是天堂和地狱的差距呀。听完同学讲后,义无反顾的打好行礼,踏上去上海的火车,从东北的小镇一路奔到上海。

  不久就找到了软件测试的工作,还一直做了下来,风风雨雨的居然做了5年了。刚开始的时候工作还真就是每天点点鼠标,测试用例长啥样都不知道,还真是轻松的不行。做的时间越长越感觉不是那么回事,点点鼠标完事了,总感觉自己好像哪里有欠缺,但又说不是出来。原来对于测试自己没有一个很好的框架,全是凭着感觉走,写过的测试用例,回过头来再看,自己都感觉看不下去,开始上网找资料,找模板,看别人是怎么写的。模模糊糊的总算能给别人讲清楚测试到底是怎么一回事了。测试不是自己一个人闷着干的活,总得与人打交道,打交道最多的就是开发人员,遇到好的开发人员还好,对于你提出的BUG,他们会给你讲是什么原因引起的,他的代码里哪里的问题,怎样改一下就好了,遇到不好说话的开发人员(别说你没遇到过这种人)直接啥都不对你讲,只对你讲一句“嗯”,你问他是为啥引起了这个BUG,他也不愿意答理你,或者给你讲一堆他们的语言,总要显得他们有多高深,足够把你气死。好吧,不是跟你们讲不到一起去吗?哪我就学你们的语言,我学开发语言,和你们有共同语言了吧,沟通的鸿沟缩小了吧。再继续做下去,发现同是做测试的,自己会的别人也会,别人会的,自己很多都不会,当别人问起说你最擅长的是什么,突然发现没有,总不能说自己擅长看书吧。总得有一样是自己拿的出手的。快速理解业务,梳理需求,设计和撰写出测试用例,这是最基本的,还有咋样才能提高工作效率呀,不能每天都是迷糊着撞钟,自动化测试、性能测试、安全测试就全都上来了,每一样测试都需要先深入理解业务、准备定位并整理出测试的需求点、设计出合理的方案和测试用例、能筛选出合适的测试工具并掌握工具的使用、对测试结果进行分析、定位问题......要使用工作进行测试,少不了得编写代码,只会录制回放会被人笑掉大牙的,分析结果就少不了和代码打交道,和硬件设备打交道,和数据库打交道......哪样欠缺了,拿出来的证据不充分,开发的就有可能不理你这根弦。

  总结一下,要做好一名软件测试人员到底有多难

  1、得有一颗保持“白痴”的心:测试往往都在被丢在最后才开始进行的,作为发布前的最后一道门,就得担当起用户的角色,想着用户是怎么用的,怎么用才感觉到好用。用户往往都是很笨的(虽然他们是我们的衣食父母,但经常被很多人这么描述),找不到哪是哪,做为测试人员就得把自己想像成对面前的这个东西不认识。即使你闭着眼都知某一个按钮在哪里,你也得保持对他不认识的态度,这叫返朴归真。

  2、不厌其烦的重复工作:开发人员提交测试的版本很少有一次测试通过的,发现的BUG,开发人员要改,改好了要继续测试,往往复复,你不能厌烦,如果厌烦了,就会有疏忽遗漏,小打小闹的BUG跑到了用户那里还好,要是影响了公司生计的BUG跑去了,最后背黑锅的肯定是你没商量。

  3、脑子够清醒,记忆力够好:不是有了测试用例就有了保障卡了,跑完了测试用例就跑完了测试的,测试用例也是人写的,人写的就会犯错和遗漏的,很多的BUG是你在不经意间搞出来的,这个时间你就得像录像一样,能回放刚才的操作。发现了100个BUG,有99个不记得是怎么操作才出现的,那跟没发现是一样的。

  4、清晰的逻辑思维:在测试前要写测试用例,干测试这行的都知道,可是测试用例写出来后,覆盖率能达到多少,这就不一定的,有的人的逻辑足够好,覆盖的面就足够广,有的人写来写去,最后把自己写迷糊了,他写出来的东西可想而知,有几个人能看懂了。

  5、要有良好的书写能力:写测试相关的文档,不是写散文和小说,用简单的语句就可以,不需要太多华丽的词语,重点突出别人能看懂就行,但也得书面化一点,不能口头语大白化太多,这是要给别人看的,要存档的。

  6、眼睛够毒,心思够细:能抓住别人容易忽略的细节,如果你是一个粗线条神经的人,你会漏掉很多美好的东西;

  7、与人沟通的能力:没有人生活是真空的,有人的地方就得有沟通,项目延期了,要压缩测试时间,得去沟通;几个人一起测试一个项目得去互相沟通,发现BUG了;对BUG的意见与开发人员不一致,得去沟通;因为项目的需要,得借助其他项目组成员帮忙,得去沟通;有那种很讨厌的开发负责人,自己手下烂的要命,他还特别护犊子,不让你说他手下的不是,你又得去沟通。总之沟通的没完没了。

  8、团队协作能力:每个人都是有个性的,在家你是万人宝,在外面就不一定了,不可能还是所有人都是围着你一个人转的,所以请收收你大小姐,大少爷的脾气。团队不是个人英雄主义。你帮了别人,反过来别人也会帮你的,记住这样一句话,“帮完了所有了,也就帮了你自己。”

  9、有危机意识:如果你真的认为测试就是点点鼠标,用个这个法那个法的写个测试用例,就完了,那你也离彻底完蛋就不远了。

  10、会点开发语言和对数据库有一定的了解:工作中沟通最多的是开发人员,他们有自己的一套语言,如果我不懂他们的语言,与他们沟通就会很麻烦,所以要了解他们的语言;如果你想做到你够牛,在开发人员提到你这个测试的时候,不会条件反射的想到你只是点点鼠标然后给他们找一堆麻烦的人,那你除了给他们找到麻烦外,最好还能告诉他们,他们的的麻烦在代码的哪一行,是哪个方法引起的,怎样改,他们的麻烦就解决了,这样的话,他们就把你当神一样崇拜了;做测试的时候,总免不了要写一些测试的脚本之类的,写代码是开发人员的特长,但你不能总是麻烦别人吧,如果你跟他的私人关系好,他可能会很快的帮你写,如果关系不好,他可能就不帮你写或者把你的事情排到后面,明明是公家的事,却沦为了私人交情,这也太怪异了吧。如果你愿意天天抱怨和丢下不做了,那没关系,到时候你可以去你头头那里讲你的困难和理由,还很充分的。

  11、有点不怕死的精神:你的头有不对的地方,你合作的开发人员的头有不对的地方,除了听他们手下的人抱怨外,敢对他们去讲他们的错,你是一个旁观者,讲出来会更客观。

  12、会除了黑盒手动功能测试外的另外一种测试:功能自动化测试、性能测试、安全测试、灰盒测试,很多,精通一样,自己就有了一种资本, 没办法,行业趋势如此,如果你对人讲你会测试,测试方案设计的很好,测试用例写的很好,别人大脑里映射的是你只会点鼠标,就连做测试的也会这样认为,只要和性能测试、自动化测试沾上边,就认为你是神了。请注意这里的会性能测试、自动化测试不是说会使用某个或某些工具,是会。工具就是给人来用的,如果你不能确认你想做的事情是不是对的,事情的方向是否正确,结果中发现的错误是什么原因引起的,那你就是不会。但是很多人就是那么肤浅,衡量一个人就是看会不会用某个工具,一些很牛X的公司在面试的时候居然也会问出某某个函数与某某个函数的区别是什么,现在的人不缺的就是google,在哪里都能google出他想要的结果,两个函数的区别,或者说在一个脚本的代码里用哪个函数比较好,只要长了脑子的都能弄出来,真搞不明白,他们还会问这种问题,对于前期准备、方案设计倒是不问。

本文转载自51Testing软件测试网,查看全文:http://www.51testing.com/html/25/n-821925.html

posted @ 2012-09-10 13:36 51testing 阅读(141) | 评论 (0) | 编辑 收藏
 
51Testing专访史亮:带你走进探索式测试

  史亮简介:

  史亮,男,毕业于东南大学,获得计算机软件与理论专业博士学位,研究领域为软件分析与测试。于2006年加入微软(中国)有限公司,任职软件开发测试工程师,负责微软在线服务与商业智能产品的测试工作。于2011年工作调动至微软总部,从事下一代Microsoft Office产品的测试工作。

  探索式测试的概念与现状

  51Testing:最近主要在从事哪方面的工作?

  史亮:我正在测试下一代Microsoft Office产品,测试对象是Windows桌面应用。

  我与高翔合著了《探索式测试实践之路》一书,由电子工业出版出版发行,即将在2012年8月上市。该书针对测试人员对探索式测试的困惑与误解,分享了作者们在探索式测试领域的实战经验和反思总结,并介绍了业界专家的相关见解。希望读者不吝赐教。

  51Testing:随着敏捷测试的推广,探索式测试逐渐受到测试人员关注和重视的同时也感到相当的困惑。那么到底什么是探索式测试?

  史亮:作为一个技术术语,“探索式测试”是测试专家Cem Kaner博士在1983年提出的,并受到了语境驱动测试思想的指导。目前,影响力最大的定义是Cem Kaner的论述:

  探索式测试是一种软件测试风格,它强调独立测试人员的个人自由和职责,为了持续优化其工作的价值,将测试相关学习、测试设计、测试执行和测试结果分析作为相互支持的活动,在整个项目过程中并行地执行。

  该定义包含三个方面的内容。

  第一,探索式测试是一种软件测试风格,而不是一种具体的软件测试技术(如等价类划分、边界值分析等)。作为一种思维方法,探索式测试强调依据当前语境选择合适的测试技术,而不局限于特定的测试技术。测试人员可以在探索式测试中使用任何一种测试技术,也可以将探索式风格应用于任何测试活动。

  第二,探索式测试强调独立测试人员的自由和责任。测试人员应该为个人和团队负责,调动所有能量,发挥人的灵活性,在整体上持续优化个人和团队的产出。

  第三,探索式测试建议在整个项目过程中,将测试相关学习、测试设计、测试执行和测试结果分析作为相互支持的活动,并行地执行。实际上,人脑难以并行地执行多项任务。探索式测试旨在将测试学习、测试设计、测试执行和测试结果分析作为一个循环快速地迭代,以不断收集反馈、调整测试、优化价值。

专题入口:http://www.51testing.com/zhuanti/exploratory.html

  51Testing:您觉得目前普遍存在的问题有哪些?

  史亮:我认为目前主要的问题是一些测试人员对探索式测试存在较多的误解,例如:

  ● 探索式测试就是即兴测试(Ad-hoc Testing)。

  ● 探索式测试不编写文档。

  ● 探索式测试的测试设计只发生在测试执行的时候。

  ● 探索式测试的应用领域是手工的功能性测试。

  ● 探索式测试的过程是不透明的,难以追踪、解释和度量。

  ● 探索式测试只是脚本测试(Scripted Testing)的补充。

  ● 探索式测试比脚本测试有更高的风险。

  ● 探索式测试只适合测试专家,不适合测试新手。

  我发现一些很优秀的测试文献在此产生了不好的影响。例如,《敏捷软件测试》将探索式测试置于测试四象限的第3象限(如下图),而该象限的特征是:以手工测试为主、面向业务领域、评价产品。这种观点严重局限了探索式测试的应用范围。

  实际上,探索式测试能够很好地应用于所有四个象限,包括半自动化测试、自动化测试、基于工具的测试等。例如,第4象限的安全测试。请想象一下黑客是如何攻破软件产品的。他们的基本方法是“错误猜测”:通过分析已知的安全缺陷,抽象出可利用的缺陷模型,然后开发出相应的缺陷挖掘工具。这些工具可以是黑盒工具,通过持续地输入攻击数据来发现缺陷;也可以是白盒工具,通过扫描源代码(或目标代码)来识别漏洞。他们运行工具,分析输出中的蛛丝马迹,一旦发现疑似缺陷,便深入探索。整个攻击过程常常需要广泛扫描、深入挖掘、迂回前进、反复尝试。从安全测试的角度看,黑客都是探索式测试的绝顶高手。

  《探索式测试实践之路》系统地讨论探索式测试,有助于消除误解,建立正确的观念。其中,第7章详细讨论了探索式测试与测试自动化的互补关系,介绍了如何利用探索式风格来开发测试用例和测试工具。通过若干探索式自动化测试的实例,说明探索式测试的风格与思想同样适用于测试开发。

专题入口:http://www.51testing.com/zhuanti/exploratory.html

  51Testing:探索式测试的思维方式与其他的测试方法有什么区别吗?

  史亮:探索式测试的核心优势是有助于“学习”。此处的学习是指学(获取知识)与习(应用知识)的持续过程。

  对于测试人员,软件测试是一个持续学习并实践的过程。他的学习范围包括:行业知识、用户角色、软件产品、计算平台、编程技能、测试技术、程序缺陷、项目环境等。

  测试人员不需要在项目之初就掌握所有知识,他可以通过每天的工作去逐步理解用户、项目、技术和团队。更重要的是,他需要在每天的工作中实践所学的内容:规划测试方案、创建并执行测试用例、分析测试结果和编写测试报告。实践是练习,是“学”的自然延伸。知行合一才构成“学习”的完整内核。

  探索式测试在本质上鼓励测试人员去自由地探索、创造和应用。

  ● 探索是带着使命在某个空间中有目的的漫游,但没有预先确定的路线。探索包括不断学习和实践。

  ● 探索式测试者持续应用他所学到的知识。所谓“学而时习之,不亦悦乎”,探索式测试将学习与应用作为相互支持的活动逐步展开,为测试者的知识提升提供了平滑的学习曲线。

  ● 探索式测试有助于测试人员在合适的时间学习合适的内容,并立即应用,以获得真实反馈。这提高了学习效率和效果,并降低了浪费测试资源的风险。

  ● 在探索式测试中,测试者创造出一切有助于学习和实践的数据和工具。它们包括测试输入数据、结果检查脚本、数据分析报告和业务流程图表等。

  ● 探索式测试是一项富有智力挑战的活动,充满了乐趣。

  学习的一个重要成果是成为更优秀的测试人员。他们可以根据项目语境,选择合适的流程、技术和工具来高效地测试,以推动软件质量的提高。

  51Testing:执行探索式测试的具体方法有哪些?

  史亮:探索式测试是一种测试风格,强调依据当前语境选择合适的测试技术。

  在这种测试风格的指导下,涌现出了一批支持探索式测试的测试技术。例如,James A. Whittaker在《探索式软件测试》中提出了一套基于系统化错误猜测和测试隐喻的“漫游测试”技术,丰富了探索式测试的手段。又例如,Jonathan Bach和James Bach发明了基于测程的测试管理,显著地提高了探索式测试在测试组织、汇报、交流和度量上的能力。再例如,开发工具Microsoft Visual Studio 2010开始支持手工测试和探索式缺陷,Visual Studio 2012进一步增强了对探索式测试的支持,这体现了软件行业对探索式测试的认可,也表明探索式测试辅助工具和自动化将获得更多的重视与发展。

  ......

专题入口:http://www.51testing.com/zhuanti/exploratory.html

posted @ 2012-09-03 14:15 51testing 阅读(137) | 评论 (0) | 编辑 收藏
 
《51测试天地》第27期电子杂志征稿

灵感是写出来的--《51测试天地》第27期电子杂志征稿咯~~

  征集内容:51Testing要求"原创首发"或者"国外原文翻译"的稿件,稿件形式包括但不限于软件测试经验、经历、见解、感想、随笔、笔记等所有与软件测试内容相关的一切稿件。

  独乐乐不如众乐乐,在软件测试方面,有自己的心得体会吗?希望分享某个技术领域的实战经验吗?那就赶快来投稿吧!

  稿件要求及稿费相关说明:

  1、原创文章征稿--菜鸟也能煮酒论英雄,详情请见 http://bbs.51testing.com/thread-77515-1-1.html

  2、翻译文章征稿--闭门造车不如师夷长技,详情请见 http://bbs.51testing.com/thread-86083-1-1.html

  投稿方式:

  发送稿件至邮箱:editor#51testing.com(请将#改为@)

  联系方式:

  QQ:1301322558;

  51Testing电子杂志《51测试天地》热切期望更多的软件测试领域的朋友前来投稿,共同搭建好《51测试天地》这个学习交流的平台,从而帮助自己、同行及中国软件测试领域更快、更好的发展!

  为了帮我们做得更好,欢迎您对《51测试天地》电子杂志提供宝贵的意见或建议,谢谢O(∩_∩)O~

posted @ 2012-08-24 16:24 51testing 阅读(158) | 评论 (0) | 编辑 收藏
 
软件测试工作中对问题的发现和改进

  软件测试并不是一项一成不变的工作,南京达内提醒大家要善于发现软件测试中存在的一些问题,通过不断改进的测试方法来让自己进步。

  一、软件测试用例设计的不同维度

  软件测试用例设计的时候,可以有不同的维度来考虑。一般来说,是按照开发的流程和数据的准备过程设计的测试用例。由于逻辑较多、数据流较复杂,造成用例图很大,分支很多。进行case评审,讲解的时候比较麻烦。对case进行设计,可以按照用户的维度或者说是功能的维度进行考虑。例如涉及到字段逻辑的,列出来有哪些字段,按照每一个字段的逻辑来书写case,这样讲解的时候会比较直观,同时后续接手的时候看起来也会比较清晰。

  当逻辑较少时,两者相差无几;但是逻辑字段较多,第二种用户维度的case设计就有了较大的优势,直观,能够为测试执行提供一个清晰思路,不会漏测,也不会做重复的无用功。

  二、软件测试用例的粒度

  软件测试用例设计的粒度,是否应该包括测试数据的准备全过程。一个完整的测试用例,是需要包含测试数据的准备过程的。即测试用例图中,针对每一个功能点,包含完整的数据流,可以完全按照测试用例的分支构造数据,而不需要别的文档辅助。但是这样会有一个问题,每一个分支只能覆盖一个功能,也就是说,每一条测试数据,仅能够覆盖一个功能的分支,在测试执行方面会比较花时间。尤其是同一条数据,可以验证多个相似功能点,但由于测试用例设计中将多个相似功能的区分开,执行时需要构造多条数据。测试的时间大部分花在重复构造数据阶段了。

  对于比较复杂的逻辑,在设计软件测试用例的时候,可以有两份,一份是很完整的包含测试数据准备的,每一条分支划分很细致的用例;另一份是用来测试执行的,将能够一次覆盖的多个分支合并到一起的用例,两个用例图互相参照。对于测试人员的思维来说,是一个先分再合的过程,先将逻辑拆散,细化到每一个分支,再将相似或者相同的分支合并,这里面使用了等价类划分的测试执行方法,即正常用例的时候,一次尽可能多的覆盖。

  三、软件测试用例传承

  有的时候看之前wiki的内容,虽然有软件测试用例图,但是看不太懂,接手的时候还是需要再问。如果需要在线上对逻辑进行验证,花的时间很多。从需求设计文档的文字到测试用例的图形,是有一个归总的规程。每个人的思维不同,归纳整理的思路也是不同的。以后的业务逻辑整理到wiki的时候,能够在保留用例图的同时,将文字的描述也写进去,同时写清冒烟的时候该怎么找验证。即wiki包含三部分内容,一部分是从数据源到输出结果,即需求设计文档描述的,经过软件测试人员思维整理细化的文字描述;另一部分是从输出结果反推到数据源的过程,即根据输出,追溯到输入数据,验证输出是否是由输入数据经过规定的逻辑得来的;最后一部分是测试用例图。这样后续接手会方便,冒烟的时候哪怕不了解这个业务的逻辑,按照wiki手把手的讲解,也可以顺利验证问题。

  发现问题,找出办法,解决问题,是每一行每一个人想要进步的普遍定律。

本文转载自51Testing软件测试网,查看更多:http://www.51testing.com/html/news.html

posted @ 2012-08-17 14:00 51testing 阅读(428) | 评论 (0) | 编辑 收藏
 
谈国内软件测试盲点和与国外的差别

  工作两年有余了,尽管中间做过开发,管过服务器,当过BA,不过大多数时间都在专业软件测试或者软件测试管理,接触了国内外大小项目七八个,当然,其中不乏并行。从普通人员到主管,对于自己的成长和职业发展,都还算是满意的。最近准备带团队进行自动化测试框架的开发,不乏在下一阶段努力之前,总结一下过去,比较一下国内外软件测试行业。

  很多国内客户甚至项目经理都觉得测试不过就是点一点,看一看。其实“点一点”的测试只能算是软件测试的“新手村”,但是纵观现在的软件公司,无论招聘时候需求什么“自动化测试啊、掌握lr”等等,真正工作中仍然是仅仅以手工测试为主。当然,这与国内软件现状有关,很多情况下自动化测试并不使用。

  今天我们抛开自动化测试不谈,也抛开白盒,只谈黑盒测试。仅就黑盒测试而言,我们又缺少了什么呢?

  我跟过几个国外的项目,也跟国外的客户有过深入的交谈。我发现不同于国内客户注重功能,国外的客户更重视安全、用户体验。举个简单的例子,一个偏娱乐性的网站,sprint1客户查看的时候要求是功能可以没有,但对页面和安全性严格到了一个令人发指的地步。同时,他们对软件测试人员的重视程度也让我刮目。

  除去几个软件行业的巨头,其他一些中小公司,尤其是外包类公司,试问有哪个测试人员是参与项目设计的,有哪个测试项目会集中时间进行安全性测试,又有哪个公司会重点关注用户体验的?

  当然不是说没有,只能说很少。更多的测试人员还是集中在或瀑布或敏捷的开发模式中,执行着功能测试用例。

  也说说测试用例设计,我接触最多的是基于Web的办公系统,用例中最长出现的就是“XXX操作成功”之类的话。仔细想想,这种语句出现在功能测试用例中,有多大意义呢?难道我们真的能相信所谓的系统提示吗?从开发的角度来看,这个系统提示恐怕不过是个简单的js-alert。或许页面上的操作根本没有让中的数据更新。如果现在让我写功能测试用例,我会写明是某张表的某些字段被更新了,更深入的测试出功能执行的情况。

  当然说了这么多,仍是一家之谈,欢迎朋友们讨论指正。

本文转载自51Testing软件测试网,查看更多:http://www.51testing.com/html/news.html

posted @ 2012-08-03 16:34 51testing 阅读(137) | 评论 (0) | 编辑 收藏
 
《51测试天地》第26期电子杂志发布啦

  当西班牙完美的完成了他们的卫冕伟业时,2012欧洲杯正式落下了帷幕。西班牙把团队力量发挥到了极致,通过不断的传球、渗透来找到对方的空隙、漏洞,并给出致命一击,夺得最终胜利。在测试中,测试人员就好比是后卫们,负责着最后的防线,而开发人员则是主要负责进攻的前锋,如同足球比赛,攻守平衡才能降低风险,取得项目的成功。

当我们还在细细回味这场精彩的欧洲杯时,火红的年轮已悄然转到火热的夏季。《51测试天地》向您展开她第26期的历程。从创刊到如今已是26期,是您们颗颗火热的心映照这方园地,衬亮了她的每一期,是您至诚的热情掀动着她的每一页,她每一期的每一页在您热情的手中一页页翻过。

7月,盛夏,又是一年毕业季,是否还记得毕业时的伤感离别?是否还记得找工作时的迷茫以及关于自动化测试学习过程中的一些事?是否还记得那些曾经一起玩自动化测试的同行们?《51测试天地》26期给你不一样的精彩。

在此也要感谢广大会员对《51测试天地》的支持,有了你们精彩的稿子才有杂志的成功出刊!在测试的道路上有了你们的陪伴,大家都不孤单,也让沿途风景如画,多彩多姿!真诚的对大家的支持说声:谢谢!每一个读者也都是同行人,跟杂志一起成长的人,有趣味相投的读者们一起度过人生最美好的时光,对杂志人来说,是一件多么荣幸的事,这也是每一个杂志人继续做下去的最大动力。

在这个激情的七月,你是否也想燃烧起来?那就赶快来投稿吧!

《51测试天地》第二十六期电子杂志下载地址:http://www.51testing.com/html/58/n-817758.html

目录:

● 我的性能测试方案设计的方法和思路..........................5

● 如何构建基于Quality Center 的Web 服务 ...................13

● 如何使用正则表达式检验Image 对象上的文字信息的格式.......18

● Lib 库实现loadrunner 测试mysql 性能 .....................23

● 小公司如何做好软件测试...................................26

● 第三方系统验收测试特点...................................31

● 那些年一起玩过自动化测试的同行...........................33

● 网络服务软件应用存在问题及应对措施.......................35

● Android 应用之黑盒安全测试 ..............................37

● 那些年,我们一起做过的性能测试...........................40

《51测试天地》第二十六期电子杂志下载地址:http://www.51testing.com/html/58/n-817758.html

posted @ 2012-07-25 13:38 51testing 阅读(140) | 评论 (0) | 编辑 收藏
 
仅列出标题
共55页: First 36 37 38 39 40 41 42 43 44 Last