俗话说”人无完人“,软件是人写的,所以软件不可能完美。这些不完美,叫软件“缺陷”。
先举个例子,保证都是“血淋淋“的亲身经历:
1. 某软件项目,由于合同时间点的关系,系统必须在某日上线,并让客户使用,此日期前很长一段时间开发工程师没日没夜的加班,由于过度疲劳和未详细测试,在编码过程中埋下了很多“坑”。到客户现场的培训过程中,客户使用软件后,说“你们应该给我的测试费,你们不光拿我们当小白鼠,还把我们当你们的测试人员”,对于在乎脸面的人来说,脸是火热的,心是***。
2. 汽车远程监控系统,车载数据采集设备,并用移动网络进行数据传输,设计预留15分钟的数据存储空间,就是说在没有移动信号的情况下最多存储15分钟数据,信号正常进行数据快速传输。在大多数情况没问题,但极端情况下比如汽车进入某些山区就会不止15分钟没信号,可能2小时或更长时间不会有移动信号,这种情况下导致15分钟后的数据丢失。
软件问题可大可小,小的是软件不能运行或浏览器出现错误。大的是造成非常巨大的经济损失和人员伤亡,可能是火箭发射不久的爆炸,可能是炮弹在在到达指定位置就爆炸导致人员伤亡。所以,软件的成败决定系统的成败。
什么是软件缺陷呢?
回答几个问题自己去总结什么是软件缺陷:哪些功能是需要的,但现在没有?哪些功能是不需要的,但现在有?哪些功能被遗忘了?你为什么不喜欢这个软件?只要是能回答出来就说明软件有缺陷。
1. 软件未实现产品说明书要求的功能:如果是瀑布开发模型,大部分不能百分百完成说明书