颠覆完美软件:软件测试必须知道的几件事(读书笔记2)

  1、为何要进行测试?(第1章)

  一、人类的思惟不完美

    咱们的思惟是不完美,不管咱们多想尽力的完成一项工做,都会可能会在某一点上出错。咱们要让本身作出的决定比不进行测试的时候要更好。编程

  二、经过测试决定软件产品是否能卖出去

    做为软件生产者,咱们要经过测试来了解软件产品是否可以卖出去。要从客户的角度去进行测试。工具

  三、决定可能有风险

    风险的评估存在主观性:1.风险是针对将来进行评估的,将来可能会发生任何事情;2.不一样人对同一种风险的感觉是不一样的。测试

    经过测试获取的信息可以下降决策带来的风险。spa

  四、测试能够提供下降风险的信息

    由于不一样的人,不一样的项目,不一样的时间都意味着对风险的不一样理解。须要设计对应的测试来回答不一样的问题。操作系统

    1)软件是否可以作咱们但愿它作的工做?设计

    2)若是软件不能作咱们但愿它作的工做,须要多扫工做才能解决这个问题?内存

    3)软件是否作了咱们不但愿它作的事?资源

    4)软件是否可以达到咱们的预期(有没有实现其目的)?开发

    5)软件可以作用户但愿它作的事吗(用户满意吗)?文档

    6)软件是否知足了其余的商业要求?(计划外的维护和技术支持)

    7)失败的可能性和后果严重性如何?

    经过设计测试用例和执行测试计划,能够提供以上问题答案的信息。

  五、相关常识

    1)试图进行完美的测试,会让你完蛋

    2)测试人员的职责是为决定提供信息(但不是全部信息),作决定是经理要作的。

    3)在作决定时应考虑全部相关信息,须要考虑开发人员、测试人员和用户等人的意见。

    4)因惧怕未按计划交付产品,就交付尽是错误的产品,可能致使公司巨大损失。

    5)测试只是收集有关产品的信息,测试自己不会修复发现的错误。测试不会改进产品,改进是由那些修复测试发现缺陷的人实现的。

    6)不存在一个“测试阶段”只进行测试,测试应该是贯穿于整个项目。

  2、何时能够不进行测试?(第2章)

    若是存在任何缘由致使不须要使用测试结果提供的信息,就没有必要进行测试。测试获得的信息不可靠,也没有必要测试。

  一、测试后风险增长

    软件行业的经理常常须要作出带风险的决定,一般在得到部分信息的状况下作出决定是比较保险的。但有些时候经测试得到信息可能会增长决定的风险。

    1)对项目进行太多测试,可能推迟发布产品而不能及早进入市场;

    2)测试提供的信息,开发人员因测试提供的信息,进行的程序修复可能会破坏程序其余部分的运行;

    3)测试发现问题,可是并未引发重视进行修复,可能会致使后续的问题。

  二、对测试反馈的信息无动于衷

    须要解释并使用测试产生的信息。

    1)测试人员提交测试报告后,应对报告进行仔细审核,找到有用的信息;

    2)测试人员不清楚怎么测试,应对他们进行培训;

    3)测试人员不能很好理解软件,应对他们进行培训;

  三、因感性而非理性所作的决定

    人们存在一种感情倾向,不但愿发现本身犯了错误。因此人们会作出与理性使用信息没有关系的决定。

  四、不良的测试

    考虑不周的测试或者执行过程不佳的测试都属于“不良测试”。这样的测试会让人认为产品的质量高于实际质量,致使提早交付。或者产品质量低于实际质量,致使推迟交付,损失效益。这都是不可取的。

  五、产品没有准备好接受测试

    有如下几种状况,说明产品还没有准备好接受测试,那么就没有必要进行测试,状况以下:

    1)测试是否有助于解决产品存在的至少一个问题?

    2)是否但愿知道该问题的答案?

    3)是否只是漫不经心地对待测试结果?须要对测试发现的问题追根究底。

    4)是否预先和测试人员就经过测试的标准达成一致?

    5)若是不能,怎样才算经过测试?

    6)是否定为测试的结果会替你作出决定?不可能从纯技术的角度作出商业决定。可使用测试获得的信息来支持商业决策。

    7)测试结果可否是你改变决定?

  六、相关常识

    1)既然雇佣测试人员,就要相信他们的测试结果。若是不信任他们,要么是选错了人,要么就须要帮助他们提升可信度。

    2)不能让测试人员代替经理作决定,他们只是提供信息。

    3)不使用测试提供的信息,就最好不要进行测试。

    4)在作出决定时,要冷静并控制好本身的情绪,尽可能用理性进行决定。

    5)要对测试数据进行评估。数字自己只是数字。要学会问:得到这一数字的过程是什么?这个数字有何含义?

    6)测试是一项技术开发支持活动,须要和需求、设计、编程、文档、制造及支持过程协调起来。同时要给开发人员必要时间和资源来修复测试中发现的问题。

    7)不要催促测试人员进行测试,测试是很是精细的工做。催促测试人员容易产生危险的有误导性的结果,尤为在测试人员感到惧怕、疲劳或变现愤世嫉俗时。

    8)测试经理也须要了解测试过程,因此须要任命有测试经验的人担任测试经理。

    9)不少看起来非理性的决定在不一样的价值取向下是理性的。记住这一原则,能够避免经理、测试人员和开发人员之间的许多冲突。

    10)测试产生的信息用途不少,交付产品后进行测试,能够收集对客服和支持人员有用的信息。

  3、为何不进行穷举测试?(第3章)

    本章主要介绍不对全部可能性进行测试的缘由,对于经理和测试人员,都应该了解测试是一种采样过程,须要了解采样给测试所带来的风险。

  一、可进行测试的数目是无限的

    若是不能查看代码内部逻辑,可输入的测试用例是无限的。固然还有在不一样配置下进行测试,不一样制造商、不一样驱动程序、不一样操做系统、测试执行的顺序、不一样的内存等等。这样算来可测试的用例确实是无限多。

  二、测试最多只是采样

    因为咱们没法测试全部可能性,任何实际的测试集(测试用例)都是某种程度的样本——表明整个可能测试集合的一个部分或片断。因此测试就是用样本集对程序进行采样。

    采样也是一个心理过程,也是一个感性过程。令某人满意的样本也许会让另外一我的以为不满意。

    咱们如何决定采那些样?如何知道是否获取足够大的样原本充分表明全部状况?如何知道得到了合适的样本?

  三、用有限资源和时间进行良好的测试

    1)但愿测试可以覆盖全部使人感兴趣的条件;

      有些缺陷是测试员偶然发现,而不是精心设计的用例发现的。有没有什么心理学方法能够帮助发现更多使人吃惊的缺陷?

    2)但愿讲测试集减小到能够管理、能够承受的程度。

      首先,认识到测试集都是一种采样方法,而后不管你有多少资源,都要尽量选择那些具备最强表明性的测试集。

  四、相关常识

    1)要理解测试便是采样过程,无论用哪一种方法,都要准备好应对出现采样错误的可能性。

    2)获取信息的成本可能超过信息带来的好处。某些测试可能花费大量力气,可是效果并很差。

    3)人不能进行穷举测试,测试工具更不能。

    3)减小测试资源后,最简单的方法是限制样本的规模。规模减小可能出现采样错误,多样化的样本发现的问题可能会超过大样本发现的问题。因此与扩大测试团队相比,让测试团队成员多样化也可能会发现更多的问题。 

相关文章
相关标签/搜索