章五 带上眼罩测试软件

简介: 章五 带上眼罩测试软件 一、等价类划分 选择测试用例是软件测试员最重要的任务。选择测试用例的方法是等价类划分(equivalence partitioning),有时称为等价分类(equivanlence classing)。

章五 带上眼罩测试软件


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

目录
相关文章
|
3月前
|
监控 测试技术 持续交付
自动化测试和持续集成/交付:提升软件质量和效率的关键
在当今快节奏的软件开发环境中,自动化测试和持续集成/交付已经成为了必不可少的工具和流程。通过自动化测试,开发团队可以更快地检测和修复缺陷,同时提高测试覆盖率和质量。而持续集成/交付则可以让开发者将代码快速、自动地构建、测试和部署到生产环境中。这篇文章将探讨自动化测试和持续集成/交付的优势和实现方式,以及如何在实践中有效地使用它们来提升软件质量和效率。
|
1月前
|
测试技术
模型驱动测试:引领软件质量的新潮流
模型驱动测试:引领软件质量的新潮流
24 2
|
2天前
|
Web App开发 测试技术 网络安全
|
3天前
|
监控 jenkins 测试技术
深入探索软件自动化测试的高效策略
【4月更文挑战第13天】 随着软件开发周期的不断缩短和发布频率的增加,传统的手动测试方法已难以满足快速迭代的需求。本文将详细探讨如何通过有效的自动化测试策略提高测试效率和质量。我们将分析自动化测试中的关键要素,包括测试用例的设计、框架选择、持续集成的应用以及性能监控,并结合实际案例来展示如何构建和维护一个健壮的自动化测试系统。文中还将讨论自动化测试过程中常见的误区和挑战,为读者提供实用的解决方案和最佳实践。
|
17天前
|
Web App开发 Java 测试技术
深入理解与应用软件自动化测试工具Selenium
随着软件开发的快速发展,软件测试在保证产品质量方面发挥着越来越重要的作用。其中,自动化测试以其效率高、成本低的特点受到了广大开发者的欢迎。本文主要介绍了自动化测试工具Selenium的基本概念、原理以及在实际开发中的应用,旨在帮助读者更好地理解和使用Selenium进行高效的自动化测试。
22 4
|
22天前
|
安全 测试技术
【软件设计师备考 专题 】软件测试的原则与方法:确保软件质量的关键步骤
【软件设计师备考 专题 】软件测试的原则与方法:确保软件质量的关键步骤
39 0
|
23天前
|
设计模式 敏捷开发 监控
深入理解与应用软件自动化测试框架
在快速迭代的软件开发过程中,自动化测试已成为确保产品质量和加快交付速度的关键因素。本文将详细探讨自动化测试框架的核心原理、设计模式及其在实际项目中的应用。我们将分析几种流行的自动化测试工具,如Selenium、Appium和JUnit,并讨论它们如何集成以形成强大的测试解决方案。文章还将展示通过自定义框架来满足特定测试需求的实例,以及如何通过持续集成和持续部署(CI/CD)流程优化测试实践。
|
26天前
|
机器学习/深度学习 设计模式 人工智能
探索软件自动化测试的未来趋势与挑战
【2月更文挑战第30天】 随着软件开发周期的不断缩短和发布频率的增加,传统的手动测试方法已无法满足快速变化的市场需求。本文旨在探讨自动化测试在持续集成、持续部署(CI/CD)环境中的作用,以及未来技术发展如何塑造自动化测试工具和方法。文中不仅概述了当前自动化测试面临的主要挑战,还提出了应对这些挑战的策略,并预测了自动化测试的未来发展趋势。
|
26天前
|
机器学习/深度学习 敏捷开发 人工智能
深入探索软件自动化测试:框架与实践
【2月更文挑战第30天】 在快速迭代的软件开发周期中,自动化测试已成为确保产品质量和加快交付速度的关键因素。本文将深入探讨自动化测试的核心概念、常用框架以及在实际项目中的应用实践。我们将分析自动化测试的优势,并讨论其在不同开发阶段的作用,同时提出构建高效自动化测试流程的策略。通过实际案例分析,本文旨在为读者提供一套系统的自动化测试解决方案,以应对日益复杂的软件测试挑战。
|
26天前
|
机器学习/深度学习 人工智能 测试技术
软件自动化测试在现代软件开发中的重要性
传统软件测试流程中,手动测试往往耗时且容易出现遗漏,随着软件规模和复杂度的不断提升,自动化测试成为了现代软件开发中不可或缺的一环。本文将探讨软件自动化测试的重要性,介绍其优势以及在现代软件开发中的应用。
10 0

热门文章

最新文章