软件探索性测试 笔记一

一些有意义的条目:

  1、考虑自动化是否能发现有价值的缺陷,是否经得起时间的考验,是否值得付出维护费用

  2、决定需要测试什么和何时测试

  *对于每一个被发现的缺陷,明确的讨论它应该在什么时候被发现

  3、决定如何测试

  *是否有一种特殊的路径引导人员找到这个缺陷

  *这种功能或特许最好用哪种给定的方法来测试

  *知道当前已经进行了哪些测试,以及我们目前和将要进行的测试如何才能增加总体测试效果

  *发现软件问题,需要实际用户在实际的环境中,用实际的数据,去做实际的工作

  *简单重复的工作实现测试自动化

  4、测试中最困难的部分是:决定测什么,决定测试的完整性,确认用户场景等

  5、哪些是好的测试,哪些是不好的测试;完成测试后,团队学会了什么?

  测试修行:(很重要)

  1、将测试分为两部分,即“测试今天的项目,准备明天的项目”

  *保证当前的测试项目获得成功

  *学习应该做些什么以便下一个测试项目更紧容易

  2、警惕重复做一件事情,尝试能不能自动化

  3、思考:

  *我们用什么技术找到了那个缺陷?

  *我们是否可以创建一种方法来找到更多这类缺陷?

  *是否可以记住一些实际的测试经验并不断加以应用来提高测试效率?

  *软件的哪些症状可以提示我们它有缺陷?

  *我们将来能否从那些症状中得到更多的警示?

  *这个缺陷教会了我们什么?

  因而总结一系列的测试技术、建议和工具

  4、反思:

  *自己的测试流程是否有问题?

  *测试流程里有没有缺陷?

  *这里面是否存在妨碍我提高效率的障碍

  *例如:

  1)收集我们发布给用户的所有缺陷(特别是安全漏洞或者数据缺陷):

  反思我们是否有流程问题,思路是否有方向性错误,或者是否犯了错误

2)分析每个缺陷,争取做到:

  停止写出类似的缺陷;更擅长寻找类似的缺陷;当类似缺陷发生时,该如何识别它们

  3)能让团队的开发人员、测试人员或者策划等,知道和明白自己所写过的每个缺陷

  4)将学到的内容整理成文档,构成已知缺陷的知识体系的基础部分,也尝试通过新的方法,或者自动化的方式来预防错误

  5、当发布每个缺陷时,多问问自己几个why 和how:

  *一开始是什么错误导致了这个缺陷?能帮助开发小组建立一套系统知识,来减少错误么?

  *出现什么样的失败症状时,能告诉我们现在存在这个缺陷?如何将有缺陷的行为从正确行为中分离出来?

  *哪些测试技术可以找到这个缺陷

  6、学会使用工具,和掌握信息,了解信息如何影响测试

  *来自应用程序的信息,包括:需求、体系结构、代码结构、源代码、程序执行时做了哪些事情的运行信息

  *确认代码更新或缺陷修复时,哪些测试会受到影响

  对自己的训练:

  1、理解软件:

  *软件可以做什么?本意是什么?

  *它使用哪些外部资源来完成任务?

  *它的的主要行为是什么?

  *它如何和环境交互?

  2、理解软件故障:

  *是否存在某些编程习惯或者程序语言特别倾向于导致这种类型的故障

  *这些特定的故障是否可能出现在某些特定类型的软件行为中

  *这些特定的故障是如何使自己显示为失效的

  3、理解软件失效:

  *为什么软件失效

  *软件如何失效

  *是否有软件失效的症状可以揭露我们的应用程序的健康状况

 *某些功能是否有系统问题

  *我们如何迫使特定的功能失效

  自我总结:

  1、记录测试完整性的部分

  *测试用例的执行情况

  *测试用例的覆盖面

  *版本更新情况和用例维护情况的对比

  *版本复杂度和重要性,与用例的覆盖的对比

  2、考虑哪些可以用图形来表示:

  *测试了哪些,哪些没测试

  *测试的功能模块的复杂度

  *功能模块内部的依赖关系和外部的依赖关系

  *哪些需要重点测试

  *测试了的部分的完成度,特别是针对重点模块的

  3、找出软件缺陷的能力,需要同考虑如何减少软件中的错误结合起来,这样的能力才是真正的有意义。(回顾起来这也是我以前做的很不好的一点)

  *想起以前看到的一个有意思的观点是:

  “软件测试的真正价值并不体现在代码中找到多少缺陷,而是发现设计和编程人员解决问题方法上的局限、思路中的狭隘和技能方面的不足。”

  PS:我不是自动化测试的fans,也不是人工测试的fans;不相信有包治万灵的银弹,但是如果只有一种锤子,那么所有的钉子也会被看成是同一种钉子了!那是悲剧,不是福音!

  这些要是都做到了,自己成了专家,同时也可以按照一套体系帮助更多的人一起更好的测试了(hoho)

  从新整理了一下思路,发现其实要做的,要改进的东西还很多,需要加油!

本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-11-20 20:35:17

软件探索性测试 笔记一的相关文章

软件探索性测试 笔记二

测试十戒律: 1.你应该使用大量输入,来反复锤炼被测的应用程序 大规模的随机测试(自动化),而且有助于理解输入和输出的关系: 2.你应当贪图你的邻居的应用程序 3.你应当亲自寻找睿智的预言家 对应的输入是否有对应的输出,也就是测试基准是否清楚的了解特定输入和环境条件组合的情况: 尝试让测试基准自动化,也许做不到,但是这样思考你可以选择做更有效率的工作: 4.你不应该崇拜无法重现的失效 尽最大努力注意并记住(或记录下)对软件采取的动作次序,同时记住应用程序的响应: 考虑使用调试器之类能追踪动作和软

软件探索性测试 笔记四

*建立起一个全局目标后,再开始测试 探索式测试的几个目标: 1.理解应用程序如何工作.它的接口看起来怎样.它实现了哪些功能 2.强迫软件展示全部能力: *目的是让软件努力运行,证明软件确实实现了设计时所要求达到的功能 3.找到缺陷,并有目的的使缺陷数量降为零 把软件特性划分成几个相互重叠的"区域",具体区域和测试方法如下: 商业区: *含义:用户所要使用的软件特性和功能,你的软件包装盒上描述的特性和掩饰的特性及代码 测试方法: 1.指南测试法:根据用户说明书来测试 2.卖点测试法:观摩

软件探索性测试 笔记三

把所有要做的事情按照优先级排序,然后从最重要的事情做起 进行局部探索式测试的决策的5要素:输入.状态.代码路径.用户数据.执行环境 输入: 1.识别哪些输入值和其他输入有关联,在同一个测试用例中使用它们 2.识别和考虑输入的先后顺序 3.注意区分非法输入是input filter.还是input check,还是使用exception *留意是否可以绕过input filter *留意ctrl,alt,shift按键组合的字符,找出特殊字符 4.注意测试不输入任何值的情况.默认值的情况 *留意默

自动化测试(AT)与探索性测试(ET)

软件自动化测试 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程.通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较.在此过程中,为了节省人力.时间或硬件资源,提高测试效率,便引入了自动化测试的概念. 前提条件 实施自动化测试之前需要对软件开发过程进行分析,以观察其是否适合使用自动化测试.通常需要同时满足以下条件: 1)软件需求变动不频繁 测试脚本的稳定性决定了自动化测试的维护成本.如果软件需求变动过于频繁,测试人员需要

寻找用户轨迹的“探索性测试”

国内的大部分公司在做交互设计的时候很大部分都是处于探索阶段,但是因为产品的商业价值很难允许失败,所以很多设计师对于交互设计的结果都很难确定,甚至会因此屈服于商业价值,从而导致了一个恶心循环. 在上次的D4设计论坛中,针对于口碑网改版的设计方法,UT斯达康的设计经理提到了利用新旧入口的方式来进行用户测试,并提出了使用新界面提供老界面入口的方式进行用户测试.在我们设计产品的时候其实也可以利用产品的特性进行一些"探索性测试". 测试大致可以分成几种:一种是验证性的测试,在知道结果的前提下进行

易用性测试和探索性测试

近些年来,随着敏捷开发方法和互联网企业的发展,易用性测试和探索性测试被越来越受到关注. 客户也经常提这样的概念或者尝试实践.有些客户可能只做易用性测试,有些客户则关注探索性测试.还很少看到两者都做得.这里简单诠释下两者的相同和不同,如果有不同意的地方,敬请指正. 相同点 1. 易用性测试和探索性测试都是面向业务的测试.所谓面向业务的测试是区别于面向技术的测试,它更多关注用户感受,逻辑是否合理,流程是否正确,功能是否有遗漏等. 2. 两者属于手工测试范畴.虽然有时候用户也可以用工具辅助做探索性,但

探索性测试的18个总结

1)探索性测试与脚本化测试的主要区别:1)探索性测试将更多更高的认知水平的工作放在测试执行,而脚本化测试则更关注测试设计:2)前者更强调测试活动的并行和相互反馈(学习.设计.执行与结果分析等),而后者的测试活动是相对串行的. 2)脚本化测试的主要优点是:1)尽早发现缺陷:2)不同利益相关者参与评审:3)可重用性:4)测试覆盖率评估. 3)脚本化测试强调测试的尽早介入,如尽早设计测试用例.但是测试人员越早设计测试用例,对测试对象的了解越少,对风险的了解也越少.测试人员对测试对象的了解是一个逐步的过

初探团队基于session的探索性测试

如果你是一名测试人员,那么不管你对探索性测试的了解是多是少,我肯定你一定用过探索性测试的方法.想想看,你是否曾经这样测试过?不仅仅按照测试案例或者脚本上写什么,就完全使用那一套相同的数据.一模一样的流程,而是根据你执行时的所见,临时有所想和所动,进行一定程度的自由发挥?我想你肯定有过,这就是探索性测试,它将你的测试与纯基于脚本的测试(script. based testing)区分开来.而这种自由发挥,因为是有大致方向和范围的,所以也与完全盲目乱点的猴子测试(monkey testing)不同.

win8高效辅助软件兼容性测试

  用户们在这个经典的Windows操作系统平台上,得到了视听.娱乐以及各种安全服务的同 时,通过一些第三方的辅助软件,Windows能够高效地提高人们的工作效率,这一类高效服务类工具,最终发展成为一个比较大的类别.那么,在目前最新的 Win8系统平台下,这一类的软件应用的兼容性如何?我们将和大家继续来探讨. 往往在PC上使用了这样的工具软件,都能提高或者辅助用户的工作和学习,而对于目前最新的Windows操作系统来说,这个系列的软件也都是用户所需要的实用工具,我们抽取该系列软件中的部分软件来进