简介
你的公司是一家金融公司,建立了一个银行网站。这是你公司有史以来最大的软件项目,你的老板希望得到最高质量的产品。
开发团队非常努力地工作,制作了这个网站。现在这个网站已经设置在服务器上。http://demo.guru99.com/
然而,他们不确定当它在真实的商业环境中启动时将如何有效地工作。
老板指派你担任这个项目的测试经理。你的任务是在将Guru99 Bank网站交付给客户之前验证和评估其质量。
本系列教程将帮助你回答上述问题。你将有机会成为真实项目Guru99 Bank的测试经理。
在启动该项目之前,你应该知道测试管理的基本概念,并回答以下一系列问题——。
什么是测试管理?
软件质量的一个重要部分是测试和验证软件的过程。
测试管理是以下实践
- 组织和控制测试过程。
- 确保测试过程的可见性、可追溯性和控制,以提供高质量的软件。
为什么我们需要一个测试经理?
测试在软件开发生命周期中的作用
在上述瀑布模型中,软件测试是软件开发生命周期(SDLC software development lifecycle)中的一个阶段。测试阶段在SDLC中起着重要作用,是一个关键因素,它有助于提高软件系统的质量、可靠性和性能。
让我们来看看软件开发生命周期中的软件测试的优势:
- 提高系统的质量、可靠性和性能。
- 在竞争激烈的市场中生产出高质量的产品。
测试管理是一个关键的角色,因为它的结果会影响到项目的成功。因此,为了创造一个有效的测试过程,我们需要一个好的测试经理。
测试经理的角色和责任是什么?
软件测试经理的作用是领导测试团队。测试经理在团队中起着核心作用。
测试经理对项目的成功承担全部责任。该角色涉及质量和测试宣传,资源规划和管理,以及解决阻碍测试工作的问题。
测试负责人/经理的职责是
- 建立并领导测试团队,使项目获得成功
- 每次发布/交付时确定测试的范围
- 部署和管理测试的资源
- 在产品和测试团队中应用适当的测试测量和衡量标准
- 规划、部署和管理任何给定任务的测试工作。
测试经理必须了解测试是如何融入组织结构的,换句话说,明确界定其在组织中的角色。
测试管理中的挑战是什么?
作为测试经理,你必须保证以下所有的要求:
在领导一个项目时,你会面临大量的困难和挑战。以下是一些典型的问题:
- 没有足够的时间进行测试
- 没有足够的资源来进行测试
- 项目预算低,进度太紧
- 测试团队不总是在一个地方
- 需求太复杂,无法检查和验证
你已经知道测试管理的一些典型困难,让我们从一个实际的例子开始吧
想象一下,现在你是项目的测试经理:在向客户发布网站之前,验证和评估网站的质量http://demo.guru99.com/。
你的老板想和你讨论项目的规划、测试的充分性、预算和进度。你准备好了吗?让我们加入讨论吧
上面的例子只是你在任务中可能面临的众多困难之一。接下来的教程将帮助你克服这些困难,使你取得成功。
参考资料
本文涉及的python测试开发库 谢谢点赞! https://github.com/china-testing/python_cn_resouce
python精品书籍下载 https://github.com/china-testing/python_cn_resouce/blob/main/python_good_books.md
测试精品书籍 https://github.com/china-testing/python-testing-examples
测试管理过程
测试管理是一个管理测试活动的过程,以确保软件应用的高质量测试。该方法包括组织、控制、确保测试过程的可追溯性和可视性,以提供高质量的软件应用程序。它确保软件测试过程按预期运行。
你成为你公司最重要项目的测试经理。该项目任务是测试尊敬的 “Guru99银行 “的网上银行设施。
一切看起来都很好。你的老板信任你。他指望你。你有很好的机会在你的任务中证明自己。但事实是:
测试管理不仅仅是一个单一的活动。它由一系列的活动组成
测试管理的阶段
本专题简要介绍了测试管理过程,并向你展示了测试管理阶段的概况。
测试管理流程
测试管理流程是从头到尾管理软件测试活动的过程。测试管理过程在整个项目周期内提供计划、控制、跟踪和监控设施。该过程涉及几个活动,如测试计划、设计和测试执行。它为软件测试过程提供了初步的计划和纪律。为了帮助管理和简化这些活动。
测试管理过程有两个主要部分:
- 计划
- 风险分析
- 测试评估
- 测试计划
- 测试组织
- 执行
- 测试监测和控制
- 问题管理
- 测试报告和评估
计划风险分析和解决方案
风险是由给定的行动或活动导致的潜在损失(不理想的结果,但不一定是这样)。
风险分析是测试经理在开始任何项目之前应该考虑的第一个步骤。因为所有的项目都可能包含风险,早期的风险检测和识别其解决方案将帮助测试经理避免未来的潜在损失,并节省项目成本。
你将在这里了解更多关于风险分析和解决方案的细节。
测试评估
评估是一种预测或预报。测试估算是大致确定一项任务需要多长时间完成。估算测试的工作量是测试管理中主要和重要的任务之一。
正确评估的好处:
- 准确的测试估计能使测试经理关注的任务得到更好的计划、执行和监控。
- 允许更准确的调度,帮助更有信心地实现结果。
- 你将在这里了解有关测试估算和指标的更多细节。
测试计划
测试计划可以被定义为描述测试活动的范围、方法、资源和时间表的文件。
如果没有完整的测试计划,项目可能会失败。测试计划在大型软件系统开发中尤为重要。
在软件测试中,测试计划给出了关于即将进行的测试工作的详细测试信息,包括:
- 测试策略
- 测试目标
- 退出/暂停标准
- 资源规划
- 测试交付物
你将在这篇文章中了解到有关测试计划的更多细节。
测试组织
软件测试中的测试组织是定义测试过程中角色的程序。它定义了谁在测试过程中负责哪些活动。同一过程也解释了测试功能、设施和活动。还定义了相关人员的能力和知识。然而,每个人都要对测试过程的质量负责。
现在你有计划,但你将如何坚持计划并执行它?为了回答这个问题,你有测试组织阶段。
一般来说,你需要组织有效的测试团队。你必须组建熟练的团队,有效地运行不断增长的测试引擎。
你需要了解更多关于测试组织的信息吗?为什么自我组织的团队如此重要?点击这里了解详情。
执行测试监测和控制
当你的项目资源耗尽或超过时间计划时,你会怎么做?你需要监测和控制测试活动,使其回到计划中。
测试监测和控制是监督所有必要指标的过程,以确保项目运行良好,按计划进行,并且不超出预算。
监测是一个收集、记录和报告项目经理和利益相关者需要知道的关于项目活动的信息的过程。
为了监测,测试经理要做以下活动
- 定义项目目标,或项目绩效标准
- 观察项目绩效,并比较实际和计划的绩效预期
- 记录和报告任何发生在项目上的问题。
项目控制是一个使用监测活动数据的过程,使实际性能达到计划性能。
在这个步骤中,测试经理采取行动,纠正与计划的偏差。在某些情况下,计划必须根据项目情况进行调整。
问题管理
正如文章开头提到的,所有项目都可能有潜在的风险。当风险发生时,它就成为问题。
在任何项目的生命周期中,总会出现一些意想不到的问题和疑问。比如说:
- 公司削减了你的项目预算
- 项目团队缺乏完成项目的技能
- 项目进度太紧,你的团队无法在最后期限前完成项目。
测试时要避免的风险:
- 错过最后期限
- 超出项目预算
- 失去客户的信任
当这些问题出现时,你必须准备好处理它们–否则它们有可能影响项目的结果。
测试报告和评估
项目已经完成了。现在是时候回顾一下你所做的事情了。
测试评估报告的目的是:
“测试评估报告 “描述了在测试覆盖率和退出标准方面的测试结果。测试评估中使用的数据是基于测试结果数据和测试结果总结。
3风险分析什么是风险分析?
风险是发生不良事件的概率。
风险分析是分析与测试项目相关的风险的过程。
为了您项目的成功,应确定风险,并在项目开始之前确定相应的解决方案。
被测系统:Guru99 Bank Home Page
Guru99银行有两个角色:经理和顾客
以下功能/模块可用于这两个不同的角色
阅读完需求文档后,您可能已经意识到该网站有太多功能和复杂的场景。
Guru99银行网站已经完成了开发阶段。 现在开始测试阶段。 可悲的是,您在需求阶段没有及早参与。您的老板需要您在一个月内完成测试,但预算有限,但期望质量很好 。
风险管理可以帮助:
风险分析的过程
步骤1)识别风险
可以识别风险并将其分类为软件产品中的两种类型
项目风险:项目风险可以定义为可以影响项目进度的不确定事件或活动。 这种影响对实现项目目标的前景产生了积极或消极的影响。
项目风险主要有3类
组织风险
这是与您的人力资源或测试团队相关的风险。 例如,在您的项目中,缺乏技术熟练的成员是一种风险。 没有足够的人力来按时完成项目是另一个风险。
要确定组织风险,您应该列出几个问题并将其作为自我锻炼来回答。
技术风险
技术风险是指在执行未经测试的工程,错误的测试程序等技术过程中发生的损失概率。 以下是技术风险的示例
您在此项目中的任务是测试银行网站。 您必须设置适当的测试环境,以反映真实的业务环境。 如果未正确设置测试环境,则无法正确测试产品,并且无法检测到许多缺陷 。
商业风险
风险涉及外部实体。 这可能来自您的公司,您的客户,而不是您的项目。
下图显示了业务风险的示例。
在这种情况下,测试经理必须找出处理风险的解决方案,例如:设置测试阶段的优先级 ,重点测试网站的主要功能;利用测试工具提高测试效率;应用流程改进以减少管理工作。
产品风险
产品风险是指系统或软件可能无法满足或满足客户,用户或利益相关者的期望。 此风险与产品功能有关,如性能问题,安全问题,崩溃方案等。
以下是一些产品风险的例子:跳过了客户在用户要求中指定的一些关键功能;软件不可靠 ,经常无法正常工作;软件失败的方式会对用户或使用该软件的公司造成财务或其他损害;软件存在与特定质量特性相关的问题,例如安全性,可靠性,可用性,可维护性或性能。
现在回到您的项目,Guru 99 Bank网站是否存在任何产品风险? 要回答此问题,您应该按照以下步骤操作
- 步骤2)分析风险发生的影响
在上一个主题中,我们已经确定了可能妨碍您的项目的风险。 以下是确定的风险列表:可能没有足够的人力资源来在截止日期前完成项目;测试环境可能无法像真实的商业环境那样正确设置;由于业务情况,您的项目预算可能减少一半;网站可能缺乏安全功能
接下来,您应该分析这些风险。每个风险应根据以下两个参数进行分类:概率、影响。
使用下面的矩阵,您可以将风险分为四类: 高,中和低或值3,2,1
- 步骤3)采取对策来降低风险
该活动分为3部分
风险应对
项目经理需要选择能够将风险降至最低的策略。 项目经理可以在以下四种风险应对策略中进行选择
风险登记
所有风险必须由项目经理,利益相关者和项目成员记录,记录和确认。 项目团队的所有成员都可以自由访问风险登记册。
有一些有用的注册风险,如Redmine , MITER ……等。
监控风险
可以持续监控风险,以检查是否有任何变化。 通过不断的监测和评估机制可以确定新的风险。
4评估技术
什么是软件测试评估?
测试估计是一种管理活动,它近似于任务完成所需的时间。 估计测试工作量是测试管理中的主要和重要任务之一。
评估什么?
- 资源: 执行任何项目任务都需要资源。 它们可以是人员,设备,设施,资金或任何其他能够完成项目活动所需的定义。
- 时间:时间是项目中最有价值的资源。 每个项目都有一个交付截止日期。
- 技能:技能意味着团队成员的知识和经验。 它们会影响您的估计。
- 成本:成本是项目预算 。 一般来说,这意味着完成项目需要多少钱 。
怎么估计?
软件测试评估技术列表
- 工作分解
- 三点软件测试评估技术
- Wideband Delphi技术
- 功能点/测试点分析
- Use – Case点法
- 百分比分布
- 临时(Ad-hoc)方法
以下是达到估算的4步骤流程
步骤1)将整个项目任务划分为子任务
在这种技术中,复杂的项目被分为模块。 模块分为子模块。 每个子模块进一步划分为功能。 这意味着将整个项目任务划分为最小的任务。
使用Work Break Down结构将Guru99 Bank项目划分为5个较小的任务 –
之后,您可以将每个任务分解为子任务。 此活动的目的是尽可能详细 地创建任务。
任务 | 子任务 |
---|---|
分析软件需求规范 | 调查软要求规格 |
与开发人员和其他利益相关者面谈,了解有关该网站的更多信息 | |
创建测试规范 | 设计测试场景 |
创建测试用例 | |
审查和修改测试用例 | |
执行测试用例 | 构建测试环境 |
执行测试用例 | |
检查测试执行结果 | |
报告缺陷 | 创建缺陷报告 |
创建缺陷 | |
报告缺陷 |
步骤2)将每个任务分配给团队成员
在此步骤中,每个任务都分配给项目团队中的相应成员。 您可以按如下方式分配任务
任务 | 会员 |
---|---|
分析软件需求规范 | 所有成员 |
创建测试规范 | 测试员/测试分析师 |
构建测试环境 | 测试管理员 |
执行测试用例 | 测试员,测试管理员 |
报告缺陷 | 测试员 |
步骤3)任务估计
您可以使用两种技术来估算任务的工作量:功能点法、三点估计
功能点方法:测试管理者估计任务的大小,持续时间和成本
- 步骤A)估算任务的大小
在步骤1中 ,您已经使用WBS方法将整个项目任务分解为小任务。
在开始实际估算任务工作之前,功能点分为三组,如Complex , Medium Simple ,如下所示:
基于软件功能的复杂性,测试管理者必须为每个功能点提供足够的权重 。 例如
组 | 权重 |
---|---|
复杂 | 5 |
介质 | 3 |
简单 | 1 |
让我们举一个简单的示例练习来更清楚:
网站Guru99 Bank的SRS,软件工程师已经详细描述了软件模块,你能否通过给出每个模块的权重来确定网站功能的复杂性 ?
序号 | 模块名称 | 适用角色 | 描述 | 权重 |
---|---|---|---|---|
1 | 余额查询 | 经理、顾客 | 客户:客户可以拥有多个银行帐户。 他只能查看他的账户余额 经理:经理可以查看受其监督的所有客户的余额 | 3 |
2。 | 资金转账 | 经理、顾客 | 客户:客户可以将“自有”帐户的转帐资金转移到任何目标帐户。 经理:经理可以将资金从任何来源银行账户转移到目标账户 | 5 |
3 | Mini Statement | 经理、顾客 | Mini语句将显示帐户的最近5笔交易 客户:客户只能看到他自己帐户的迷你声明 经理:经理可以看到任何账户的迷你声明 | 3 |
4 | Customized Statement | 经理、顾客 | 自定义语句允许您根据日期,事务值过滤和显示帐户中的事务 客户:客户只能看到他自己的“自己”帐户的Customized Statement 经理:经理可以看到任何帐户的Customized Statement | 5 |
5 | 更改密码 | 经理 、顾客 | 客户:客户只能更改其帐户的密码。 经理:经理只能更改其帐户的密码。 他无法更改客户的密码 | 1 |
6 | 新建客户 | 经理 | 经理:经理可以添加新客户。 经理:经理可以编辑客户的地址,电子邮件,电话等详细信息。 | 3 |
7 | 新建账户 | 经理 | 目前系统提供2种类型的帐户:储蓄和Current。客户可以拥有多个储蓄账户(一个在他的名下,另一个在联名中等)。 他可以为他拥有的不同公司拥有多个Current账户。 或者他可以拥有多个Current和储蓄账户。 经理:经理可以为现有客户添加新帐户。 | 5 |
8 | 编辑账户 | 经理 | 经理:经理可以为现有帐户添加编辑帐户详细信息 | 1 |
9 | 删除帐户 | 经理 | 经理:经理可以为客户添加删除帐户。 | 1 |
10 | 删除客户 | 经理 | 只有当客户没有当前活动或保存帐户时,才能删除该客户 经理:经理可以删除客户。 | 1 |
11 | 存款 | 经理 | 经理:经理可以将钱存入任何账户。 通常在现金存入银行分行时完成。 | 3 |
12 | 取款 | 经理 | 经理:经理可以从任何账户中提取资金。 通常在银行分行取款时完成。 | 3 |
- 步骤B)估计任务的持续时间
在对功能点的复杂性进行分类后,您必须估计测试它们的持续时 。 持续时间表示完成任务需要多长时间。
假设您的项目团队估计每个功能点定义为5小时/个 。 您可以估算测试网站Guru99 Bank的所有功能的总工作量如下:
权重 | 功能点数 | 总 | |
---|---|---|---|
复杂 | 5 | 3 | 15 |
介质 | 3 | 5 | 15 |
简单 | 1 | 4 | 4 |
功能总分 | 34 | ||
估算每点的定义 | 五 | ||
总预计工作量(人工小时数) | 170 |
因此,完成Guru99 Bank“创建测试规范”任务的总工作量大约为170个工时
一旦了解了所需的工作量,就可以分配资源来确定任务需要多长时间(持续时间),然后就可以估算人工和非人工成本。
以上示例还显示了该团队成员的重要性。 如果您有才华横溢且经验丰富的成员,您可以在短时间内完成指定的任务,您的项目将在截止日期或更早完成。
- 步骤C)估算任务的成本
此步骤可帮助您回答客户的最后一个问题“ 费用是多少?”
假设你的团队平均薪水是每小时5美元。 “创建测试规范”任务所需的时间为170小时。 因此,该任务的成本是5 * 170 = 850美元。 现在,您可以计算WBS中其他活动的预算,并得出项目的总体预算。
作为项目经理,您必须决定如何为公司的投资获得最大回报 。 您对项目成本的估算越准确,您就越能够管理项目的预算。
- 方法2)三点估计
三点估计是可用于估计任务的技术之一。 三点估计的简单性使其成为想要估算的项目经理非常有用的工具。
在三点估计中,基于先前经验或最佳猜测 ,最初针对每个任务产生三个值,如下所述
在估计任务时,测试管理器需要提供三个值,如上所述。 确定的三个值,估计最佳状态下发生的情况, 最可能发生的情况 ,或者我们认为最糟糕的情况 。
让我们看看如何在以下示例中使用上述三个值
对于“ 创建测试规范 ”任务,您能估计测试工作量吗? 请记住,您必须在功能点方法中完成Guru99 Bank网站的所有模块
您可以估算如下:
完成此任务的最佳案例是120个工时(大约15天)。 在这种情况下,您拥有一支才华横溢的团队,他们可以在最短的时间内完成任务。
完成此任务的最可能的情况是170个工时(大约21天)。 这是正常情况,您有足够的资源和能力来完成任务
完成此任务的最糟糕情况是200个工时(大约25天)。 您需要执行更多工作,因为您的团队成员没有经验。
现在,将值分配给每个参数,如下所示
完成任务的工作可以使用双三角分布公式计算如下 –
在上面的公式中,参数E称为加权平均值。 它是“创建测试规范”任务的估计。
但你的老板可能会问你在上面的估计中,您只需确定可能而非某个值,我们必须知道估计正确的概率 。 您可以使用其他公式:
在上面的公式中,SD表示标准偏差,该值可以为您提供有关估计正确概率的信息。
现在,您可以结束对“创建测试规范”任务的估计
要完成Guru99银行网站的“创建测试规范”任务,您需要166.6±13.33工时(153.33到179.99工时)
- 步骤4)验证估计
为WBS中提到的所有任务创建汇总估算后,您需要将其转发给管理委员会 , 管理委员会将对其进行审核和批准 。
管理委员会的成员可以包括CEO,项目经理和其他利益相关者。
管理委员会将与您一起审核并讨论您的估算计划。 您可以合理合理地向他们解释您的估算,以便他们批准您的估算计划。
测试评估最佳实践
本主题介绍如何估计测试准确性的一般提示。
- 增加一些缓冲时间:你的项目可能会发生许多不可预知的事情,例如一个才华横溢的团队成员突然退出工作,测试需要的时间比估计完成的时间要多……等等。为什么你需要在你的估计中加入一些缓冲区。 在估计中具有缓冲器使得能够应对可能发生的任何延迟。
- 评估中的帐户资源计划:如果团队中的某些成员长时间离开,您应该怎么做? 它可能会推迟项目。估算中的资源规划起着关键作用。 资源的可用性将有助于确保估算是切合实际的。 在这里,你必须考虑你的团队成员的叶子,通常是长叶。
- 使用过去的经验作为参考:过去项目的经验在准备时间估算时起着至关重要的作用。 由于某些项目可能有些相似,因此您可以重复使用过去的估算。 例如,如果您使用诸如测试网站之类的项目,您可以从该经验中学习,尽量避免过去项目中遇到的所有困难或问题。
- 坚持你的估计:估计只是估计,因为它可能会出错 。在项目的早期阶段,你应该经常重新检查测试估计并在需要时进行修改 。 除非需求发生重大变化,否则我们不应在修复后延长估算,否则您必须与客户就重新估算进行协商
软件测试评估模板下载 https://itbooks.ctfile.com/fs/18113597-386676128
- 让我们做一个练习 – 为航班预订应用程序准备一个工作分解结构
- 各种测试任务,如:检查登录功能,检查新订单功能,检查传真功能和其他类似功能,并估算测试这些功能所需的工作量
- 例如,可以在2小时内测试登录功能。 同样准备一份所有任务和相应工作的清单。 暂停培训教程并完成练习。 我希望你对所需的努力做出了有根据的猜测
- 这是测试评估的自下而上策略。 该技术称为自下而上,因为基于工作分解层次结构最低级别的任务,您可以估计持续时间,依赖关系和资源。
- 在自下而上的战略中,估算不是由一个人,而是所有利益相关者,个人贡献者,专家和有经验的工作人员共同进行的。
- 我们的想法是利用团队成员的协作智慧来达到准确的测试估算
- 现在,因为您在航班预订系统方面拥有丰富的经验。 使用此经验来估计网站的完整功能测试所需的工作量。 – http://newtours.demoaut.com/
- 该网站在功能上与航班预订应用程序完全相同,只是它基于网络。 暂停教程并立即进行练习
- 我希望根据您的经验,您对测试网站所需的工作做出了很好的估计
- 这是基于经验的自上而下的估算方法。
- 另一种技术是根据项目的规模和复杂程度对项目进行分类,然后查看特定大小和复杂程度的项目过去需要多长时间。
- 另一种方法是确定类似项目的过去每个测试案例的平均工作量,然后使用当前项目的估计测试用例并达到总体工作量
- 更复杂的估计模型涉及复杂的数学模型。 在实践中,大多数项目使用自上而下的方法进行估算。
- 测试估计可能会受到许多因素的影响,如时间压力,人员因素,测试团队的地理分布等
钉钉或微信号: pythontesting 微信公众号:pythontesting