软件测试随着信息技术的飞速发展,软件在社会生活的方方面面发挥着日益重要的作用。软件的复杂性不断增大,开发周期有限,这些都导致了软件质量时常得不到保证。如何提高软件开发的质量呢?除了按照软件工程的过程和方法论去优化需求分析、设计、编程外,通过软件测试发现软件中的缺陷并进行修复显然是提升软件质量的重要途径。
软件测试作为软件开发中的一个重要环节,已逐渐形成一门新的学科和产业。2003年10月,国家人事部和信息产业部联合发文,将“软件评测师”资格考试纳入计算机技术与软件专业技术资格(水平)考试,就是一个显著的标志。
我国的软件测试研究和应用起步较晚,在软件测试理论研究、软件测试工具及框架研发、软件测试过程管理、软件质量保证等方面还落后于一些发达国家。尤其是在软件测试工具方面,国外的产品几乎占据了垄断地位。同时,软件测试的新理论与新技术日新月异。这些对我国的软件从业人员和测试从业人员都是严峻的考验。所以,作为软件测试产业从业人员的后备力量--广大的高职高专院校计算机专业学生(尤其是软件专业学生),理应系统地学习软件测试的概念、原理、方法和技术,为将来投身我国的测试产业做好准备,力争为我国测试产业的发展做出应有的贡献。
本书结合高职高专院校的教学特点,较系统地对软件测试进行了介绍,力求逻辑严谨、简明易懂、实践性强。书中的例题、案例和习题较多,便于教学和自学。本书还吸纳了软件测试中若干新理论和新技术,以反映软件测试的最新进展。
本书共分11章。第1章主要介绍了软件测试的目标,软件测试的认识误区,软件测试的发展史、现状及发展趋势;第2章介绍了软件测试的定义、对象及分类,V&V,软件测试过程模型和过程管理理念,测试驱动开发的概念和策略,软件测试的原则,软件测试文档;第3~4章介绍了黑盒和白盒测试用例的设计方法和策略;第5章介绍了单元测试的概念、步骤、环境和内容,单元测试用例的设计思路,用CppUnit进行单元测试;第6~7章介绍了集成测试、确认测试、系统测试和验收测试的概念和策略;第8章介绍了目前研究和应用的热点--面向对象软件测试的概念、模型和策略;第9章介绍了软件测试自动化的必要性和优点,自动化测试的认识误区,自动化测试的实施流程,自动化测试的原理和方法,主流测试工具,IBM Rational和HP Mercury公司的自动化测试解决方案,使用WinRunner进行功能测试;第10章介绍了软件质量和质量模型,软件度量,CMM及CMMI, PSP及TSP, SQA;第11章给出了几个具体的测试案例。书末附有常用测试术语表和测试站点推荐。
本书由曹薇任主编,张乃洲任副主编。张乃洲编写了第2章和第5章,其他章由曹薇编写。由于水平有限、时间仓促,书中难免存在不足之处,恳请专家和读者批评指正。
编 者2007年12月