自动化测试
只要可能,单元测试都应该自动化,这样就可以在不需要人工干预的情况下运行和检查测试。在自动化单元测试中,您可以使用测试自动化框架(如JUnit)来编写和运行程序测试。单元测试框架提供了通用的测试类,您可以通过扩展这些类来创建特定的测试用例。然后,他们可以运行您已经实现的所有测试,并通常通过一些GUI报告测试的成功情况。
自动化测试组件
设置部分,您在其中用测试用例(即输入和预期输出)初始化系统。调用部分,在这里调用要测试的对象或方法。断言部分,将调用的结果与预期的结果进行比较。如果断言的计算结果为true,则测试成功;如果为false,则测试失败。
选择单元测试用例
测试用例应该显示,当您按照预期使用时,您正在测试的组件将执行它应该执行的操作。如果组件中存在缺陷,那么测试用例应该能够揭示这些缺陷。这导致了两种类型的单元测试用例:
第一个应该反映一个程序的正常操作,并且应该显示组件按预期工作。
另一种测试用例应该基于常见问题出现的地方的测试经验。它应该使用异常输入来检查这些信息是否被正确处理,并且不会使组件崩溃。
测试策略
分区测试,您可以识别具有共同特征的输入组,并且应该以相同的方式进行处理。您应该从每个组中选择测试。基于指南的测试,您可以使用测试指南来选择测试用例。这些指导方针反映了以前程序员在开发组件时经常犯的错误。
分区测试
输入数据和输出结果通常属于不同的类,其中类的所有成员都是相关的。这些类中的每一个都是一个等价分区或域,在这个分区或域中,程序对每个类成员的行为都是等价的。T测试用例应该从每个分区中选择。
组件测试
软件组件通常是由几个交互对象组成的复合组件。例如,在气象站系统中,重构组件包括处理重构的各个方面的对象。您可以通过定义的组件接口访问这些对象的功能。因此,对复合组件的测试应该关注于显示组件接口的行为是否符合其规范。您可以假设组件中单个对象的单元测试已经完成。
接口测试
目的是检测由于接口错误或对接口的无效假设而导致的故障。
接口类型
参数接口从一个方法或过程传递给另一个方法或过程的数据。共享内存接口内存块在过程或函数之间共享。过程接口子系统封装了一组供其他子系统调用的过程。消息传递接口子系统向其他子系统请求服务
接口错误
接口误用一个调用组件调用另一个组件,在使用它的接口时出错,例如参数顺序错误。接口误解调用组件嵌入了关于被调用组件行为的假设,这些假设是不正确的。定时错误被呼组件和被呼组件的运行速度不同,访问的信息过期。
系统测试
开发期间的系统测试包括集成组件以创建系统的版本,然后测试集成的系统。系统测试的重点是测试组件之间的交互。系统测试检查组件是否兼容,是否正确交互,以及是否在正确的时间跨接口传输正确的数据。系统测试测试系统的紧急行为。
在系统测试期间,可以将单独开发的可重用组件和现成系统与新开发的组件集成在一起。然后对整个系统进行测试。由不同的团队成员或子团队开发的组件可以在这个阶段进行集成。系统测试是一个集体而不是一个单独的过程。在一些公司中,系统测试可能涉及一个独立的测试团队,设计师和程序员不参与其中。
用例测试
为识别系统交互而开发的用例可以用作系统测试的基础。每个用例通常涉及到几个系统组件,因此测试用例迫使这些交互发生。与用例相关的序列图记录了被测试的组件和交互。
测试策略
详尽的系统测试是不可能的,因此可以开发定义所需系统测试覆盖的测试策略。测试策略示例:对所有通过菜单访问的系统功能进行测试。通过同一菜单访问的函数组合(如文本格式)必须进行测试。在提供用户输入的地方,所有函数都必须用正确和不正确的输入进行测试。
测试驱动开发
测试驱动开发(TDD)是一种程序开发方法,在这种方法中,您可以交替进行测试和代码开发。T est在编写代码之前编写,“通过”测试是开发的关键驱动因素。您以增量方式开发代码,并对该增量进行测试。在您所开发的代码通过测试之前,您不会转移到下一个增量。TDD是作为敏捷方法(如极限编程)的一部分被引入的。然而,它也可以用于计划驱动的开发过程。
发布测试
发布测试是测试一个特定的系统版本的过程,这个系统版本是为了在开发团队之外使用。发行版测试过程的主要目标是说服系统的供应商它已经足够好,可以使用了。因此,发布测试必须显示系统交付了指定的功能、性能和可靠性,并且在正常使用期间不会失败。发布测试通常是一个黑盒测试过程,其中的测试只来源于系统规范。