《完美软件》读书笔记9:良好测试的要素

简介:

“没有什么事物是好的或者坏的,而是思维让事物有了好坏之分”--莎士比亚

书《完美软件》

如何才能知道,测试是否进行得很好?你对测试结果又能够有多少信任?

1、永远无法确切地知道

永远无法确切地知道,而且永远无法通过孤立地看某个测试来知道一个测试是否是良好的--但是确实有很多方法可以得知某个测试是否是糟糕的。

2、只能根据事实来评估良好性

如果知道一个系统中有多少BUG,就至少可以开始评估一组测试的良好性,或者说非糟糕性。

3、可能希望故意插入一些BUG

通过植入BUG(或者说‘插错’)来获得对软件中可能余留了多少问题的定量估算。

4、对良好性的估算总是统计性的

大多数时候,一个不能工作的烟雾报警器与一个可以工作的烟雾报警器是没有区别的。遗憾的是,最常见的提醒人们替换电池的是火灾。

类似地,不能认为测试员找到的BUG少就认为TA工作表现差;劣质软件、单元测试未排除简单BUG(噪音),都会让测试员看上去表现优秀。

这种度量体系下,糟糕的开发人员可能是测试员最好的朋友:(

5、可以对‘不差’进行估算

经理还是可以通过以下类型的问题对‘不差性’进行很多的评估:

* 测试是否名义上能够提供需要的住处?

* 是否进行了文档记录?

* 是否能理解它?如果不行,你怎么可能知道它到底是好还是坏?

* 它是否至少覆盖了那些最重要的部分?

* 是否确实完成了(测试执行)?

* 是否可以看出测试和演示之间的差别?

* 对趋势和状态的报告是否过于简单化和定期化了?

* 不同类型的测试活动之间是否有不一致的地方?比如性能测试发现了功能性缺陷

* 经理们是明察秋毫的吗?

小结:永远无法确切地知道测试是否完成得很好;但是如果测试完成得不好,有很多方法可以知道或估算出来。

 

常见错误:

1、未考虑到底在寻找哪些信息

2、根据发现的BUG数量来衡量测试人员的好坏

3、认为可以确定一个测试有多好

4、在不了解产品内部结构的情况下进行

5、测试时过于了解产品的内部结构

6、给出对BUG的统计估算时将它们当作固定的、确定的数字

7、未对测试的‘不良性’进行度量

8、不能保证开发过程良好地完成:对低劣的代码测试得再好又有什么用呢?

9、未考虑由于发现大量BUG导致的测试效率的损失

















本文转自DavyYew 51CTO博客,原文链接:http://blog.51cto.com/davyyew/306222 ,如需转载请自行联系原作者



相关文章
|
1月前
|
人工智能 安全 网络安全
Burp Suite Professional 2025.5 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件
Burp Suite Professional 2025.5 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件
77 3
|
26天前
|
安全 测试技术 Linux
Flawnter 5.9.1 (macOS, Linux, Windows) - 应用程序安全测试软件
Flawnter 5.9.1 (macOS, Linux, Windows) - 应用程序安全测试软件
72 2
Flawnter 5.9.1 (macOS, Linux, Windows) - 应用程序安全测试软件
|
30天前
|
人工智能 安全 网络安全
Burp Suite Professional 2025.5 for Windows x64 - 领先的 Web 渗透测试软件
Burp Suite Professional 2025.5 for Windows x64 - 领先的 Web 渗透测试软件
94 4
Burp Suite Professional 2025.5 for Windows x64 - 领先的 Web 渗透测试软件
|
10天前
|
测试技术
软考软件测评师大题——案例分析之白盒测试
历年下午案例试题一固定考察白盒测试,主要包含三大核心问题:推导逻辑条件、绘制控制流图及计算环路复杂度、确定线性无关路径集合。内容涵盖覆盖层级标准(语句、分支、判定、条件覆盖等)、控制流图构建规范(顺序、分支、循环结构转换原则)、环路复杂度计算公式以及线性无关路径生成方法。通过典型题型示例解析,如代码路径分析与验证指标,帮助考生掌握解题思路和技巧。
|
10天前
|
测试技术
软考软件评测师——可靠性测试测试方法
软件可靠性是指软件在规定条件和时间内完成预定功能的能力,受运行环境、软件规模、内部结构、开发方法及可靠性投入等因素影响。失效概率指软件运行中出现失效的可能性,可靠度为不发生失效的概率,平均无失效时间(MTTF)体现软件可靠程度。案例分析显示,嵌入式软件需满足高可靠性要求,如机载软件的可靠度需达99.99%以上,通过定量指标评估其是否达标。
|
10天前
|
测试技术
软考软件评测师——黑盒测试测试方法
本内容系统介绍了黑盒测试的核心方法与实践技巧。主要包括:等价类划分法(有效/无效输入及划分原则)、边界值分析法(聚焦边界点选取测试数据)、决策表法(规则计算与表格优化)、边界值设计七原则(涵盖输入输出与隐藏边界)以及黑盒测试方法体系(多种测试方法概述)。特别详细讲解了场景法实践指南,通过模拟用户操作流程,区分基本流与备选流,并生成优化的测试用例矩阵,为全面覆盖功能测试提供指导。
|
10天前
|
安全 测试技术 持续交付
软考软件评测师——基于风险的测试技术
本文详细阐述了测试计划的核心要素与制定流程,涵盖测试范围界定、实施策略规划、资源配置及风险管理机制。通过风险识别方法论和评估模型,构建了完整的质量保障体系。同时,针对不同测试级别与类型提供具体配置建议,并提出技术选型原则与实施规范,确保测试活动高效有序开展,为项目成功奠定基础。内容结合实际经验,具有较强指导意义。
|
7月前
|
测试技术 持续交付
探索自动化测试在软件质量保证中的关键作用
本文深入探讨了自动化测试在现代软件开发生命周期中的重要性,以及它是如何成为确保软件产品质量的不可或缺的一环。通过分析自动化测试的优势、挑战和最佳实践,本文旨在为读者提供对自动化测试全面而深刻的理解,从而帮助他们在实际工作中更有效地应用自动化测试策略。
72 2
|
7月前
|
jenkins 测试技术 持续交付
自动化测试框架的构建与优化:提升软件交付效率的关键####
本文深入探讨了自动化测试框架的核心价值,通过对比传统手工测试方法的局限性,揭示了自动化测试在现代软件开发生命周期中的重要性。不同于常规摘要仅概述内容,本部分强调了自动化测试如何显著提高测试覆盖率、缩短测试周期、降低人力成本,并促进持续集成/持续部署(CI/CD)流程的实施,最终实现软件质量和开发效率的双重飞跃。通过具体案例分析,展示了从零开始构建自动化测试框架的策略与最佳实践,包括选择合适的工具、设计高效的测试用例结构、以及如何进行性能调优等关键步骤。此外,还讨论了在实施过程中可能遇到的挑战及应对策略,为读者提供了一套可操作的优化指南。 ####
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
自动化测试的新篇章:利用AI提升软件质量
【10月更文挑战第35天】在软件开发的海洋中,自动化测试犹如一艘救生艇,它帮助团队确保产品质量,同时减少人为错误。本文将探索如何通过集成人工智能(AI)技术,使自动化测试更加智能化,从而提升软件测试的效率和准确性。我们将从AI在测试用例生成、测试执行和结果分析中的应用出发,深入讨论AI如何重塑软件测试领域,并配以实际代码示例来说明这些概念。
220 3