`
- 浏览:
4425 次
-
敏捷宣言:
个体和交互比过程和工具更有价值;
能工作的软件比全面的文档更有价值;
顾客的协作比合同谈判更有价值;
及时响应变更比遵循计划更有价值。
并非每个企业都能严格按敏捷的相关开发方法进行项目管理,例如测试驱动、XP、SCRUM等。也并非都需要按这些方式管理才能实现敏捷。只要我们理解了敏捷的原则和精髓,我认为很多方法、很多地方都可以应用敏捷的思想,实现敏捷的管理。测试用例的设计是其中一项。
1。 测试用例的粒度
测试用例可以写得很简单,也可以写得很复杂。最简单的测试用例是测试的纲要,仅仅指出要测试的内容,如探索性测试(Exploratory Testing)中的测试设计,仅会指出需要测试产品的哪些要素、需要达到的质量目标、需要使用的测试方法等。而最复杂的测试用例就像飞机维修人员使用的工作指令卡一样,会指定输入的每项数据,期待的结果及检验的方法,具体到界面元素的操作步骤,指定测试的方法和工具等等。
测试用例写得过于复杂或过于详细,会带来两个问题:一个是效率问题,一个是维护成本问题。另外,测试用例设计得过于详细,留给测试执行人员的思考空间就比较少,容易限制测试人员的思维。
测试用例写得过于简单,则可能失去了测试用例的意义。过于简单的测试用例设计其实并没有进行“设计”,只是把需要测试的功能模块记录下来而已,它的作用仅仅是在测试过程中作为一个简单的测试计划,提醒测试人员测试的主要功能包括哪些而已。测试用例的设计的本质应该是在设计的过程中理解需求,检验需求,并把对软件系统的测试方法的思路记录下来,以便指导将来的测试。
大多数测试团队编写的测试用例的粒度介于两者之间。而如何把握好粒度是测试用例设计的关键,也将影响测试用例设计的效率和效果。我们应该根据项目的实际情况、测试资源情况来决定设计出怎样粒度的测试用例。
软件是开发人员需要去努力实现敏捷化的对象,而测试用例则是测试人员需要去努力实现敏捷化的对象。要想在测试用例的设计方面应用“能工作的软件比全面的文档更有价值”这一敏捷原则,则关键是考虑怎样使设计出来的测试用例是能有效工作的。
2。 基于需求的测试用例设计
基于需求的用例场景来设计测试用例是最直接有效的方法,因为它直接覆盖了需求,而需求是软件的根本,验证对需求的覆盖是软件测试的根本目的。
要把测试用例当成“活”的文档(Effective Software Testing : 50 Specific Ways to Improve Your Testing – Elfriede Dustin),因为需求是“活”的、善变的。因此在设计测试用例方面应该把敏捷的“及时响应变更比遵循计划更有价值”这一原则。
不要认为测试用例的设计是一个阶段,测试用例的设计也需要迭代,在软件开发的不同的阶段都要回来重新审视和完善测试用例。
3。 测试用例的评审
测试用例设计出来了,质量如何,如何提高测试用例设计的质量?就像软件产品需要通过各种手段来保证质量一样,测试用例的质量保证也需要综合使用各种手段和方法。
测试用例的检查可以有多种方式,但是最敏捷的应当属临时的同行评审。我认为同行评审,尤其是临时的同行评审,应该演变成类似结对编程一样的方式。从而体现敏捷的“个体和交互比过程和工具更有价值”,要强调测试用例设计者之间的思想碰撞,通过讨论、协作来完成测试用例的设计,原因很简单,测试用例的目的是尽可能全面地覆盖需求,而测试人员总会存在某方面的思维缺陷,一个人的思维总是存在局限性。因此需要一起设计测试用例。
除了同行评审,还应该尽量引入用户参与到测试用例的设计中来,让他们参与评审,从而体现敏捷的“顾客的协作比合同谈判更有价值”这一原则。这里顾客的含义比较广泛,关键在于你怎样定义测试,如果测试是对产品的批判,则顾客应该指最终用户或顾客代表(在内部可以是市场人员或领域专家);如果测试是指对开发提供帮助和支持,那么顾客显然就是程序员了。
因此,参与到测试用例设计和评审中来的人除了测试人员自己和管理层外,还应该包括最终用户或顾客代表,还有开发人员。
4。 测试用例数据生成的自动化
在测试用例设计方面最有希望实现自动化的,要当属测试用例数据生成的自动化了。因为设计方面的自动化在可想象的将来估计都很难实现,但是数据则不同,数据的组合、数据的过滤筛选、大批量数据的生成等都是计算机擅长的工作。
很多时候,测试用例的输入参数有不同的类型、有不同的取值范围,我们需要得到测试用例的输入参数的不同组合,以便全面地覆盖各种可能的取值情况。但是全覆盖的值域可能会不可思议地广泛,我们又需要科学地筛选出一些有代表性的数据,以便减轻测试的工作量。在这方面可利用正交表设计数据或成对组合法设计数据。
可利用一些工具,例如TConfig、PICT等来产生这些数据。
在性能测试、容量测试方面,除了设计好测试用例考虑如何测试外,还要准备好大量的数据。大量数据的准备可以使用多种方式:编程生成、SQL语句生成(基于数据库的数据)、利用工具生成。
工具未必能生成所有满足要求的数据,但是却是最快速的,编程能生成所有需要的数据,但是可能是最复杂、最慢的方式。所以应该尽量考虑使用一些简单实用的工具,例如DataFactory等。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
实际工作中,我们还需要考虑如何优化测试用例,例如通过探索性测试发现隐藏的问题,使用敏捷方法动态调整测试策略,以及利用持续集成工具自动化测试流程。同时,团队间的沟通和合作也至关重要,共同讨论和分享测试...
4. **增强自动化测试的智能性**:探索机器学习等先进技术在自动化测试中的应用,提高自动化测试用例的智能程度,从而更好地模拟用户行为并检测潜在问题。 通过不断优化自动化测试用例的设计和实施流程,可以有效...
在《软件测试技术及用例设计实训》一书中,提到的全书共30个实验与4个实训项目,正是为了帮助读者通过实际操作来掌握上述测试类型。实训项目往往被设计为模拟真实工作环境,能够使读者在学习理论知识的同时,通过...
问题驱动的软件测试设计包括以下步骤:收集参考文档、识别测试需求、选择测试技术、制定测试设计方案、分析测试需求概要、进行测试用例的设计和详细设计。在这个过程中,领域知识、过程知识、技术知识和软技能(如...
在敏捷开发环境中,测试用例伴随着代码的每一次提交进行,通过持续集成和持续测试确保软件质量。 综上所述,软件测试用例是软件开发过程中不可或缺的一部分,它确保了产品的稳定性和可靠性。通过深入理解和应用...
《XMind2TestCase:思维导图到测试用例的高效转化》 在软件测试领域,测试用例的设计是确保产品质量的重要环节。...在现代敏捷开发环境中,这种快速且直观的测试用例管理方式无疑具有极大的价值。
在实际操作中,测试用例可能需要根据软件的变化和客户需求进行调整。例如,当开发团队发生变化或客户提出新的需求时,测试用例需要更新以适应这些变化。此外,对于快速迭代的软件项目,测试用例的敏捷性和可扩展性...
本文提出了基于敏捷开发模式的动态回归测试排序算法,实现了新功能和原功能测试用例的排序优化,并在执行过程中动态调整测试序列的优先级。该算法包括两个主要步骤:新功能测试用例集排序算法NT-TCP和原功能测试用例...
2. 测试设计:设计测试用例和测试场景。 3. 测试开发:搭建测试环境,开发自动化测试脚本(如果有的话)。 4. 测试执行:根据测试计划和用例,实际运行软件进行测试。 5. 缺陷报告:记录在测试过程中发现的软件缺陷...
6. **敏捷测试用例设计**:探讨敏捷环境下的测试用例设计技巧,包括最小化用例粒度、优先级排序和基于风险的测试。 7. **持续集成与持续交付**:讲解如何设置和优化持续集成环境,实现快速反馈循环,以及如何向持续...
测试用例的设计 敏捷宣言: 个体和交互比过程和工具更有价值; 能工作的软件比全面的文档更有价值; 顾客的协作比合同谈判更有价值; 及时响应变更比遵循计划更有价值。 并非每个企业都能严格按敏捷的相关...
8. **持续集成与持续测试**:在敏捷开发环境中,持续集成和持续测试是最佳实践,确保每次代码提交后,都能快速得到反馈,及时发现并解决问题。 通过以上知识点的介绍,我们可以看到手机测试用例在软件质量保障中的...
在AgileTC中,测试用例不再仅仅是文字列表,而是通过图形化的方式呈现,这有助于团队成员更好地理解和执行测试步骤,提高测试效率。 测试用例是软件质量保证的关键组成部分,它定义了对软件进行验证的具体步骤和...
5.敏捷测试模型:适应敏捷开发方法,强调快速反馈、迭代和持续集成,测试与开发紧密结合。 **测试用例设计** 1. 等价类划分:将所有可能的输入数据划分为若干个等价类,只需为每个等价类选择一个代表性的数据进行...
以上内容只是软件测试领域的一部分,实际的"软件测试参考资料-测试用例参考"可能包含更详细的信息,如具体测试工具的使用、测试框架的选择、敏捷测试实践等,这些都是测试工程师日常工作中需要掌握的关键知识。...
10. **持续集成与持续测试**:在敏捷开发环境中,测试往往与开发紧密集成,通过持续集成工具自动运行测试,以快速发现并修复问题。 这个"测试文档"的压缩包很可能包含了以上提到的这些内容,为测试团队提供了一个...
同时,你还将了解到测试用例在整个软件开发生命周期中的关键作用,以及如何将其与敏捷开发方法相结合,实现持续集成和持续交付。 在学习过程中,建议结合实际项目练习,将理论知识应用于实践,以提升你的测试用例...