目前应用于软件测试领域的技术有很多,而且差别很大,大致有两种分类方法。
  第一种是按测试的生成来源划分,即基于测试人员的直觉和经验(即兴测试)、需求规格说明(包括等价类划分、边界值分析、判定表、基于有限状态机、形式化语言转换和随机测试等)、代码结构(基于流程图、调用关系图等参考模型、基于控制流标准、基于数据流的标准)、发现的错误(以过去经验为基础的错误推测法、增加一个被测程序变种的变异测试)、被测程序的使用领域(操作剖面、软件可靠性工程测试)和被测程序类型(面向对象、基于构件、网站、GUI、并发程序、协议一致性、分布式系统、实时系统、科学计算软件测试)的测试技术。
  第二种是经典的分类方法,即黑盒测试和白盒测试。依赖于被测软件设计及编码信息进行的测试称为白盒测试(基于代码测试的参考模型、基于控制流标准、基于数据流标准和变异测试等),只依靠被测软件输入/输出行为而没有关于输入/输出之间信息状况的测试称为黑盒测试(等价类划分、边界值分析、判定表、基于有限状态机、源于形式化需求规格说明、错误推测法、随机测试、操作剖面和软件可靠性工程测试等)。
  在实际测试中,往往综合采用这些技术。
  测试过程有章可循
  过程是一组把输入转换为输出的相关活动。不同层次上的测试活动必须与人员、工具、政策、度量一起组织于一个良定义的过程中,这一过程是软件生命周期的完整组成部分。测试过程需要加以控制并进行持续改进。
  软件测试过程的决定性因素是人。对于成功的测试来说,一个必要条件是人员对测试活动所采取的积极和相互协作的态度。另外,应该使软件产品涉及的所有人员都认识到:及早发现软件错误是大家共同的目标,而不仅仅是测试人员的责任。
  文档是测试过程规范化的一个完整组成部分。IEEE 829完整描述了各种测试文档、文档间关联及文档与测试过程间的关联。测试文档包括测试计划、测试设计说明、测试过程说明、测试案例说明、测试日志和测试事件或问题报告等。用于测试过程控制与改进的度量包括:设计的测试用例数、执行的测试用例数、通过的测试用例数、失败的测试用例数等。
  测试管理的一个关键性任务是决定什么样的测试是充分的,某个测试阶段何时可以终止。对此,充分性度量和错误密度估价、操作可靠性评估都可提供有益支持,但只有这些还不充分。决策还应考虑潜在的遗留失效可能造成的损失和风险,并将之与进一步测试所需成本进行对比。为使测试和维护工作有组织、成本效益高,应将各测试手段系统化地加以重用。为此,应在测试的各个层次,对测试脚本、测试用例和预期结果进行精心定义并记录。
  用于特定环境、特定类型程序的测试方案,以及决策动机,构成了测试模式。测试模式本身也可文档化,并可重用于以后的类似项目。