软件测试的艺术 读书笔记

软件测试的定义:测试是为发现错误而执行程序的过程

一、软件测试的心理学

人类行为总是倾向于具有高度目标性,确立一个正确的目标有着重要的心理学影响。如果我们的目的是证明程序中不存在错误,那就会在潜意识中倾向于实现这个目标,所以应该一开始就假设程序中隐藏着错误,然后测试程序发现尽可能多的错误。

二、软件测试的经济学

测试投入的目标在于通过有限的测试用例,最大限度的提高发现问题的数量,已取得最好的测试效果。

三、软件测试的准则

这些原则看上去大多都显而易见,但常常被我们忽略掉

  • 测试用例中一个必须的部分是对预期输出或结果的定义
  • 程序员应当避免测试自己编写的程序
  • 编写软件的组织不应当测试自己编写的软件
  • 应当彻底检查每个测试的执行结果
  • 测试用例的编写不仅应当根据有效和预期的输入情况,而且也应当根据无效和未预料到的输入情况
  • 检查程序是否“未做其应当做的”仅是测试的一半,测试的另一半是检查程序是否“做了其不应该做的
  • 应避免测试用例用后即弃,除非软件本身就是一个一次性的软件
  • 计划测试工作时不应该默许假定不会发现错误
  • 程序某部分存在更多错误的可能性,与该部分已发现错误的数量成正比
  • 软件测试是一项极富创造性、极具智力挑战性的工作

四、测试方法:

白盒测试逻辑驱动,关注的是测试用例执行的程度或覆盖程序逻辑结构(源代码)的程度,

白盒测试的方法:

  • 语句覆盖:程序中的每条语句至少被执行一次。
  • 判定覆盖:使得每一个判断都至少有一个为真和为假的输出结果。
  • 条件覆盖:确保将一个判断中的每个条件的所有可能的结果至少执行一次。
  • 判定/条件覆盖:将一个判断中的每个条件的所有可能的结果至少执行一次,将每个判断的所有可能的结果至少执行一次,将每个入口点都至少调用一次。
  • 多重条件覆盖:将每个判定中的所有可能的条件结果的组合,以及所有的入口点都至少执行一次。

黑盒测试/数据驱动的测试,测试目标与程序的内部机制和结构完全无关,而是将重点集中放在发现程序不按其规范正确运行的环境条件。

黑盒测试的方法:

  • 等价类划分:有效等价类和无效等价类
  • 边界值分析 :在任何情况下都应使用边界值分析方法。
  • 因果图分析
  • 错误猜想:利用直觉和经验猜测出错的可能类型,然后编写测试用例还暴露这些错误。

建议:综合最多的测试方法来设计严格的程序测试,某种方法遗漏掉的错误用其他方法就可能会找出来。

测试策略

  1. 如果规格说明里面包含条件组合的情况,应首先使用因果分析方法
  2. 在任何情况下都应该使用边界值分析方法,对输入和输出边界都要进行测试
  3. 应该为输入和输出确定有效和无效等价类,必要的情况下对上面的测试用例进行补充
  4. 使用错误猜测技术增加更多的测试用例
  5. 针对上述的测试用例集检查程序的逻辑结构,应考虑使用逻辑覆盖准则

五、模块测试

  • 模块测试:模块测试是对程序中的单个子程序、子程序或过程进行测试的过程。
  • 动机:减轻了调试(准确定位并纠正某个已知错误的过程)的难度,一旦问题暴露出来轻易就知道具体是哪个模块的错误
  • 目的:将模块的功能与定义模块的功能规格说明或接口规格说明进行比较。即所有测试过程的目的不是说明模块符合其规格说明,而是为了说明模块与其规格说明存在着矛盾
  • 设计测试用例
    依赖:模块的规格说明+模块的源代码
    模块测试的测试用例设计过程:使用一种或多种白盒测试方法分析模块的逻辑结构,然后使用黑盒测试方法对照模块的规格说明以补充测试用例

驱动模块:用来将测试用例驱动或传输到被测模块中。
桩模块:测试上层模块时用来模拟下层模块的的模块。
非增量测试:先独立地测试每个模块,然后再将这些模块组装成完整的程序。
增量测试:先将下一步要测试的模块组装到测试完成的模块集合中,然后再进行测试。又叫集成测试。

增量测试优于非增量测试
1)自顶向下;
2)自底向上。

image.png

六、更高级别的测试

功能测试的目的是为了证明程序未能符合其外部规格说明。
系统测试的目的是为了证明软件产品与其初始目标不一致,即将系统或程序与其初始目标进行比较,也就是说比较程序、程序目标和用户文档之间的不一致性。

系统测试

  1. 能力测试:确保程序的目标功能实现,逐条语句地检查目标文档,判断程序是否满足
  2. 容量测试:发现处理大容量数据时的程序异常
  3. 强度测试:发现在大规模负载、高强度不间断持续的数据处理中的异常(有的也叫压力测试)
  4. 可用性测试:评估最终用户在使用软件并与软件交互时存在的可用性问题(也可叫做用户体验测试,即真实用户的使用体验)
  5. 安全性测试:试图攻破程序的安全防线
  6. 性能测试:评估程序的的响应时间和吞吐率
  7. 存储测试:设计测试用例来证明软件的存储目标(内存或辅助存储)没有达到。
  8. 配置测试:测试软件在不同配置环境下(操作系统,浏览器等)程序不同的反应。
  9. 兼容性/转换测试:评估新版本是否能兼容老的版本
  10. 安装测试:确保能够在所有支持的平台上安装软件
  11. 可靠性测试:评估程序是否能达到规格说明中的运行时常和平均故障间隔时间要求
  12. 可恢复性测试:证明系统的恢复机制不能够正确发挥作用。恢复机制是当系统发生故障时,如何从程序错误、硬件失效和数据错误中恢复过来。
  13. 服务/可维护性测试:评估系统是否拥有良好的数据处理和日志机制,以备技术支持和调试之需
  14. 文档测试:校验所有用户文档是否准确
  15. 过程测试:对软件操作系统或维护所需涉及的流程进行评估和确定

七、总结

  1. 软件测试是一个破坏性的过程,甚至是一个“施虐”的过程!!!
  2. 切记软件测试的基本准则!
  3. 不要听rd的,不要听rd的建议而如何如何测试
  4. 软件测试是一项极富创造性、极具智力挑战性的工作
  5. 书中自有黄金屋书中自有颜如玉
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354

推荐阅读更多精彩内容