软件测试用例的设计编写技巧

合集下载

测试用例设计的经验与技巧

测试用例设计的经验与技巧

测试用例设计的经验与技巧测试用例是软件测试过程中至关重要的一部分,它们定义了测试的输入、预期输出和执行步骤。

一个好的测试用例能够帮助测试人员发现潜在的缺陷,并确保软件在各种情况下都能正常运行。

本文将分享一些测试用例设计的经验与技巧,帮助测试人员提高测试效果。

一、了解需求和用户期望在设计测试用例前,测试人员首先需要充分了解软件的需求和用户的期望。

只有明确了软件的功能和用户的需求,才能设计出能够覆盖各种情况的测试用例。

可以通过与开发人员、产品经理或用户进行沟通,理解系统的预期行为和目标。

二、考虑功能和非功能需求测试用例应该覆盖软件的功能和非功能需求。

功能需求是指软件的正常功能,如登录、注册、搜索等;非功能需求是指软件的性能、安全、易用性等方面的要求。

测试人员需要根据不同的需求设计相应的测试用例,确保软件在各个方面都能够满足需求。

三、强调边界条件和异常情况一个常见的错误是只测试软件的正常情况,而忽略了边界条件和异常情况。

边界条件是指输入数据的最小值、最大值以及临界值;异常情况是指不符合预期的输入或操作。

测试人员应当针对不同的边界条件和异常情况设计测试用例,确保软件在这些情况下能够正确处理并给出适当的响应。

四、注重可重复性和可扩展性一个好的测试用例应该具有可重复性和可扩展性。

可重复性是指测试用例可以在不同的环境和条件下重复执行;可扩展性是指测试用例可以根据需求的变化进行扩展和修改。

测试人员应当设计用例时考虑到这两个方面,避免仅针对特定情况设计用例,以保证测试的全面性和可维护性。

五、使用适当的技术手段和工具在设计测试用例时,测试人员可以使用一些适当的技术手段和工具来提高效率和覆盖率。

例如,使用边界值分析、等价类划分、状态转换、路径分析等技术来有效地设计测试用例;利用测试管理工具、自动化测试工具等来辅助测试用例的编写和执行。

这些工具和技术能够帮助测试人员更好地应对复杂的测试需求。

六、持续优化测试用例测试用例设计不是一次性的工作,而是一个持续优化的过程。

测试用例设计的技巧如何覆盖所有场景

测试用例设计的技巧如何覆盖所有场景

测试用例设计的技巧如何覆盖所有场景在软件开发过程中,测试用例是非常重要的一部分,它能够帮助我们验证软件系统的功能和性能是否符合需求和预期。

而一个好的测试用例设计可以确保我们能够全面而有效地覆盖所有的场景,提高测试的效率和准确性。

本文将介绍一些测试用例设计的技巧,帮助读者了解如何更好地设计测试用例来覆盖各种可能的场景。

一、了解需求和预期结果在设计测试用例之前,我们首先需要充分了解需求和预期结果。

只有清楚地知道要测试的功能或性能指标,才能有针对性地设计相应的测试用例。

因此,我们需要仔细阅读需求文档、用户手册或其他相关文档,并和开发人员、项目经理等相关人员进行沟通,确保我们对系统需求和预期结果有一个全面的了解。

二、根据功能模块进行划分一个系统通常由多个功能模块组成,而这些功能模块之间可能存在各种各样的依赖和交互。

为了更好地组织和管理测试用例,我们可以按照功能模块进行划分。

对于每个功能模块,我们可以进一步划分出具体的测试场景和测试用例,确保每个功能模块都能得到充分的测试覆盖。

三、采用不同的测试技术在设计具体的测试用例时,我们可以采用不同的测试技术来确保覆盖所有可能的场景。

常见的测试技术包括等价类划分、边界值分析、决策表等。

比如在等价类划分中,我们可以将输入数据或者条件划分为若干个等价类,然后选择一个代表性的输入数据或者条件进行测试。

这样可以大大减少测试用例的数量,同时保证对所有等价类进行了测试。

四、考虑正常和异常情况在设计测试用例时,我们不仅要考虑正常情况下的功能和性能要求,还要考虑各种异常情况。

因为在实际使用过程中,用户可能会输入错误的数据、产生异常的操作,而我们必须保证系统能够正常处理这些异常情况,并给出相应的提示和处理结果。

因此,在设计测试用例时,需要充分考虑各种可能的异常情况,并设计相应的测试用例来验证系统的处理能力。

五、使用工具辅助测试用例设计为了更好地设计和管理测试用例,我们可以使用一些测试管理工具来辅助测试用例的设计和执行。

提高测试用例效果的实用技巧

提高测试用例效果的实用技巧

提高测试用例效果的实用技巧测试用例是软件测试过程中至关重要的一部分。

一个好的测试用例旨在发现软件中存在的缺陷和错误。

然而,编写高效的测试用例并不容易,需要一定的技巧和经验。

在本文中,我将介绍一些实用的技巧,可以帮助您提高测试用例的效果。

1. 设定清晰的目标在编写测试用例之前,首先需要明确测试的目标。

测试用例应该明确测试什么,以及预期的结果是什么。

这样可以确保测试用例的设计和执行始终有一个明确的目标,从而提高测试用例的效果。

2. 考虑边界情况边界情况通常是软件中最容易发生错误的地方。

因此,在编写测试用例时应该特别注意这些情况。

测试用例应该覆盖正常情况以及边界情况,以确保软件在各种场景下都能正常工作。

3. 使用合适的数据测试用例的数据应该能够覆盖所有可能的输入情况。

为了提高测试用例的效果,我们应该使用合适的数据进行测试。

这些数据应该包括正确的数据、错误的数据、边界数据等。

同时,还应该考虑使用随机数据和有效的数据组合进行测试,以确保软件在各种情况下都能正常运行。

4. 使用断言和验证断言和验证是测试用例中必不可少的部分。

断言用于验证测试结果是否符合预期,而验证则用于确保测试用例按照预期执行。

在编写测试用例时,我们应该考虑使用合适的断言和验证来提高测试用例的效果。

5. 保持测试用例的独立性每个测试用例应该是独立的,不依赖于其他测试用例的执行结果。

这样可以确保测试用例在任何情况下都能正常执行,并且不会相互干扰。

同时,独立的测试用例还可以提高测试的可维护性和可扩展性。

6. 尽早开始测试测试用例的编写应该尽早开始,从需求分析和设计阶段就应该考虑测试的需求和用例。

这样可以确保测试用例的全面性和有效性,并且可以及早发现和修复潜在的问题。

7. 定期回顾和更新测试用例随着软件的迭代和不断变化,测试需求也会随之改变。

因此,我们应该定期回顾和更新测试用例,以确保测试用例始终保持最新和有效。

同时,回顾和更新测试用例也可以帮助我们发现并修复一些之前遗漏的问题。

软件质量保证和测试用例编写的技巧

软件质量保证和测试用例编写的技巧

软件质量保证和测试用例编写的技巧第一章:软件质量保证概述为确保软件的可靠性和稳定性,软件质量保证是一项重要的工作。

软件质量保证的目标是确保软件满足用户需求,具有高质量的特性和功能。

为了实现这一目标,下面将介绍软件质量保证的基本原则和策略。

1.1 软件质量保证的基本原则软件质量保证的基本原则包括:(a) 高质量的软件需求:准确、清晰的软件需求是软件质量保证的基础。

(b) 适当的软件设计:良好的软件设计能够满足用户需求,提高软件的可维护性和可扩展性。

(c) 有效的软件测试:通过各种测试方法对软件进行全面、深入的测试,确保软件的质量。

1.2 软件质量保证的策略在实施软件质量保证时,可以采用以下策略:(a) 测试驱动的开发(TDD):在编写代码之前先编写测试用例,通过测试用例驱动代码的开发和优化。

(b) 持续集成(CI):频繁地将代码提交到代码库,并进行自动构建和测试,以便及早发现和解决问题。

(c) 代码审查:通过团队成员之间的代码审查,发现和纠正潜在问题,提高代码质量。

第二章:测试用例编写的技巧测试用例是软件测试中的核心工作之一,编写好的测试用例能够全面、准确地测试软件的功能和性能。

本章将介绍测试用例编写的一些技巧和注意事项。

2.1 确定测试目标在编写测试用例之前,需要明确测试的目标和测试的重点,以便有针对性地编写测试用例。

测试目标可以是功能测试、性能测试、安全性测试等。

2.2 测试用例的设计原则编写测试用例时,可以遵循以下设计原则:(a) 测试用例应该尽量简单明了,每个测试用例只测试一个特定的功能点。

(b) 测试用例应该覆盖各种可能的输入情况,包括边界情况和异常情况。

(c) 测试用例应该能够重现问题,测试前需准备好测试环境,确保测试用例的可重复性。

2.3 测试用例的描述和组织测试用例的描述应该清晰、简洁,包括测试目的和步骤、预期结果和实际结果等信息。

可以采用表格或者文档的形式组织测试用例,方便管理和执行。

如何编写高效的自动化测试用例

如何编写高效的自动化测试用例

如何编写高效的自动化测试用例自动化测试是软件测试领域重要的一部分,可以提高测试效率和质量。

编写高效的自动化测试用例是保证测试效果的关键。

本文将介绍一些编写高效自动化测试用例的方法和技巧。

一、测试用例设计原则在编写自动化测试用例之前,我们需要遵循以下测试用例设计原则:1. 可读性:测试用例应该简单易懂,方便团队成员理解和执行。

2. 简洁性:测试用例应尽量简洁,避免冗长和重复的步骤,以提高执行效率。

3. 可维护性:测试用例应易于维护和更新,避免用例的修改引起其他用例的错误。

二、测试用例编写步骤1. 确定测试目标:明确测试的目标和预期结果,以及需要验证的功能和业务需求。

2. 识别测试场景:根据测试目标,识别出不同的测试场景,每个场景对应一个或多个测试用例。

3. 设计测试用例:根据测试场景,编写详细的测试步骤,并确保涵盖各种测试情况,包括正常情况、异常情况等。

4. 设置测试数据:准备测试所需的输入数据和环境配置,并确保数据的正确性和可靠性。

5. 编写测试用例:根据测试设计,将测试步骤转化为可执行的测试脚本或测试代码。

6. 执行测试用例:执行编写好的测试用例,并记录测试结果。

7. 分析测试结果:对测试结果进行分析和评估,确保测试的完整性和准确性。

8. 更新测试用例:根据测试结果和反馈,及时更新和优化测试用例。

三、测试用例编写技巧1. 利用断言:在测试用例中使用断言来验证预期结果和实际结果是否一致,以自动判断测试是否通过。

2. 数据驱动:使用不同的测试数据组合来覆盖更多的测试场景,提高用例的复用性和覆盖度。

3. 模块化设计:将测试用例拆分成小的模块,提高用例的可维护性和复用性。

4. 参数化配置:将测试用例中的参数进行配置,方便在不同环境和场景下进行灵活的测试调整。

5. 异常处理:在测试用例中合理处理可能出现的异常情况,保证测试的稳定性和可靠性。

6. 并行执行:对于一些独立的测试用例,可以进行并行执行,提高测试效率。

测试用例的几种常用设计方法

测试用例的几种常用设计方法

测试用例的几种常用设计方法测试用例是软件测试中的重要组成部分,它们对于确保软件质量至关重要。

在设计测试用例时,可以采用多种不同方法。

下面将介绍几种常用的测试用例设计方法。

1.等价类划分法(Equivalent Partitioning)等价类划分法是一种基于输入数据的测试用例设计方法。

它将输入数据划分为若干等价类,每个等价类中的数据具有相同的功能和处理方式。

在设计测试用例时,只需要选择每个等价类中的一个或几个代表性的测试数据进行测试即可。

这种方法可以有效地减少测试用例的数量,同时保证测试覆盖面。

2. 边界值分析法(Boundary Value Analysis)边界值分析法是一种基于输入数据边界的测试用例设计方法。

它关注输入数据的边界条件,通常在输入数据的最小值、最大值和边界附近选择测试用例。

这是因为在边界处发生的错误往往比在其他地方发生的错误更容易被发现。

通过边界值分析法设计的测试用例可以提高测试效率和覆盖度。

3. 错误推测法(Error Guessing)错误推测法是一种基于经验和直觉的测试用例设计方法。

它假设测试人员能够猜测到软件中潜在的错误,并设计相应的测试用例来验证这些错误。

这种方法不依赖于任何特定的测试技术或规则,而是基于测试人员的经验和洞察力。

错误推测法可以应用于各种测试阶段,并且适用于不同类型的软件。

4. 决策表法(Decision Table)决策表法是一种基于规则和条件的测试用例设计方法。

它使用表格来表示系统的决策条件和相应的动作结果。

在设计测试用例时,可以根据表格中的各种条件组合来选择相应的测试用例。

决策表法对复杂的业务逻辑和条件约束非常有效,可以提高测试覆盖范围和准确性。

5. 状态转换法(State Transition)状态转换法是一种基于系统状态的测试用例设计方法。

它将系统的不同状态和状态之间的转换关系进行建模,并选择相应的测试用例来验证系统在不同状态下的行为。

状态转换法适用于具有明确状态转换关系的系统,例如有限状态机。

软件需求说明书编写中的测试用例设计与执行

软件需求说明书编写中的测试用例设计与执行

软件需求说明书编写中的测试用例设计与执行在软件开发的过程中,测试用例的设计与执行是非常关键的环节。

只有通过充分而有效的测试用例,我们才能够评估软件的质量和可靠性,并发现其中的潜在问题。

本文将详细介绍如何在软件需求说明书编写中进行测试用例的设计与执行。

一、测试用例设计测试用例设计是测试工作的起点,合理的测试用例设计能够降低测试的风险,提高测试的效率。

以下是测试用例设计的一般步骤:1. 理解需求:首先要全面理解软件需求说明书中的功能模块和业务需求,包括输入、输出、操作流程等。

2. 划定测试范围:根据需求文档,确定测试的边界条件和约束条件,明确测试对象的功能和非功能需求。

3. 编写测试用例:根据需求和设计文档中的功能模块,设计并编写测试用例,包括输入数据、预期输出和执行步骤。

4. 考虑异常情况:在编写测试用例时,需要考虑各种异常情况,如输入为空、输入非法数据等,以验证软件的稳定性和安全性。

5. 设计测试数据:选择合适的测试数据,包括正常数据、边界数据和异常数据,以覆盖不同情况下的功能和性能。

6. 确定测试方法:根据不同的功能和需求,选择适当的测试方法,如黑盒测试、白盒测试、性能测试等。

7. 确定测试环境:根据软件的特点和需求,确定测试环境、测试工具和测试设备,以确保测试的准确性和可靠性。

二、测试用例执行测试用例设计完成后,接下来是测试用例的执行。

在执行测试用例时,需要遵循以下步骤:1. 环境准备:在执行测试用例之前,需要准备好测试环境,包括测试设备、测试数据和测试工具等。

2. 执行测试用例:按照测试用例的步骤和预期结果,逐个执行测试用例,并记录实际结果和执行时间。

3. 记录问题和缺陷:在执行测试用例的过程中,如果发现问题和缺陷,应立即记录,并详细描述问题的具体情况和出现的条件。

4. 验证修复效果:当问题和缺陷被修复后,需要重新执行相关的测试用例,并验证修复的效果是否符合预期。

5. 编写测试报告:在测试结束后,根据执行的测试用例和实际结果,编写测试报告,包括测试的覆盖率、问题和缺陷的统计等。

测试用例设计的常见方法总结

测试用例设计的常见方法总结

测试用例设计的常见方法总结测试用例设计是软件测试过程中的重要一环,它决定了测试的覆盖范围和测试的质量。

合理有效的测试用例设计可以发现更多的错误,提高软件质量。

本文将总结常见的测试用例设计方法,包括黑盒测试方法、白盒测试方法和灰盒测试方法。

1. 黑盒测试方法黑盒测试方法是基于软件系统的功能需求和规格说明,而不考虑内部结构和实现细节的测试方法。

黑盒测试的目的是检验系统功能是否按照需求规格说明书的要求工作。

常见的黑盒测试方法包括:1.1 等价类划分法:将输入和输出的数据分为等价类,从每个等价类中选择一个或多个有效和无效的数据作为测试用例。

1.2 边界值分析法:选择输入数据的边界值和边界值周围的值作为测试用例,以发现潜在的错误。

1.3 决策表测试法:生成决策表,根据决策表的规则设计测试用例,以覆盖所有可能的条件和结果组合。

1.4 直觉法:依据个人的直觉和经验设计测试用例,对于特定的软件系统或特定的功能点可以提供较好的测试覆盖。

2. 白盒测试方法白盒测试方法是基于软件系统的内部结构和实现细节的测试方法。

白盒测试的目的是检验程序的逻辑结构是否正确,是否有遗漏的代码路径。

常见的白盒测试方法包括:2.1 语句覆盖:确保每个语句至少被执行一次。

2.2 判定覆盖:确保每个判定(条件)的所有可能取值至少被覆盖一次。

2.3 条件覆盖:确保判定的每个条件的所有可能取值至少被覆盖一次,包括真值和假值。

2.4 路径覆盖:覆盖所有可能的路径,包括正常路径、异常路径等。

2.5 边界值覆盖:选择边界值和边界值周围的其他值作为测试用例。

3. 灰盒测试方法灰盒测试方法综合了黑盒测试和白盒测试的特点,既考虑功能需求,又考虑内部结构和实现细节。

常见的灰盒测试方法包括:3.1 因果图测试法:通过分析系统功能和数据之间的因果关系,设计测试用例,以覆盖各种情况下的因果关系。

3.2 正交实验设计法:通过正交表设计测试用例,以尽可能减少测试用例的数量和重复覆盖的情况下,达到最优的覆盖率。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件测试用例的设计编写技巧对于测试人员来说测试用例的设计编写是一项必须掌握的能力,但有效的设计和熟练的编写却是一个十分复杂的技术,它需要你对整个软件不管从业务还是从功能上都有一个明晰的把握。

那么,软件测试用例的设计编写技巧有哪些呢?下面就让本人来告诉的大家吧!软件测试用例的设计编写技巧许多测试类书籍中都有大幅的篇章介绍用例的设计方法,如等价类划分,边界值,错误推断,因果图等。

但实际应用中这些理论却不能给我们很明确的行为指导,尤其是业务复杂,关联模块紧密,输入标准和输出结果间路径众多时,完全的遵循这些方法只能让我们在心理上得到一种满足,而无法有效的提高测试效率。

有时我们只有依靠以前项目的用例编写经验(或习惯),希望能在这一个项目中更加规范,但多数情况下我们规范的只是“书写的规范”,在用例设计上以前存在的问题现在依旧。

当好不容易用例基本完成,我们却发现面对随之而来的众多地区特性和新增需求,测试用例突然处于一种十分尴尬的境地:从此几乎很少被执行执行用例发现的bug很少根本没有时间为新的功能需求增补用例有时间补充,但用例结构越来越乱特性的用例与通性用例之间联系不明确(以新增需求为主线列出所有涉及到的更改,但特性与通行之间的数据或业务联系在用例中逐渐淡化)知道怎样执行这个用例,但它要说明什么呢?(多数用例给我们的感觉是只见树木,不见森林,只对某一功能,无法串起)通过上面的一系列问题可以看到,似乎测试用例给我们带来的问题远多于益处,也正是因为在实际过程中遇到的问题积累,导致我们有很充分的理由忽视或拒绝用例的应用。

但没有用例或简略用例的编写我们又会舒服很多么?不言自明,谁也不想倒退发展吧。

事实上我们在测试用例编写和设计上遇到的一系列问题只是一种表面的呈现,究其原因我认为有如下几点:1、没有适合的规范“适合的规范”或称“本地化的规范”。

这是我们在测试过程中遇到的第一个问题,通常也是很容易习惯且淡忘的。

我们拥有相当多的流程文档、书本上的定义,但它适合我们当前的项目么?每一个测试工程师在进入这个职业的初期都会了解一些测试上的概念和术语,进入公司或项目组后也会进一步学习相应的文档,例如怎样规范编写,怎样定义bug级别,软件实现的主要业务等。

但当测试经理开始给我们分配某一模块的用例编写时,又有多少人知道该怎样去写,怎样写算是好?在测试论坛中常能看到介绍用例编写方法的帖子,而迷茫于怎样应用到实践的回复也不为少数。

为何我们无法在公司和项目组内找到明确且适合的规范?于是我们只得选择从书本或之前的用例中复制,不管是结构还是方式都依赖于以往"的经验,我并不是说这样就是错误的,但不能总结成文的经验无法给予测试更多帮助。

我们有太多经验,但却没有形成适合的规范。

2、功能与业务的分离我们知道怎样列举一个输入框的用例,但却很少考虑说明这个输入框是用来做什么的,如果仔细分析不难发现,用例中这种功能与业务的分离越来越普遍也越来越明显。

边界值、等价类划分、因果图,这些用例方法是一种高度提纯的方法,本身就很偏向于功能及代码,所以怎样编写业务的用例我们就从理论上失去了参考。

复杂的业务会贯穿于整个软件,涉及众多功能点,里面组合的分支更不可胜数。

测试用例务求简洁、明确,这一点也与业务“格格不入”。

功能用例依赖程序界面,业务描述依赖需求文档。

于是我们更偏向于根据已实现的界面编写功能用例,列举出众多的边界值、等价类。

流程的操作只有凭借经验和理解,这时测试出的bug是最多的,但我们却无法使这个bug对应到一个用例中(点击一个按钮报出的错误有时原因并不在这个按钮或按钮所在的窗体)。

正因为我们没有很好的积累业务上的用例,才使得我们感到执行用例时发现的bug不多。

用例结构的划分一定程度上也造成了功能和业务的分离,依照界面模块建立文件夹,并在其中新建不同用例,这使得用例从结构上就很难联通起来。

3、测试未能跟上变化想象一下,当我们越来越多的听到开发人员在那里高呼“拥抱变化”“敏捷开发”的时候,测试又有什么举措呢?当地区特性,软件版本越来越多的时候,测试是否在积极响应呢?变化是我们面临的最大挑战,我认为测试未能跟上变化是造成测试过程中遇到种种问题和矛盾的主要原因。

对需求和程序的变化测试人员的感受是非常深的,测试总是跟在需求和开发后面跑,使得所有风险都压在自己身上。

不断压缩的时间和资源使我们只能放弃那些“不必要”的工作:尽快投入测试,尽快发现bug,而非从整体把握软件的质量情况,统筹策略。

疲于应对的直接影响就是程序质量无法准确度量,进度无法控制,风险无法预估。

用例与程序脱节,新增用例混乱和缺少。

长此以往我们只得放弃修改、增补用例,甚至放弃之前积累的所有成果。

用例变为程序变更的记录摘要,没有测试数据的保留,测试步骤和重点无法体现,新加功能与原来的程序逐渐“脱离”,可能还会出现相互违背的情况,但这我们却无法很快发现。

永远是变化决定我们的下一步工作,这也是混乱的开始。

在这里我希望以探讨的方式提出一些可能的解决办法,因为上面的问题也许在成熟的公司和项目组内很少遇到,而遇到问题的也需根据不同的情况单独考虑。

不用拘泥形式,最适合的就是最好的。

1、测试驱动开发,用例指导结果,数据记录变化“测试驱动开发”(TDD)是一个比较新的概念,在网上可以看到很多介绍文章,它主要讨论如何让开发的代码更奏效(Work)更洁净(Clean),“测试驱动开发的基本思想就是在开发功能代码之前,先编写测试代码”。

可以看到,TDD是建立在“代码”级别的驱动,但目前我们需要探讨的问题是怎样在黑盒测试中做到“测试驱动开发”。

首先我们需要纠正一个态度,很多人认为黑盒测试的技术含量不高,可思考可拓展的内容不多,主要的工作就是用鼠标在那里瞎点,于是很多“高级”的技术方法都试图与黑盒测试划清界限。

但测试人员发现的bug有80%以上都是黑盒测试发现的,手工操作软件仍是目前检验软件质量最有效的一种方法。

如何在黑盒测试中做到测试驱动开发?我认为可以从用例级别做起,以业务用例指导过程和结果。

开发人员通常比较关注技术,对于业务上的理解容易忽视并出现偏差,而需求文档又不会很明确的指出应该实现怎样的结果,这使得从业务到功能出现一个“阅读上的障碍”,如果最后程序错误了还需返工,这样耗费的人力物力就非常大了。

使用业务用例驱动开发,就是一个比较好的方法,同样这也需要运用测试中的各种方法,列举出业务流程里数据的等价类和边界值。

业务用例的构造要先于程序实现,与需求和开发人员沟通一致,并以此作为一个基准,保证程序实现不会错,还能对整个软件的进度和质量有一个很好的估计和度量。

业务用例可以不关注程序的界面,但一定要有数据的支持。

这就是测试主导变化的另一点“数据记录变化”。

我们不仅要应对变化,还要记录变化,使测试用例成为对程序持续性的监控,数据可以作为最基本、最简单的支持。

当一个业务很复杂时可以拆分成段(业务段与程序中以窗体或页面的划分是不一样的),使用典型的用例方法列出实际输入和预期结果。

我们希望数据能做到通用和共享,最理想的情况就是建立一个“数据库”,每个业务用例都从“数据库”中取得输入数据和预期结果,这个数据只是针对业务入口和出口的,当程序内部设计变更时,保留的数据不会因此而作废。

举一个例子,例如我的程序要从某种文件中读取数据并计算结果,一段时间后程序内部字段增加了,如果是以保存的文件附件方式提供数据,则现在程序很可能就打不开这个文件了。

使用“数据库”指导测试人员可以在变化的程序里直接针对业务输入,而不关心程序内部结构。

再进一步的话“数据库”就开始涉及到程序内部的接口了,这需要开发人员的配合。

为测试用例标明时间或版本可以起到一种基准的作用,标明项目进度过程中的每一个阶段,使用例直接和需求基线、软件版本对应。

同样这需要规范流程,也是对变更的一种确认和控制。

或者可以为用例增加一个状态,指明这个用例目前是否与程序冲突,当程序变更时改变用例的状态,并更新用例版本。

为测试用例标明优先级可以指出软件的测试重点、用例编写的重点,减少用例回归的时间,增加重点用例执行的次数,帮助项目组新人尽快了解需求,在自动化测试的初期也可以参考这个优先级录制脚本。

2、功能用例与业务用例分开组织将功能用例与业务用例分开组织,按照不同关注点列举执行路径。

业务用例应在开发前或同期编写,帮助测试人员和开发人员明确业务,了解正确流程和错误流程。

功能用例更依赖于程序界面的描述,但功能用例并不等于使用说明。

对某些模块的等价类、边界值测试会发现很多严重的bug,也许与业务无关,但用户往往很容易这样操作(例如登录名,你是否考虑到很长的名字,或者用户的键盘有问题,总是敲入n多空格在里面,这与业务无关,但程序将会怎样处理?)。

3、审核用例,结对编写测试组长或经理对用例进行审核可以做到用例的补充和校对,但一般情况下是很难做到的,我们可以采用另一种方法,就是结对编写测试用例(前提是你有两个以上的测试人员),内部审核。

测试用例不是一个人编写一个人执行,它需要其他测试人员都能读懂且明白目标所指。

结对编写可以尽量减少个人的“偏好习惯”,同时也能拓展思维,加强测试重点的确认,小组内部达到统一。

一定程度上结对编写也可以减少组长或经理对用例的管理,提高组员的参与积极性。

上面的这些解决方法只是一种建议,具体怎样实施到项目中还需根据情况而定。

可以看到测试的发展方向是很多很广的,传统的黑盒测试并不是毫无新意,测试工作怎样适合我们而发展,将给予我们更多的思考。

相关文档
最新文档