软件工程方法与奥践 第7章软件测试 子教
软件工程方法与实践 第 7 章 软件测试 电 子教 案
第7章软件测谜 7.1软件测试概述 72软件测试技术 7.3软件调试技术 ⑨74多模块的软件测试 Q7.5特定应用软件的测试 97.6小结
第 7 章 软件测试 7.1 软件测试概述 7.2 软件测试技术 7.3 软件调试技术 7.4 多模块的软件测试 7.5 特定应用软件的测试 7.6 小结
711软件测试任务 ◆软件测试是软件质量“层层把关”的一个重要环节, 是软件产品在“发布”之前,对需求分析、设计和实现 (编码)等开发工作的最后复审。 ◆软件测试的基本目标是采用行之有效的测试方案,找 出迄今未被发现的、尽可能多的错误,并加以纠正。 ◆软件测试任务: ①测试任务—通过采用一定的测试策略,找出软件中 的错误; ②调试任务,或称为纠错任务—如果测试到错误,定 位软件中的故障源,加以纠正
7.1.1 软件测试任务 ◆软件测试是软件质量 “层层把关”的一个重要环节, 是软件产品在“发布”之前,对需求分析、设计和实现 (编码)等开发工作的最后复审。 ◆软件测试的基本目标是采用行之有效的测试方案,找 出迄今未被发现的、尽可能多的错误,并加以纠正。 ◆软件测试任务: ① 测试任务——通过采用一定的测试策略,找出软件中 的错误; ② 调试任务,或称为纠错任务——如果测试到错误,定 位软件中的故障源,加以纠正
测试和调试的流程 测试用例期望结果 测试 软件 测试结桌评价 错误信息调试 改正信息 图71软件测试和调试的流程 ◆测试和调试的流程实际是一个带回溯的线性有序过程。 ◆每一次测试都需要为之准备若干个必要的测试数据。把 用于测试过程的测试数据称为测试用例
测试和调试的流程 ◆测试和调试的流程实际是一个带回溯的线性有序过程。 ◆每一次测试都需要为之准备若干个必要的测试数据。把 用于测试过程的测试数据称为测试用例 。 图7.1 软件测试和调试的流程 软件 测试结果 错误信息 改正信息 测试用例 期望结果 测试 评价 调试
7.12软件测试原理 1.测试的特性 ◆复杂性。测试的复杂性来源于错误的多样性。软件错 误可划分为语法错误、结构性错误、功能性错误和接口 错误等类型。 ◆心理因素。测试主要是靠人的智力因素完成的一项技 术性工作。测试人员除了技术素质之外,往往对测试目 的、测试性质和选择测试对象等存在着一些心理上的认 识问题,这或多或少会影响测试行为
7.1.2 软件测试原理 1. 测试的特性 ◆复杂性。测试的复杂性来源于错误的多样性。软件错 误可划分为语法错误、结构性错误、功能性错误和接口 错误等类型。 ◆心理因素。测试主要是靠人的智力因素完成的一项技 术性工作。测试人员除了技术素质之外,往往对测试目 的、测试性质和选择测试对象等存在着一些心理上的认 识问题,这或多或少会影响测试行为
7.12软件测试原理 ◆不彻底性。“程序测试只能证明错误的存在,不能证 明错误不存在”揭示了软件测试一个重要性质—不彻 底性。彻底的测试往往是一个无穷量的“穷举”测试, 实际上往往是行不通的。 ◆经济性。软件测试是一项经济性活动,测试的投入 效益比应该是非常关注的指标。测试投入的成本是时间、 人力和资源等,其经济效益是“找没找到错”、“找到 了多少错”。测试投入是有限的,测试也只能是有限的
7.1.2 软件测试原理 ◆不彻底性。“程序测试只能证明错误的存在,不能证 明错误不存在”揭示了软件测试一个重要性质——不彻 底性。彻底的测试往往是一个无穷量的“穷举”测试, 实际上往往是行不通的。 ◆经济性。软件测试是一项经济性活动,测试的投入— 效益比应该是非常关注的指标。测试投入的成本是时间、 人力和资源等,其经济效益是“找没找到错” 、 “找到 了多少错” 。测试投入是有限的,测试也只能是有限的
7.12软件测试原理 2.测试的正确观点 ◆被测对象一定有错(该假定是合理的)。 ◆测试要能发现尽可能多的错误,争取测试效 益最大化。 ◆测试仅能证明错误的存在,而不能证明错误 的不存在
7.1.2 软件测试原理 2. 测试的正确观点 ◆被测对象一定有错(该假定是合理的)。 ◆测试要能发现尽可能多的错误,争取测试效 益最大化。 ◆测试仅能证明错误的存在,而不能证明错误 的不存在
7.12软件测试原理 3测试的原则 (1)提高软件的可测试性 软件系统或产品在开发的全过程中,应该考虑 提高软件的可测试性,这将使得软件测试能够 更容易、更有效地进行
7.1.2 软件测试原理 3. 测试的原则 ⑴ 提高软件的可测试性 软件系统或产品在开发的全过程中,应该考虑 提高软件的可测试性,这将使得软件测试能够 更容易、更有效地进行
7.12软件测试原理 (2)测试的组织 软件测试应该有组织、有计划地进行,提高测试效益。 ◆测试活动必须和软件过程相关活动并行进行,尽早发现 错误,不要“秋后算账”。 ◆建立独立的测试机构,避免心理上的和实质性的利益冲 突 ◆设计高产的测试方案,尽可能多地发现错误。 ◆测试成本投入不要“平均”分配,而是有计划、有重点 地分步实施测试
7.1.2 软件测试原理 ⑵ 测试的组织 软件测试应该有组织、有计划地进行,提高测试效益。 ◆测试活动必须和软件过程相关活动并行进行,尽早发现 错误,不要“秋后算账” 。 ◆建立独立的测试机构,避免心理上的和实质性的利益冲 突。 ◆设计高产的测试方案,尽可能多地发现错误。 ◆测试成本投入不要“平均”分配,而是有计划、有重点 地分步实施测试
7.12软件测试原理 (3)测试文档 测试文档主包括测试计划和测试报告两方面内容。测试计 划主要是测试立项说明,测试用例设计,以及测试步骤; 测试报告主要是测试结论说明。 测试需要设计一个测试用例集合。每一个测试用例都包括 组测试数据和一个相应的期望结果,可描述为: 测试用例={测试数据+预期结果} 测试结果可相应地描述为: 测试结果={测试数据+预期结果+实际结果
7.1.2 软件测试原理 ⑶ 测试文档 测试文档主包括测试计划和测试报告两方面内容。测试计 划主要是测试立项说明,测试用例设计,以及测试步骤; 测试报告主要是测试结论说明。 测试需要设计一个测试用例集合。每一个测试用例都包括 一组测试数据和一个相应的期望结果,可描述为: 测试用例 ={测试数据 + 预期结果} 测试结果可相应地描述为: 测试结果 ={测试数据 + 预期结果+ 实际结果}