��【课前思考】
��1、为什么测试的主要目标不是验证程序的正确性而是查错?
��2、为什么要在整个开发阶段都要坚持测试?在开发早期如何测试?针对什么进行测试?
��3、为什么发现错误多的程序模块残留的错误也多?
��4、为什么测试用例不但要包含合理的输入数据,还要包括不合理的输入数据?
��5、为什么测试最好由开发人员以外的人员进行?其中的问题何在?
��6、测试过程需要哪几类输入?输出又是什么?
��7、B.Beizer按错误的性质和范围将软件错误分为哪5类?各占多少比例?
��8、单元测试要从哪5方面进行测试?为什么要建立驱动模块和桩模块?
��9、组装测试要从哪5方面进行测试?采用增殖方式进行组装有自顶向下、自底向上、衍变的自顶向下等方法,各自的组装顺序是什么?
��10、确认测试从哪几方面着手?验收测试由谁来做?如何做?
��11、α测试和β测试的区别在哪里?FURPS是什么意思?
��12、什么是黑盒测试?什么是白盒测试?为什么不能做到穷举测试?
��13、逻辑覆盖属于哪种测试?有哪几种?如何选择测试用例进行覆盖?
��14、在做逻辑覆盖时,如何避免有些复合条件测试不到的情形?
��15、在做基本路径测试时,如何选择独立路径?
��16、等价类划分和边界值分析等方法中如何划分等价类?几种方法的共性和区别在哪里?考虑到等价类之间的交互作用应如何选择测试用例?
��17、什么叫做桌前检查?什么叫做代码会审和走查?各自的步骤如何?
��18、测试与调试是一回事吗?如果不是,各自承担什么任务?
��19、测试、确认、验证这几个概念区别在哪里?
��20、程序调试主要有哪两个工作?
��21、测试中的可靠性分析依据什么模型?如何计算程序中潜在的总错误数?
��【学习目标】
��1、了解软件测试的目的和原则。
��2、了解软件错误的分类。
��3、了解软件测试的过程和策略。
��4、了解软件测试用例设计的方法,掌握逻辑覆盖、基本路径测试、因果图等测试用例设计方法。
��5、了解程序静态测试的方法。
��6、了解程序调试的概念。
��7、掌握软件测试中的可靠性分析方法
��【学习指南】
��尽管软件质量保证是贯穿于软件开发全过程的活动,但最关键的步骤是软件测试。软件测试是对软件规格说明、软件设计和程序编码的最后评审,目的是在软件交付用户使用之前尽可能多地发现软件中潜藏的错误。大量统计表明,软件测试工作量大约占软件开发总工作量的40%左右。在极端情况下,甚至可能高到软件开发过程其他阶段总工作量的三倍到五倍。
��本章从七个方面介绍与软件测试有关的概念和测试设计方法。其中包括测试的主要目标和原则、测试用例设计技术、测试种类和测试过程、人工测试的方法、程序调试的策略和方法,以及在测试过程中的可靠性分析方法。注意从3个方面进行学习:概念、方法和过程。概念包括测试目标、原则、测试信息流、确认、验证、调试、代码会审、走查等;方法主要包括黑盒测试和白盒测试,以及相关的逻辑覆盖、基本路径覆盖、分支与循环测试、等价类划分、边界值分析、因果图等测试用例设计技术;过程主要包括测试阶段的划分、每个阶段测试的实施组织或步骤、静态测试的内容等。
��本章涉及的测试用例设计技术和可靠性分析技术必须重点学习,它们是考试的重点。
��【难重点】
��・软件测试的目的和原则。
��・按软件错误的性质和范围分类。
��・确认和验证的概念。
��・软件测试的过程和策略。
��・黑盒测试和白盒测试方法的要点。
��・用逻辑覆盖方法设计测试用例。
��・用基本路径覆盖的方法设计测试用例。
��・用因果图方法设计测试用例。
��・有效等价类和无效等价类划分的原则。
��・单元测试的主要内容以及驱动模块与桩模块的建立。
��・组装测试的策略和各种组装策略的比较。
��・确认测试的过程以及测试的种类。
��・α测试和β测试的概念。
��・程序静态测试的几种主要方法。
��・程序调试的概念。
��・程序调试的4种主要方法。
��・用Shooman模型进行MTTF的估算和程序中潜藏错误的估计。
��
|