 A commission attributed the primary cause to general poor software design and development practices rather than single-out specific coding errors.In particular, the software was designed so that it was realistically impossible to test it in a clean automated way.Researchers who investigated the accidents found several contributing causes.