第2章 软件测试基础

合集下载

软 件 测 试基础知识

软 件 测 试基础知识

第一章测试基础软件测试的定义:使用人工和自动的手段来运行或测试某个系统的过程。

其目的是检验它是否满足规定的需求或弄清预期结果与实际结果间的差别。

软件测试的目的:证明检测预防证明:1)获取系统在可接受风险范围内可用的信心2)尝试在非正常情况和条件下的功能和特性3)保证一个工作产品是完整的且可用或可被集成的检测:1)发现缺陷,错误和系统不足2)定义系统能力和局限性3)提供组件、工作产品和系统的质量信息预防:1)通过将测试活动提前介入到软件生命周期中,尽早的发现并消除前期研发阶段引入的缺陷,以防止前期缺陷遗留并放大到后续环节2)通过对发现的缺陷进行分析,找出导致这些缺陷产生的流程上的不足,通过改进流程,预防同类缺陷再次产生软件生命周期:计划->需求分析->概要设计->详细设计->编码->测试->运行维护1)计划:SDP (软件研发计划) UTP(单元测试计划)SVVP(软件验证与确认计划) ITP (集成测试计划)STP (系统测试计划)2)需求分析:SRS(软件需求规格说明)根据研发类型,需求来源,则用户针对的具体对象分为两种:针对产品的与针对项目的3)设计:HLD(High Level Design概要设计)LLD(Low Level Design 详细设计)4)编码:写成以某个程序设计语言表示的源程序清单,使用RDBMS(Relational Database Management System 关系型数据库管理系统)工具建立数据库。

5)测试:检验软件是否符合客户需求,达到质量要求。

按测试阶段分单元测试(UT)集成测试(IT )系统测试(ST )——最先介入,最晚结束6) 运行维护:将软件交付用户投入正式使用,以后便进入维护阶段,可能有多种原因需要对其进行修改,如软件错误、系统软件升级、增强软件功能、提高性能等。

软件研发的相关要素:人员 过程 工具1) 人员组成分析人员设计人员 开发人员 测试人员配置管理人员(CMO,SCM ) SQA2) 组架构软件研发流程:常见的软件研发流程:瀑布模型,螺旋模型,RUP 流程,IPD 流程软件缺陷和BUG (包括错误和不足):缺陷的引入是随时的,不确定的。

软件测试概要

软件测试概要

第一章:软件测试概述①软件缺陷定义:(1)软件未达到产品说明书中已经标明的功能;(2)软件出现了产品说明书中指明不会出现的错误;(3)软件未达到产品说明书中虽未指出但应当达到的目标;(4)软件功能超出了产品说明书中指明的范围;(5)软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。

②软件缺陷的特征:•“看不到”——软件的特殊性决定了缺陷不易看到•“看到但是抓不到”——发现了缺陷,但不易找到问题发生的原因所在③软件缺陷产生原因:(1)软件产品说明书(需求)——56%(不专业—专业~~信息传递)(2)设计——27%(设计不规范)(3)编写代码——7%(4)其他——10%(软、硬件设备之间的配备问题)④软件测试发展历程:早期―→测试1957年―→为了确信自己的产品20世纪70年代―→Glenford Myers 《软件测试艺术》——“测试是为发现错误而执行一个程序或系统的过程”20世纪80年代早期―→软件质量、Bill Hetzel 《软件测试完全指南》——“测试是以评价一个程序或者系统属性为目标的任何一种活动。

测试是对软件质量的度量”20世纪90年代―→测试工具盛行2002年―→Rick和Stefan《系统的软件测试》——“测试是为了度量和提高被测软件的质量,对测试件进行工程设计、实施和维护的整个生命周期过程”⑤今天的软件测试面临的挑战:•软件在国防现代化、社会信息化和国民经济信息化中的作用越来越重要,由此产生的测试任务越来越繁重•软件规模越来越大,功能越来越复杂,如何进行充分而有效的测试成为难题•面向对象的开发技术越来越普及,但是面向对象的测试技术却刚刚起步•对于分布式系统整体性能还不能进行很好的测试•对于实时系统来说,缺乏有效的测试手段•随着安全问题的日益突出,信息系统的安全性如何进行有效的测试与评估,成为世界性难题⑥软件开发与软件测试的关系:•测试与开发各阶段的关系项目规划阶段,需求分析阶段,详细设计和概要设计阶段,编码阶段,测试阶段(软件开发生命周期)•测试与开发的并行性⑦软件测试的发展趋势:•测试工作将进一步前移。

软件测试与质量保证教程

软件测试与质量保证教程

软件测试与质量保证教程第1章软件测试基础 (5)1.1 软件测试的定义与目的 (5)1.2 软件测试与软件开发过程 (5)1.3 软件测试的生命周期 (5)第2章软件测试类型与层次 (5)2.1 单元测试 (5)2.2 集成测试 (5)2.3 系统测试 (5)2.4 验收测试 (5)第3章测试用例设计 (5)3.1 测试用例的基本概念 (5)3.2 黑盒测试用例设计方法 (5)3.3 白盒测试用例设计方法 (5)第4章缺陷管理 (5)4.1 缺陷报告 (5)4.2 缺陷生命周期 (5)4.3 缺陷分析 (6)第5章自动化测试 (6)5.1 自动化测试概述 (6)5.2 自动化测试工具 (6)5.3 自动化测试用例设计 (6)第6章功能测试 (6)6.1 功能测试基础 (6)6.2 功能测试工具 (6)6.3 功能瓶颈分析 (6)第7章软件质量保证 (6)7.1 质量保证的基本概念 (6)7.2 质量保证与软件过程改进 (6)7.3 质量保证体系 (6)第8章评审与审计 (6)8.1 代码审查 (6)8.2 设计审查 (6)8.3 测试审查 (6)第9章测试团队与项目管理 (6)9.1 测试团队组织结构 (6)9.2 测试团队协作 (6)9.3 测试项目管理 (6)第10章敏捷测试 (6)10.1 敏捷测试概述 (6)10.2 敏捷测试实践 (6)10.3 敏捷测试工具 (6)第11章安全测试 (6)11.1 安全测试基础 (6)11.2 常见安全漏洞分析 (6)11.3 安全测试工具 (6)第12章测试前沿技术 (7)12.1 人工智能与机器学习在测试中的应用 (7)12.2 虚拟现实与增强现实测试 (7)12.3 物联网测试技术展望 (7)第1章软件测试基础 (7)1.1 软件测试的定义与目的 (7)1.2 软件测试与软件开发过程 (7)1.3 软件测试的生命周期 (7)第2章软件测试类型与层次 (8)2.1 单元测试 (8)2.2 集成测试 (8)2.3 系统测试 (8)2.4 验收测试 (8)第3章测试用例设计 (9)3.1 测试用例的基本概念 (9)3.2 黑盒测试用例设计方法 (9)3.3 白盒测试用例设计方法 (9)第4章缺陷管理 (10)4.1 缺陷报告 (10)4.1.1 缺陷基本信息 (10)4.1.2 缺陷描述 (10)4.1.3 缺陷相关附件 (10)4.2 缺陷生命周期 (10)4.2.1 发觉(Open) (11)4.2.2 确认(Confirmed) (11)4.2.3 解决(Fixed) (11)4.2.4 验证(Verified) (11)4.2.5 关闭(Closed) (11)4.3 缺陷分析 (11)4.3.1 缺陷分布分析 (11)4.3.2 缺陷原因分析 (11)4.3.3 缺陷趋势分析 (11)4.3.4 缺陷预防措施 (11)第5章自动化测试 (11)5.1 自动化测试概述 (12)5.1.1 定义 (12)5.1.2 分类 (12)5.1.3 原理 (12)5.1.4 优势 (12)5.2 自动化测试工具 (12)5.2.2 Appium (13)5.2.3 JMeter (13)5.3 自动化测试用例设计 (13)5.3.1 等价类划分法 (13)5.3.2 边界值分析法 (13)5.3.3 错误推测法 (13)5.3.4 判定表法 (13)5.3.5 关键字驱动法 (13)5.3.6 页面对象模型(POM) (13)第6章功能测试 (14)6.1 功能测试基础 (14)6.2 功能测试工具 (14)6.3 功能瓶颈分析 (14)第7章软件质量保证 (15)7.1 质量保证的基本概念 (15)7.1.1 质量 (15)7.1.2 软件质量 (16)7.1.3 质量保证的定义 (16)7.1.4 质量保证的目标和原则 (16)7.2 质量保证与软件过程改进 (16)7.2.1 软件过程改进的概念 (16)7.2.2 软件过程改进的方法 (17)7.2.3 质量保证与软件过程改进的关系 (17)7.3 质量保证体系 (17)7.3.1 质量保证体系的构成 (17)7.3.2 质量保证体系的实施要点 (17)第8章评审与审计 (18)8.1 代码审查 (18)8.1.1 目的 (18)8.1.2 方法 (18)8.1.3 输出 (18)8.2 设计审查 (18)8.2.1 目的 (18)8.2.2 方法 (18)8.2.3 输出 (19)8.3 测试审查 (19)8.3.1 目的 (19)8.3.2 方法 (19)8.3.3 输出 (19)第9章测试团队与项目管理 (19)9.1 测试团队组织结构 (19)9.1.1 测试管理层 (19)9.1.2 功能测试组 (19)9.1.4 自动化测试组 (20)9.1.5 安全测试组 (20)9.2 测试团队协作 (20)9.2.1 明确角色和职责 (20)9.2.2 沟通与协作 (20)9.2.3 共享资源 (20)9.2.4 跨部门协作 (20)9.3 测试项目管理 (20)9.3.1 测试计划 (20)9.3.2 测试用例管理 (20)9.3.3 缺陷管理 (20)9.3.4 风险管理 (21)9.3.5 测试报告 (21)第10章敏捷测试 (21)10.1 敏捷测试概述 (21)10.1.1 敏捷测试基本概念 (21)10.1.2 敏捷测试原则 (21)10.1.3 敏捷测试的优势 (21)10.2 敏捷测试实践 (22)10.2.1 测试计划 (22)10.2.2 测试设计 (22)10.2.3 测试执行 (22)10.2.4 测试反馈 (23)10.2.5 测试改进 (23)10.3 敏捷测试工具 (23)10.3.1 JIRA (23)10.3.2 Selenium (23)10.3.3 JMeter (24)10.3.4 Allure (24)第11章安全测试 (24)11.1 安全测试基础 (24)11.1.1 安全测试概念 (24)11.1.2 安全测试目标 (24)11.1.3 安全测试原则 (25)11.1.4 安全测试方法 (25)11.2 常见安全漏洞分析 (25)11.2.1 SQL注入 (25)11.2.2 跨站脚本攻击(XSS) (25)11.2.3 跨站请求伪造(CSRF) (25)11.2.4 其他常见漏洞 (25)11.3 安全测试工具 (26)11.3.1 静态代码分析工具 (26)11.3.2 动态测试工具 (26)11.3.4 模糊测试工具 (26)第12章测试前沿技术 (26)12.1 人工智能与机器学习在测试中的应用 (26)12.1.1 智能化测试用例 (26)12.1.2 智能化缺陷定位 (26)12.1.3 智能化测试评估 (27)12.2 虚拟现实与增强现实测试 (27)12.2.1 VR/AR设备兼容性测试 (27)12.2.2 VR/AR功能测试 (27)12.2.3 VR/AR用户体验测试 (27)12.3 物联网测试技术展望 (27)12.3.1 设备互联测试 (27)12.3.2 网络安全性测试 (27)12.3.3 数据处理与分析测试 (27)好的,以下是一份软件测试与质量保证教程的目录:第1章软件测试基础1.1 软件测试的定义与目的1.2 软件测试与软件开发过程1.3 软件测试的生命周期第2章软件测试类型与层次2.1 单元测试2.2 集成测试2.3 系统测试2.4 验收测试第3章测试用例设计3.1 测试用例的基本概念3.2 黑盒测试用例设计方法3.3 白盒测试用例设计方法第4章缺陷管理4.1 缺陷报告4.2 缺陷生命周期4.3 缺陷分析第5章自动化测试5.1 自动化测试概述5.2 自动化测试工具5.3 自动化测试用例设计第6章功能测试6.1 功能测试基础6.2 功能测试工具6.3 功能瓶颈分析第7章软件质量保证7.1 质量保证的基本概念7.2 质量保证与软件过程改进7.3 质量保证体系第8章评审与审计8.1 代码审查8.2 设计审查8.3 测试审查第9章测试团队与项目管理9.1 测试团队组织结构9.2 测试团队协作9.3 测试项目管理第10章敏捷测试10.1 敏捷测试概述10.2 敏捷测试实践10.3 敏捷测试工具第11章安全测试11.1 安全测试基础11.2 常见安全漏洞分析11.3 安全测试工具第12章测试前沿技术12.1 人工智能与机器学习在测试中的应用12.2 虚拟现实与增强现实测试12.3 物联网测试技术展望第1章软件测试基础1.1 软件测试的定义与目的软件测试是通过对软件产品进行操作和评价,以验证软件是否满足预定的需求和设计,查找并排除其中潜在缺陷和错误的过程。

软件测试基础知识指南

软件测试基础知识指南

软件测试基础知识指南章节一:软件测试的概念和重要性在软件开发过程中,软件测试是不可或缺的一环。

软件测试通过执行预先定义的测试用例,验证软件的功能、性能和稳定性,以确保软件能够按照需求和期望的方式正常工作。

软件测试的目的是发现软件中的错误、缺陷和问题,并提供修复建议,从而降低软件上线后出现问题的风险。

章节二:软件测试的分类软件测试可以按照不同的维度进行分类。

首先,根据测试的对象,可以将软件测试分为单元测试、集成测试、系统测试和验收测试等。

单元测试针对软件中的最小测试单元(通常是函数或方法)进行测试,验证其独立性和正确性。

集成测试则用于测试组件和模块之间的协作。

系统测试主要关注软件的整体功能和性能。

而验收测试旨在评估软件是否满足用户需求和预期。

此外,软件测试还可以根据测试的手段分为手工测试和自动化测试。

章节三:软件测试的原则和策略软件测试的目标是发现尽可能多的缺陷和问题,提高软件品质。

为此,软件测试需要遵循一些基本原则和采用适当的策略。

其中,常见的原则包括完备性原则、独立性原则、缺陷定位原则等。

在测试策略方面,可以采用等价类划分、边界值分析、错误猜测和正交试验等方法,提高测试效率和覆盖率。

章节四:软件测试的生命周期软件测试是软件开发生命周期中的一部分,需要与其他开发活动相互配合。

一般来说,软件测试从需求分析开始,到软件上线结束。

具体而言,软件测试的生命周期包括测试计划编制、测试用例设计、测试环境准备、测试执行和测试评估等阶段。

每个阶段都有固定的任务和活动,以确保测试工作的有序进行。

章节五:常用的软件测试技术为了支持软件测试的工作,有许多常用的测试技术和方法可供选择。

例如,黑盒测试方法关注软件的功能和输入输出,而不关心内部实现细节。

白盒测试则通过检查软件的源代码和内部结构来进行测试。

灰盒测试则综合了黑盒测试和白盒测试的优点。

此外,还有基于模型的测试、性能测试、安全测试等各种技术可用于不同的测试场景。

章节六:软件测试工具与环境为了提高测试效率和准确性,许多软件测试工具被开发出来,用于支持不同类型的测试活动。

第02章 软件测试的基本概念

第02章 软件测试的基本概念

软件测试与质量保证》 《软件测试与质量保证》课件
2.2.3 按测试阶段分类
4、确认测试 、
确认测试又称验收测试,是软件开发结束后, 确认测试又称验收测试,是软件开发结束后,用户对软件产品投入 实际应用前,进行的最后一次质量检验活动。 实际应用前,进行的最后一次质量检验活动。它要回答开发的软件产品 是否符合预期的各项要求,以及用户能否接受的问题。 是否符合预期的各项要求,以及用户能否接受的问题。 确认测试的目的: 确认测试的目的: 验证软件功能的正确性和需求的符合性。 验证软件功能的正确性和需求的符合性。
2.1 软件测试的概念
本小节包含两个方面的内容: 本小节包含两个方面的内容: 2.1.1 软件测试的定义 2.1.2 软件测试的目的
软件测试与质量保证》 《软件测试与质量保证》课件
2.1.1 软件测试的定义
软件测试的研究可以追溯到20世纪 年代 软件测试的研究可以追溯到 世纪60年代,至今已有 世纪 年代, 40多年的历史,但是对于什么是软件测试,至今没有统一的 多年的历史,但是对于什么是软件测试, 多年的历史 定义,其中比较权威的是 年给出的定义: 定义,其中比较权威的是IEEE于1983年给出的定义: 于 年给出的定义 软件测试是使用人工和自动手段来运行或测试某个系统 的过程, 的过程,其目的在于检验它是否满足规定的需求或弄清楚预 期结果与实际结果之间的差别。 期结果与实际测试与质量保证》课件
2.2.3 按测试阶段分类
2、集成测试 、 集成测试也称为组装测试, 集成测试也称为组装测试,集成测试按设计要求把通过 单元测试的各个模块组装在一起之后所进行的测试。 单元测试的各个模块组装在一起之后所进行的测试。 集成测试的目的: 集成测试的目的: 检查模块间的接口关系,以便发现与接口有关的各种错误。 检查模块间的接口关系,以便发现与接口有关的各种错误。

软件测试(第2版 慕课版)课后习题答案

软件测试(第2版 慕课版)课后习题答案

第一章软件测试基础课后习题答案1.什么是软件测试?软件测试发现一个应用从开始到结束时的错误,测试是一个过程。

(Glenford J.Myers 提出对软件测试的定义)测试是发现错误而执行的一个程序或系统的过程测试以发现故障为目的,是为了发现故障而执行程序过程2.软件测试涉及哪几个关键问题?软件测试的经济性原则谁来测试(who)测试什么(what)什么时候测试(when)怎样进行测试(how)测试的停止标准是什么(which)3.为什么说软件需求说明是软件故障的最大来源?软件需求是描述了系统有哪些功能,功能操作,性能如何等问题,是开发阶段的重要文档,也是后期软件开发的重要依据。

如果软件需求一开始就错了,在后面处理过程则会把错误放大,这样使得修复起来成本就是提升。

4.简述软件测试的复杂性和经济性。

复杂性1.完全测试是不现实的2.软件测试是有风险的3.杀虫剂现象4.缺陷的不确定性经济性软件测试是软件生命期中费用消耗最大的环节。

测试费用除了测试的直接消耗外,还包括其他的相关费用5.分析最近发生的软件质量事故,并简要分析产生的原因。

具体案例具体分子6.启动Windows计算器,输入“6,000-6=”(逗号不能少),观察计算结果,这是软件故障吗?为什么?这是软件故障中的界面缺陷。

由于无法输入逗号,无法进行输入,当做一个界面缺陷,因为不符合需求,原本是小数点变成了逗号。

7.软件测试应遵循哪些重要的原则或方针?1.完全测试程序是不可能的2.软件测试是有风险的3.测试无法找到隐藏的软件故障4.存在的故障数量与发现的故障数量成正比5.杀虫剂现象6.并非所有软件故障都能修复7.一般不要丢弃测试用例8.应避免测试自己编写的程序9.软件测试是一项复杂且具有创造性的和需要高度智慧的挑战性任务8.假定无法完全测试某一程序,那么在决定是否应该停止测试时应考虑哪些问题?在工作中,常用的停止测试标准有五类:测试超过了预定时间,停止测试执行了所有测试用例但没有发现故障,停止测试使用特定的测试用例方法作为判断测试停止的基础正面指出测试完成要求,如发现并修改70个软件故障根据单位是见查出故障数量决定是否停止测试9 . 假如星期一测试软件的某一功能时,每小时能发现一个新的软件故障,那么星期二会以什么频率发现软件故障?第一感觉就是与第一天(星期一)的一样,既然前一天发现的频率以每小时都有新的故障,说明软件的缺陷很高,所以第二天也可能有同样的频率。

软件测试初学者指南

软件测试初学者指南

软件测试初学者指南第一章:什么是软件测试?软件测试是指通过一系列活动来评估和改善软件质量的过程。

它的目的是发现软件中可能存在的错误、缺陷和风险,并确保软件在投入使用前能够达到预期的功能和性能要求。

软件测试是软件开发生命周期中非常重要的一个环节,它可以帮助开发团队提高软件质量,降低开发和维护成本。

第二章:软件测试的分类软件测试可以分为黑盒测试和白盒测试两大类。

1.黑盒测试:黑盒测试是基于软件外部行为进行测试的方法。

测试人员并不了解软件内部的设计和实现细节,只关注软件的输入和输出,通过设计测试用例来验证软件是否符合预期需求。

2.白盒测试:白盒测试是基于软件内部结构进行测试的方法。

测试人员了解软件的设计和实现细节,通过针对代码的覆盖率和路径覆盖等指标来评估测试的完整性和准确性。

第三章:软件测试的过程软件测试过程可以分为计划、设计、执行和评估四个阶段。

1.测试计划:制定测试计划是软件测试的第一步,团队需要明确测试的目标、资源需求、测试策略和风险评估等内容。

2.测试设计:在这个阶段,测试人员根据需求文档和设计文档来设计测试用例,包括功能测试、性能测试、安全测试、兼容性测试等。

3.测试执行:根据测试设计,测试人员开始执行测试用例,记录测试结果,并将发现的问题进行整理和报告。

4.测试评估:测试结果分析与评估是测试的最后一步,在这个阶段,测试人员会对测试的覆盖范围、测试的准确性和完整性进行评估,并提出改进意见。

第四章:常用的测试技术在软件测试中,有一些常用的测试技术可以帮助测试人员更全面地评估软件的质量。

1.功能测试:通过输入预期的数据和操作来测试软件的功能是否符合需求。

2.性能测试:通过加载、压力和稳定性测试等来评估软件的性能表现。

3.安全测试:评估软件在面临各种威胁时的安全性能,包括漏洞分析和渗透测试等。

4.兼容性测试:测试软件在不同平台和操作系统上的兼容性,确保软件能够正常运行。

5.自动化测试:使用自动化工具来设计和执行测试用例,提高测试效率和覆盖范围。

软件测试 第2章软件测试过程模型及标准

软件测试 第2章软件测试过程模型及标准

第2章软件测试过程模型及标准第一节回顾1.软件过程模型:软件开发全部过程、活动和任务的结构框架也称软件开发模型或软件生存周期模型2.典型的软件过程模型:瀑布模型,演化模型,增量模型,原型模型,螺旋模型,喷泉模型,基于构件的开发模型,形式方法模型3.瀑布模型(包含计算机系统工程)(如图所示)将软件放在计算机系统工程中,考察软件在计算机系统扮演什么角色,软件做什么,区分哪些事情由硬件完成,哪些事情软件完成,哪些事情由人完成。

4.瀑布模型(不包含计算机系统工程)(如图所示)第二节软件测试过程模型1.模型:描述软件测试全部过程、活动和任务的结构框架2.典型的软件测试模型:2.1V模型2.2W模型2.3H模型2.4TMap模型第三节V模型1.V模型描述软件开发各阶段与软件测试类别的关系2.V模型的左分支展示了软件开发的活动(和传统瀑布模型的开发步骤相一致),右分支展示了软件测试的类别特点:3.可根据V模型确定各软件测试阶段的测试要求4.可针对开发活动的不同特点为不同的测试类别设计不同的测试用例5.体现测试人员参与开发的全过程6.V模型(含计算机系统工程)(如图所示)7.V模型(不含计算机系统工程)(如图所示)8.V模型右侧的测试级别随软件开发程度的加深而对应不同级别的测试阶段a)单元测试:主要针对详细设计和编码的测试b)集成测试:主要针对概要设计的测试c)系统测试:主要针对软件系统或计算机系统的测试d)验收测试:主要由用户进行的测试缺点:V模型把测试过程作为在需求定义、需求分析、系统概要设计、系统详细设计及编码之后的一个阶段。

容易使人理解为测试是软件开发的最后阶段,测试主要针对程序进行,而需求定义、需求分析、系统概要设计、详细设计阶段隐藏的问题一直到后期的系统测试和验收测试才被发现。

第四节W模型1.V模型中增加各开发阶段应同步进行的验证和确认活动,演化成W模型2.W模型由两个V组成,一个V代表开发过程,另一个V代表测试过程优点:3.体现了尽早地、不断地进行软件测试4.体现了测试对象不仅是程序代码,还包括需求分析、设计等阶段的工作产品,测试与开发同步进行。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• 在黑盒测试中交叉使用白盒测试的方法。

2.6软件测试的最佳实践
2.6.1测试计划的制定(5W1H,六何分析法) Why、What、When、Where、Who、How • 为何测试 • 测试哪些方面,不同阶段的工作内容 • 测试不同阶段的起止时间 • 文档、缺陷的存放位置,测试环境 • 人员组成 • 如何去做,使用的测试工具及测试方法
源程序
分析
基本路径测试法 逻辑覆盖法
测试用例
被测程序 覆盖情况分析
执行路径
图2-1 白盒测试过程示意图
图2-2 黑盒测试示意图
案例:设计某购书网中“管理员信息维护”模块的场景 测试用例,管理员信息维护界面如图2-3,点击“Edit” 链接,进入编辑界面,如图2-4。
图2-3 管理员信息维护界面
图2-4 管理员信息编辑界面
案例分析: 第一步:确定基本流和备选流,如表2-1。
表2-1 基本流和备选流
基本流
备选流1 备选流2 备选流3
点击“管理员信息维护”Tab,点击 “Edit”链接,输入正确的管理员姓名、 用户名、登录密码,点击“UpDate”链接。 不点击“Edit”链接,直接点击“删除” 点击“Edit”链接,不点击“Update”点击 “Cancel” 点击“Edit”后,输入错误的用户信息, 点击“UpDate”链接
2)缺点 • 工作量大, 成本高。通常只用于单元测试, 有应用局限; • 无法检测代码中遗漏的路径和数据敏感性 错误; • 不能验证规格说明的正确性; • 不易生成测试数据(通常),必须编码完成才 能根据内部逻辑结构生成。
2.5.2黑盒测试的优缺点
1) 优点: • 测试人员不需要了解实现的细节,包括具体的编 程语言; • 测试员和程序员可以由不同的人员来担任; • 从用户的角度进行测试,容易被理解和接受; • 有助于暴露任何规格不一致或有歧义的问题; • 测试用例的设计可以在规格说明完成之后马上进 行(提早); • 适用于各阶段测试。
• 引言 • 测试概要
–编写目的(可加阅读指南)、项目背景和系统 简介、术语和缩写词、参考资料 –测试目的、范围、用例设计方法、测试环境配 置、测试方法和工具
• 测试结果及缺陷分析
–执行情况记录、测试时间、测试版本、覆盖分 析、缺陷统计与分析
• 测试结论
–是否充分、风险度量、目标是否达成、相关建 议
2)缺点 • 某些代码得不到测试; • 如果没有清晰、简洁的规格说明,难以设计测试 用例; • 如果测试人员不知道开发人员已经执行过该测试 用例,会存在不必要的重复测试;(不是同一人)
• 不能直接针对可能隐蔽了许多问题的特定程序段 进行测试; • 不易进行充分性测试。
• 2.5.3灰盒测试
• 介于白盒测试和黑盒测试之间,是现代测试的一种 理念。 • 在白盒测试中交叉使用黑盒测试的方法;
4
场景4-点击“Edit”后, 系统提示错误信息 输入错误的用户信息
2.5 白盒测试与黑盒测试的比较 2.5.1白盒测试的优缺点
• • • •
1)优点 可构成测试数据对特定程序部分测试,可 以检测代码中的每条分支和路径; 揭示隐藏在代码中的错误; 对代码的测试比较彻底; 有一定的充分性度量手段。 (覆盖率)
第三步:设计用例把数据填入用例表中,如表2-3
表2-3 测试用例
测试 用例ID 1 场景/条件 预期结果Βιβλιοθήκη 场景1-正常管理员信 息维护
输入正常
2
场景2-不点击“Edit” 链接,直接点击“删 除”
场景3-不点击 “Update”点击 “Cancel”
删除正常
3
取消保存上一步输入的信息 管理员姓名、用户名、登录密码变为 不可编辑状态, “UpDate”、 “Cancel”显示为“Edit”
取得需求文档:需求定义文档 需求规格说明文档 需求追踪矩阵
优先级高 新增或修改的功能 使用用例设计技术 80-20原则
确定测试策略:测试的范围 测试方法 测试入口 自动化测试策略
用例和功能对应 各种环境 因素的组合
确定测试系统:测试架构 测试环境 测试配置
2.6.3测试用例文档的编制
1、测试用例的设置
用例和功能对应
2、测试用例的设计
等价类划分法、边界值分析法、错误推测法、 因果图法、逻 辑覆盖法等。 考虑不周 丰富经验和精心设计。
3、测试用例的评审 软件版本更新 4、测试用例的修改更新 5、测试用例的管理 如:word、excel、数据库
反馈缺陷,用例有漏洞
第二步:根据基本流和备选流来确定场景, 如表2-2.
表2-2 确定场景
场景1-正常管理员信息维护 基本流 场景2-不点击“Edit”链接, 基本流 直接点击“删除” 场景3-不点击“Update”点 基本流 击“Cancel” 场景4-点击“Edit”后,输入 基本流 错误的用户信息 备选流1 备选流2 备选流3
预估测试工作量:确定任务 按人天和工作周来预估工作量 得到时间进度计划和里程碑 评估进度风险并制定风险化解计划
准备并复查测试计划:编写策略、系统、工作量和时间进度 文档与项目团队一起复查测试计划
2.6.2测试报告 • 测试报告是测试阶段最后的文档产出物。
如何打造测试团队?
• 2.6.4 选择合适的人才建设测试团队
• 一、确定测试团队在企业中的定位
– 隶属其他部门(如项目经理)还是独立? – 工期短时是否被弱化? 测试团队隶属 质量管理部门
产品组经理
项目经理 设计经理
开发经理
质量保证经理
流程经理
开发工程师
测试人员
烟囱型测试
团队定位
–测试员、开发人员及其它团队成员无法进行有效沟通, 将提高发布风险
洗衣机 洗衣服干净程度 耗电量 耗水量 噪音大小 突然断电造成的影响
• 包括产品质量和测试过程的评价,测试报告基于 测试中的数据采集以及对最终测试结果的分析。 • 一图胜千字
• 编写要素:
• 基本信息
–版本信息、声明信息(免责)
用户:结论(产品质量)
开发者:缺陷结果 项目管理者:测试成本 高层:图表、其它项目比较
2. 我国电话号码一般由两部分组成。
地区码:以0开头的3位或者4位数字。 电话号码:以非0、非1开头的7位或者8位数字。
应用程序会接受一切符合上述规定的电话号码, 而拒绝不符合规定的号码。试用等价类划分法 设计测试用例。
3. 针对自动售货机程序运用因果图法进行测试用 例设计。 自动售货机有两种东西(橙汁、可乐)供选择 (两个按钮),售价均为5角。售货机可以接受 5角钱或1元钱的硬币,需要找零钱。例如,投 入1元硬币买橙汁,如果售货机没有零钱找,则 退回1元硬币,并红灯显示“零钱找完”。

二、确定测试团队的规模 三、确定企业中需要的测试类型 (矩阵)
阶段 功能 安全测试 安装测试 性能测试 容量测试 功能测试 单元测试 集成测试 系统测试 验收测试

• 四、确定需要的测试阶段
– 尽量提早,返工难
• 不同阶段找出缺陷的耗时示意如下:
• 五、建立测试团队的内部组织结构
2.6.5 软件工程迭代开发过程
本章小结
• • • • • 白盒测试的概念和测试用例设计方法 黑盒测试的概念和测试用例设计方法 白盒测试和黑盒测试的比较 There is no “one true way”! 软件测试的最佳实践
– – – – 测试计划 测试报告 测试用例的设计 测试团队建设
习题
1. 假如某个系统的注册用户名要求由字母开头, 后跟字母或数字的任意组合构成,有效字符不 超过6个。 试确定有效等价类和无效等价类, 并据此设计测试用例。
相关文档
最新文档