通过老师课上的讲解以及对书本和百度百科的学习,我对软件测试有如下的理解。
软件开发的最基本要求是按时、高质量地发布软件产品,而软件测试是软件质量保证的最重要的手段之一。在整个软件生命周期中,每个阶段、每个时刻都存在软件测试活动,软件测试伴随着软件开发,以检验每一个阶段性的成果是否符合质量要求和达到预先定义的目标,尽可能早地发现错误并及时地修正。
对于软件来讲,总会存在或多或少的问题。在需求定义中会出现问题,在软件设计和编程中同样会存在问题。软件系统在构造过程中,无论采用什么技术和什么方法,软件问题仍然不可避免。即便采用成熟的编程语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出,软件中的错误密度也需要测试来进行评估。
因此就有了软件测试这个概念。
软件测试,描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出之间的审核或者比较过程。
没有测试,软件就没有质量;测试没做好,软件问题可能会引起灾难或者给软件企业带来巨大的损失。软件测试是软件质量保证的重要手段之一,是软件开发过程中不可缺少的部分。软件测试,不仅要检验软件是否已经正确地实现了产品规格书所定义的系统功能和特性,而且要确认所开发的软件是否满足用户真正需求的活动。软件测试贯穿着整个软件生命周期,和软件开发构成相辅相成的关系。
软件测试的目的,可以用它的经典定义来回答,即:为了在规定的条件下对程序进行操作,发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估。例如,软件缺陷影响通信传输,造成航班无法起飞,旅客滞留机场;再比如,演唱会或大型话剧等活动的官方购票网站由于性能不佳导致不能承受过多的网上购票而瘫痪最终停止服务;以及英特尔公司由于软件缺陷而拿出4亿多美金对用户进行补偿,放射性治疗仪Therac-25存在缺陷导致癌症病人受到过量放射性治疗而死亡。这些无不在告诉我们一个简单而重要的事情——软件测试的重要性。
由此,软件测试受到越来越大的重视,而为了摆脱繁琐而影响效率的手工测试,许多实践者开始尝试开发了测试工具。通过运用测试工具,可以达到提高测试效率的目的。测试工具的发展,大大提高了软件测试的自动化程度,让测试人员从繁琐和重复的测试活动中解脱出来,专心从事有意义的测试设计等活动。采用自动比较技术,还可以自动完成测试用例执行结果的判断,从而避免人工比对存在的疏漏问题。设计良好的自动化测试,在某些情况下可以实现 “ 夜间测试 ” 和 “ 无人测试 ” 。在大多数情况下,软件测试自动化可以减少开支,增加有限时间内可执行的测试,在执行相同数量测试时节约测试时间。现在软件测试以及其使用的工具都得到了广泛应用并且成熟而完善,前景一片大好。