软件测试是一门非常崭新的学科,目前研究的内容还不很深入,所涉及的只是测试数字、测试函数等一些非常简单的问题,可以说还处于婴儿阶段。当前,软件测试作为一个成长中的专业,在美国已经有大学开设。由于软件测试学科还不成熟,到底它需要一个什么样的专业基础,尚无定论,而且目前还没有一种很好的标准来衡量一个测试人员的优劣。陈宏刚博士以微软公司为例为我们讲述了软件测试的方法。
我们要对我们的测试做一个定义:软件测试是为了发现错误而执行程序的过程。我们进行我们意义在哪里,是保证产品质量,还是保证项目能够及时上线。这里也涉及到我们测试的目的:提高产品的质量。
你可以不必找一个黑客或者解密高手来测试你程序的安全性,也不需要购买一大堆昂贵的黑客工具。但是,你必须有一套处理过程来发现潜在的问题。如果遵从我下面详细介绍的五个处理步骤,你就可以轻松发现一般的开发缺陷。而且一旦发现了这些缺陷,就可以减轻或消除他们。
多年来,在航空电子工业领域,覆盖率分析技术已经在复杂的软件控制系统错误检测方面取得了非常有效的业绩。现在,汽车工业也在考虑在软件控制方面的测试质量和不断增加的费用之间选择。如果能够借鉴航空电子工业领域中的经验和教训将是一种明智的选择。
从一个软件企业的长远发展来看,如果要提高产品的质量首先应当从流程抓起,规范软件产品的开发过程。这是一个软件企业从小作坊的生产方式向集成化规范化的大公司迈进的必经之路,也是从根本上解决质量问题,提高工作效率的一个关键手段。
软件测试的重要性是毋庸置疑的。但如何以最少的人力、资源投入,在最短的时间内完成测试,发现软件系统的缺陷,保证软件的优良品质,则是软件公司探索和追求的目标。每个软件产品或软件开发项目都需要有一套优秀的测试方案和测试方法。
测试资源的分配,不仅要考虑测试团队的构成,而且要考虑不同的所需要的人数和对人员的要求是不同的。其次,软件测试项目所需的人员和要求在各个阶段是不同的。
传统的软件测试流程:一般是在软件开发过程中进行少量的单元测试。然后在整个软件开发结束阶段,集中进行大量的测试,包括功能和性能的集成测试和系统测试。随着软件开发的越来越复杂,传统的软件测试流程不可避免的给我们带来以下问题。
软件测试是为了发现错误而执行程序的过程。我们进行我们意义在哪里,是保证产品质量,还是保证项目能够及时上线。这里也涉及到我们测试的目的:提高产品的质量。
谈到自动化测试方面的误区,不少文章倾向于从人性、管理、职业规划等方面进行探讨。我这次专门从计划、设计、实现、维护等技术角度总结一下。