目前,有许多描述软件故障的术语,比如:缺陷( defect)、失效(failure )、错误(error )、故障( fault)等等,这些术语之间有着细微的差别,但是又难以说清,总之,有的软件故障隐藏在代码中。
如果按照正常的运行顺序、给出合乎常规的输入数据就不会轻易暴露出异常,但是无论这些术语之间存在着怎样的差别,可以将所有的软件故障都称之为软件缺陷,因此,软件测试的目标就是用有效的技术和方法发现软件中存在的软件缺陷。
根据软件开发过程,可以将如下几种情况定义为软件缺陷:软件没有完成需求规格说明书给出的功能需求。由于理解上的偏差,软件设计没有严格遵循。由于编码实现与软件设计之间的接口出现了问题,使得软件出现了不应有的错误,有时甚至无法运行。
软件功能超出了产品说明书预先指明的范围。软件没有达到产品说明书虽未指出但应该达到的目标。软件测试人员在实施静态分析时,发现编码实现冗余,导致运行速度缓慢。客户认为软件有缺陷,不能满足其要求。
当然,在实际的软件开发过程中,还需要其他一些有效的措施来减少软件缺陷的产生。比如,在进行软件测试之前,根据被测软件的特点组织相关专家进行分析,明确何种类型的软件故障会出现在被测软件中,就可以有的放矢地地实施软件测试。
推荐阅读: