章五 带上眼罩测试软件

简介: 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/1491702 章五 带上眼罩测试软件一、等价类划分选择测试用例是软件测试员最重要的任务。
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/1491702

章五 带上眼罩测试软件


一、等价类划分
选择测试用例是软件测试员最重要的任务。选择测试用例的方法是等价类划分(equivalence partitioning),有时称为等价分类(equivanlence classing)。等价类划分是指分步骤地把海量的测试用例集减得很少,但过程同样有效。
注意:一个等价类或者等价划分是指测试相同目标或者暴露相同软件缺陷的一组测试用例。
如果为了减少测试用例的数量过度划分等价类,就有漏掉那些困难暴露软件缺陷的测试的风险。
等价类划分可能主观。测试同一个复杂程序的两个软件测试员可能会得出两组不同的等价划分间。只要审查等价划分的人认为它们足以覆盖整个测试用例即可。
二、数据测试
软件最简单的划分:数据和程序。
数据包括键盘输入、鼠标单击、磁盘文件、打印输出等。
程序是指可执行的流程、转换、逻辑和运算。
软件测试常用的一个方法是把测试工作按同样的形式划分。
对数据进行软件测试,就是在检查用户输入的信息、返回的结果以及中间计算结果是否正确。
使所有数据得以测试的技巧是,根据一些关键的原则进行等价类划分,以合理减少测试用例,这些关键的原则是:边界条件、次边界条件、空值和无效数据。
1、边界条件(boundary condition)
描述边界条件是测试的最佳方式。边界条件是特殊情况,编程从根本上说在边界上容易产生问题。
2、边界条件类型
边界条件是指软件运行在计划操作界限的边界的情况。
每一个软件测试问题各不相同,可能包含各种不同的数据以及其独特的边界。
3、测试边界
提出边界条件时,一定要测试临近边界的有效数据,测试最后一个可能有效的数据,同时测试刚超过边界的无效数据。
越界测试的做法通常是简单地对于最大值加一或者很小的数,以及对于最小值减一或者很小的数。
注意:在软件的每一个部分不断寻找边界是极为重要的,寻找做得越多,边界就会发现得越多,可能找出的软件缺陷也就越多。
注意:缓冲区溢出(buffer overrun)是由边界条件缺陷引起的,它是造成软件安全问题的头号原因。
4、次边界条件
普通边界条件是很容易找到的,它们在产品说明书中有定义,或者在使用软件的过程中明显。有些边界在软件内部,最终用户几乎看不到,但软件测试员仍有必要进行检查,这样的边界条件称为次边界条件(sub-boundary conditions)或者内部边界条件(internal boundary conditions)。
寻找次边界条件不要求软件测试员成为程序员或者具有阅读源代码的能力,但是确实要求大体了解软件的工作方式。所以软件测试员应该和开发小组的程序员交流这方面问题。
(1)在建立等价划分时,要考虑等价划分中是否需要包含2的幂的边界条件。
(2)另一种可能的软件缺陷来源是当软件要求输入时——比如在文本框中——不是没有输入正确的信息,而是根本没有输入任何内容,可能单单按了Enter键。
好的软件会处理这种情况,它通常将输入内容默认为边界内的最小合法值,或者在合法划分中间的某个合理值,或者返回错误提示信息。
理想情况是软件取某个合法的宽度和高度作为默认值来处理。如果没有这样做,就应该返回错误提示信息作为执行结果。
技巧:一定要考虑建立处理默认值、空白、空值、零值或者无输入等条件的等价划分。
(3)非法、错误、不正确和垃圾数据
数据测试的最后一种类型是垃圾数据。这是失效性测试的对象。
经过边界测试、次边界测试和默认值测试等通过性测试证实软件能够工作之后,就该进行垃圾数据测试了。
非法、错误、不正确和垃圾数据测试是很有意思的。如果软件要求输入数字,就输入字母;如果软件只接受正数,就输入负数;如果软件对日期敏感,就看它在公元3000年是否能正常工作;假装有“肥胖的手指”,同时按下多个键。
此类测试没有实际的规则,只是设法破坏软件。要发挥创造力,要会走偏门。
 

目录
相关文章
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
深入探索软件自动化测试的未来趋势
【5月更文挑战第12天】 随着软件开发周期的不断缩短和市场需求的快速变化,传统的手动测试方法已经难以满足现代软件质量保证的需求。自动化测试作为一种高效、可靠的解决方案,正逐渐成为行业标配。本文将深入探讨自动化测试的最新发展,分析其在持续集成/持续部署(CI/CD)环境中的作用,以及人工智能(AI)如何重塑测试实践。同时,我们还将展望自动化测试工具和技术的未来演进路径。
|
1天前
|
机器人 测试技术 语音技术
LabVIEW使用软件定义进行汽车电子测试
LabVIEW使用软件定义进行汽车电子测试
12 0
|
1天前
|
程序员 测试技术
程序员难以一次性写好代码并持续修复Bug,主要源于软件的高复杂性、需求不确定性、测试局限性和技术能力限制。
【5月更文挑战第11天】程序员难以一次性写好代码并持续修复Bug,主要源于软件的高复杂性、需求不确定性、测试局限性和技术能力限制。复杂的系统易产生意外问题,需求变化导致初始设计难完备,测试无法覆盖所有情况,而技术更新和个体能力差异也会引入错误。因此,持续调试和优化是保证软件质量的关键步骤。
16 0
|
1天前
|
人工智能 大数据 测试技术
深入探索软件自动化测试的未来
【5月更文挑战第8天】随着科技的不断发展,软件测试领域正经历着前所未有的变革。本文将深入探讨软件自动化测试的现状与未来,从人工智能、大数据和云计算等方面分析其对软件测试的影响,以及如何利用这些技术提高测试效率和质量。
|
1天前
|
机器学习/深度学习 人工智能 算法
深入探索软件自动化测试的优化策略
【5月更文挑战第4天】 随着软件开发周期的不断缩短和发布频率的增加,传统的手动测试方法已无法满足快速迭代的需求。因此,本文聚焦于自动化测试流程的优化,旨在提高测试效率和质量。文章首先回顾了自动化测试的基本概念与实施条件,随后分析了当前自动化测试面临的主要挑战,包括维护成本高、测试用例设计复杂等问题。在此基础上,提出了一系列优化策略:持续集成环境下的自动化测试、数据驱动测试、关键字驱动测试、以及基于人工智能的测试用例生成和维护等。通过案例分析和性能评估,验证了这些策略在提升测试覆盖率和减少人工干预方面的有效性。
|
1天前
|
机器学习/深度学习 敏捷开发 人工智能
探索软件自动化测试的未来趋势
【5月更文挑战第4天】 在快速发展的信息时代,软件已成为支撑现代社会运行的核心力量。随之而来的是软件测试领域面临的挑战和机遇,特别是自动化测试技术。本文将深入探讨自动化测试的最新发展,分析其对提高软件开发效率、降低维护成本的重要性,同时预测未来可能的技术趋势。通过实际案例分析和最新研究动态的梳理,旨在为读者呈现一个清晰的自动化测试技术蓝图。
|
1天前
|
测试技术 持续交付 数据安全/隐私保护
深入理解软件自动化测试中的数据驱动策略
【5月更文挑战第1天】 在软件测试领域,自动化测试已经成为提高测试效率和质量的重要手段。其中,数据驱动测试(DDT)作为一种高效实施自动化测试的策略,允许测试用例与测试数据分离,增强了测试脚本的可维护性和灵活性。本文将详细探讨数据驱动测试的核心概念、实现方式以及在实际中的应用案例,帮助读者更深入地理解如何利用数据驱动策略优化自动化测试流程。
|
1天前
|
Java 测试技术 开发者
深入理解与应用单元测试:软件质量的守护者
【4月更文挑战第30天】 在现代软件开发过程中,单元测试作为保障代码健康的重要环节,其地位日益凸显。本文将探讨单元测试的核心概念、实施单元测试的重要性以及如何高效地设计并执行单元测试。通过实例分析,我们将揭示单元测试在确保软件产品质量和加速开发周期中的关键作用。
|
1天前
|
存储 敏捷开发 监控
深入理解软件自动化测试中的数据驱动策略
【4月更文挑战第30天】 在追求高效率和可靠性的现代软件开发过程中,自动化测试已经成为确保产品质量的关键手段。数据驱动测试(DDT)作为一种高效的自动化测试策略,它通过外部化测试数据和脚本,增强了测试用例的可维护性和可扩展性。本文将深入探讨数据驱动测试的概念、实施方法以及在实际项目中的最佳实践,旨在帮助读者构建更加健壮和灵活的自动化测试框架。
|
1天前
|
敏捷开发 监控 Java
深入理解与应用软件自动化测试框架
【4月更文挑战第27天】 在软件开发的生命周期中,确保代码质量和功能的正确性是至关重要的。随着敏捷开发方法的普及和产品迭代速度的加快,传统的手动测试方法已经难以满足快速交付的需求。本文将重点讨论软件自动化测试框架的构建与实施,旨在为读者提供一种提高测试效率、确保测试质量的有效途径。我们将介绍自动化测试的基本概念、关键优势以及面临的挑战,并通过具体的案例分析,展示如何根据项目特点选择合适的测试框架,以及如何设计、执行和维护自动化测试脚本。

热门文章

最新文章