测试期末复习
第一章:
软件=程序+数据库+文档+服务。
软件的特点:软件必须依托具体的硬件设备而运行,硬件的改变很可能导致软件的不可用;软件严重依靠人的智力劳动,因此,常具有较大的随意性;软件不会磨损,但会随硬件设备及用户需求的不断变化而不断炫耀进行升级,甚至也可能被淘汰。
软件测试的概念:使用人工或自动手段来运行或测试某个系统的过程,目的在于检验其是否满足规定的需要或是弄清楚预期结果与实际结果之间的差别。
软件测试的原则:软件测试应贯穿软件生命周期,从需求阶段介入;测试前应准备好测试数据与预期结果一一对应;测试输入数据应包括合理的输入条件和不合理输入条件;程序提交后,应当由专门的测试人员进行测试;严格执行测试计划,排除测试的随意性;测试用例的所有相关预期结果做全面的检查;充分注意测试当中的群集现象;保存测试计划、测试用例、出错统计和最终分析报告,为维护工作提供充分的资料;缺陷具有免疫性
进行软件测试的原因:提高软件的质量,确保软件满足需求。
测试的分类:黑盒测试、白盒测试;动态测试、静态测试;手动测试、自动化测试。
测试用例:是一组测试输入、执行条件和预期结果。
测试用例的设计:正常数据、错误设计、边界设计。
测试用例设计的基本原则:数量越少越好,典型性越高越好,对缺陷的定位性越强越好。
软件缺陷:
软件未达到需求规格说明书中指明的功能;
软件中出现了需求规格说明书中指明不应出现的错误;
软件功能超出需求规格说明书中指明的范围;
软件未达到需求规格说明书中虽未指出但应到的目标;
软件测试员认为软件难以理解、不易使用、运行速度缓慢或者最终用户认为不好;
软件测试分类:
从是否关心内部结构角度:黑盒测试、白盒测试;
从是否运行被测程序角度:静态测试、动态测试;
从执行时是否需要人工干预角度:人工测试、自动化测试;
从软件开发的过程的角度:单元测试、集成测试、系统测试、验收测试;
从测试实施组织的角度:开发方测试、用户测试、第三方测试。
第二章
软件开发模型:是软件开发的全部过程、活动、任务和管理的结构框架,他给出了软件开发活动各阶段之间的关系。
软件开发生命周期模型:
大爆炸模式:思路简单,突发奇想,随意性大,修复困难;
边写边改模式:产品周期短,没有计划和文档编制,测试工作长期循环;
瀑布模型:逐级下落样式,线性顺序连接各阶段,阶段明显,强调需求分析,明确测试阶段,提供了一套模板,适用于无重大变动的软件,如操作系统、数据库管理系统;
螺旋模型:发现问题早,需要丰富的风险评估经验和专门知识,过多的迭代次数会增加成本,延迟提交时间;
敏捷开发模型:以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。
敏捷宣言:
个体和互动 高于 流程和工具
工作的软件 高于 详尽的文档
客户合作 高于 合同谈判
响应变化 高于 遵循计划
软件测试过程模型:
V模型:特点:动态测试应与开发行为对应;局限性:测试滞后,缺少静态测试。

W模型:优点:静态测试与动态测试行为将伴随着整个开发阶段,并与开发行为对应,有助于早期发现缺陷,了解项目难度、评估测试风险,加快项目进度,降低项目成本。将软件开发看成需求分析、设计和编码等一系列串行的活动;开发、测试之间保持着线性的前后关系,无法支持迭代的开发模型,无法支持变更调整;未体现测试流程的完整性

H模型:保持自身完整性,测试准备和执行活动是分离的。

X模型:清晰地体现了单元测试,集成测试,系统测试的过程,更加贴近实际的项目开发流程。

测试计划:对资源、时间、风险、测试范围和预算等方面分析规划。
