软件测试的内容主要包括验证和确认两个方面。验证(verification)是保证软件正确地实现了一些特定功能的一系列活动,即保证软件以正确的方式来做了这个事件(Do it right)。具体包括确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程、程序正确性的形式证明、评审、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告等。
确认(validation)是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件做了你所期望的事情。具体包括静态确认和动态确认。静态确认不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性;动态确认通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。
除了程序测试,软件测试还应该包括整个软件开发期间各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档等。因此,软件测试的对象不仅仅是程序测试,还包括整个软件开发过程。在软件测试中,常用的方法包括等价类、边界值、决策表等。