代码错误主要包括:语法错误;打字错误;对语句或指令不正确理解所产生的错误。

按软件生存期阶段分类

Good enough-Gerhart分类方法把软件的逻辑错误按生存期不同阶段分为4类。

① 问题定义(需求分析)错误

它们是在软件定义阶段,分析员研究用户的要求后所编写的文档中出现的错误。换句话说,这类错误是由于问题定义不满足用户的要求而导致的错误。

② 规格说明错误

这类错误是指规格说明与问题定义不一致所产生的错误。它们又可以细分成:

不一致性错误:规格说明中功能说明与问题定义发生矛盾。

冗余性错误:规格说明中某些功能说明与问题定义相比是多余的。

不完整性错误:规格说明中缺少某些必要的功能说明。

不可行错误:规格说明中有些功能要求是不可行的。

不可测试错误:有些功能的测试要求是不现实的。

③ 设计错误

这是在设计阶段产生的错误,它使系统的设计与需求规格说明中的功能说明不相符。它们又可以细分为:

设计不完全错误:某些功能没有被设计,或设计得不完全。

算法错误:算法选择不合适。主要表现为算法的基本功能不满足功能要求、算法不可行或者算法的效率不符合要求。

模块接口错误:模块结构不合理;模块与外部数据库的界面不一致,模块之间的界面不一致。

控制逻辑错误:控制流程与规格说明不一致;控制结构不合理。

数据结构错误:数据设计不合理;与算法不匹配;数据结构不满足规格说明要求。

④ 编码错误

编码过程中的错误是多种多样的,大体可归为以下几种:数据说明错、数据使用错、计算错、比较错、控制流错、界面错、输入/输出错,及其它的错误。

在不同的开发阶段,错误的类型和表现形式是不同的,故应当采用不同的方法和策略来进行检测。