软件测试估算技术
什么是软件测试估算?
测试估算是管理活动,它估算任务完成所需时间。估算测试工作量是测试管理中主要且重要的任务之一。
为什么需要测试估算?
与客户讨论潜在测试合作时,您可能会被问到两个问题:
对于小型项目,这些问题相对容易回答。但对于像测试 Guru99 银行网站这样的大型项目,您必须认真思考才能回答这些问题。
估算什么?
- 资源:执行任何项目任务都需要资源。它们可以是人员、设备、设施、资金,或任何其他完成项目活动所需的、可定义的任何事物。
- 时间:时间是项目中最宝贵的资源。每个项目都有交付的截止日期。
- 人员技能:人员技能指团队成员的知识和经验。它们影响您的估算。例如,一个测试技能较低的团队,完成项目所需的时间将比测试技能较高的团队更多。
- 成本:成本是项目预算。通常来说,它指完成项目所需的资金数量。
如何估算?
软件测试估算技术列表
- 工作分解结构
- 三点软件测试估算技术
- 宽带德尔菲技术
- 功能点/测试点分析
- 用例点方法
- 百分比分布
- 即席方法
以下是获得估算的四步过程:
您将学习如何结合这些技术来估算 Guru99 银行案例研究。
第1步)将整个项目任务分解为子任务
任务是分配给某人的一项工作。为此,您可以使用工作分解结构技术。
在这种技术中,一个复杂的项目被分解为模块。模块被分解为子模块。每个子模块又进一步分解为功能。这意味着将整个项目任务分解为最小的任务。
使用工作分解结构将 Guru99 银行项目分解为 5 个较小的任务——
之后,您可以将每个任务分解为子任务。此活动的目的是创建尽可能详细的任务。
任务 | 子任务 |
---|---|
分析软件需求规范 | 调查软件需求规格 |
与开发人员及其他利益相关者访谈以了解更多关于网站的信息 | |
创建测试规范 | 设计测试场景 |
创建测试用例 | |
审查和修改测试用例 | |
执行测试用例 | 搭建测试环境 |
执行测试用例 | |
审查测试执行结果 | |
报告缺陷 | |
创建缺陷报告 | |
报告缺陷 |
第 2 步)将每个任务分配给团队成员
在此步骤中,每个任务都分配给项目团队中适当的成员。您可以按如下方式分配任务:
任务 | 成员 |
---|---|
分析软件需求规范 | 所有成员 |
创建测试规范 | 测试员/测试分析师 |
搭建测试环境 | 测试管理员 |
执行测试用例 | 测试员、测试管理员 |
报告缺陷 | 测试员 |
第 3 步)任务工作量估算
有两种技术可以用于估算任务的工作量:
- 功能点方法
- 三点估算
方法一)功能点方法
在这种方法中,测试经理估算任务的大小、持续时间和成本。
步骤 A) 估算任务的大小
在第1步中,您已经使用WBS方法将整个项目任务分解为小任务。现在您要估算这些任务的大小。让我们以“创建测试规范”这个特定任务为例进行练习。
此任务的大小取决于被测系统的功能大小。功能大小反映了与用户相关的功能数量。功能数量越多,系统就越复杂。
在开始实际估算任务工作量之前,功能点分为复杂、中等、简单三组,如下所示:
根据软件功能的复杂程度,测试经理必须给每个功能点足够的权重。例如:
分组 | 权重 |
---|---|
复杂 | 5 |
中等 | 3 |
简单 | 1 |
让我们看一个简单的例子练习来更清楚地理解
请查看这里的Guru99银行网站软件规格,软件工程师已经详细描述了软件模块,您能通过给每个模块赋予权重来确定网站功能的复杂性吗?
功能点越复杂,测试它所需的工作量就越大。该网站分为12个功能点,您可以按如下方式确定每个功能点的复杂性:
编号 | 模块名称 | 余额查询 | 描述 | 权重 |
---|---|---|---|---|
1. | 经理 | 客户
客户:客户可以拥有多个银行账户。他只能查看自己账户的余额。 |
客户:客户可以拥有多个银行账户。他只能查看自己账户的余额。
经理:经理可以查看其管辖下所有客户的余额。 |
3 |
2. | 资金转账 | 客户
客户:客户可以拥有多个银行账户。他只能查看自己账户的余额。 |
客户:客户可以将资金从自己的账户转账到任何目标账户。
经理:经理可以将资金从任何来源银行账户转账到目标账户。 |
5 |
3. | 迷你对账单 | 客户
客户:客户可以拥有多个银行账户。他只能查看自己账户的余额。 |
迷你对账单将显示账户的最后5笔交易
客户:客户只能查看自己账户的迷你对账单 经理:经理可以查看任何账户的迷你对账单 |
3 |
4. | 定制对账单 | 客户
客户:客户可以拥有多个银行账户。他只能查看自己账户的余额。 |
定制对账单允许您根据日期、交易价值筛选和显示账户中的交易
客户:客户只能查看自己账户的定制对账单 经理:经理可以查看任何账户的定制对账单 |
5 |
5. | 修改密码 | 客户
客户:客户可以拥有多个银行账户。他只能查看自己账户的余额。 |
客户:客户只能更改自己账户的密码。
经理:经理只能更改自己账户的密码。他不能更改客户的密码。 |
1 |
6. | 新客户 | 客户 | 经理:经理可以添加新客户。
经理:经理可以编辑客户的地址、电子邮件、电话等详细信息。 |
3 |
7. | 新账户 | 客户 | 目前系统提供两种类型的账户
客户可以拥有多个储蓄账户(一个以其名义,另一个以联名等)。 他可以为其拥有的不同公司拥有多个活期账户。 或者他可以拥有多个活期和储蓄账户。 经理:经理可以为现有客户添加新账户。 |
5 |
8. | 编辑账户 | 客户 | 经理:经理可以为现有账户添加编辑账户详细信息 | 1 |
9. | 删除账户 | 客户 | 经理:经理可以为客户添加或删除账户。 | 1 |
10. | 删除客户 | 客户 | 只有当客户没有活跃的活期或储蓄账户时才能删除该客户。
经理:经理可以删除客户。 |
1 |
11. | 存款 | 客户 | 经理:经理可以将钱存入任何账户。通常在银行分行存入现金时进行。 | 3 |
12. | 提款 | 客户 | 经理:经理可以从任何账户取款。通常在银行分行取出现金时进行。 | 3 |
步骤 B) 估算任务的持续时间
在对功能点的复杂性进行分类之后,您需要估算测试它们的持续时间。持续时间指的是完成任务需要多长时间。
- 总工作量:完全测试网站所有功能所需的工作量
- 总功能点:网站的总模块数
- 每个功能点的估算值:完成一个功能点所需的平均工作量。该值取决于负责此任务的成员的生产力。
假设您的项目团队估算的每个功能点是5小时/点。您可以按如下方式估算测试Guru99银行网站所有功能的总工作量:
权重 | 功能点数量 | 总计 | |
---|---|---|---|
复杂 | 5 | 3 | 15 |
中等 | 3 | 5 | 15 |
简单 | 1 | 4 | 4 |
功能点总计 | 34 | ||
每个点的估算值 | 5 | ||
总估算工作量(人时) | 170 |
因此,完成 Guru99 银行“创建测试规范”任务的总工作量约为 170 人时。
一旦您了解所需的工作量,就可以分配资源来确定任务需要多长时间(持续时间),然后您可以估算人工和非人工成本。
上面的例子也说明了团队成员的重要性。如果您拥有才华横溢且经验丰富的成员,您可以在短时间内完成分配的任务,您的项目将按时或提前完成。
步骤 C) 估算任务成本
此步骤帮助您回答客户的最后一个问题:“费用是多少?”
假设您的团队平均工资为每小时 5 美元。“创建测试规范”任务所需时间为 170 小时。因此,该任务的成本为 5*170 = 850 美元。现在您可以计算 WBS 中其他活动的预算,并得出项目的总预算。
作为项目经理,您必须决定如何为公司的投资获得最大回报。您对项目成本的估算越准确,您就越能更好地管理项目的预算。
方法2)三点估算
三点估算是一种可用于估算任务的技术。三点估算的简单性使其成为项目经理估算工作的非常有用工具。
在三点估算中,最初为每个任务根据以往经验或最佳猜测生成三个值,如下所示:
在估算任务时,测试经理需要提供如上所述的三个值。这三个值分别估算了最佳状态、最可能状态和我们认为的最坏情况。
让我们看下面的例子,了解如何使用上述三个值
对于“创建测试规范”任务,您能估算测试工作量吗?请记住,您必须覆盖Guru99银行网站的所有模块,就像功能点方法中那样。
您可以按如下方式估算:
- 完成这项任务的最佳情况是120人时(大约15天)。在这种情况下,您有一个才华横溢的团队,他们可以在最短的时间内完成任务。
- 完成此任务的最可能情况是170人时(约21天)。这是一种正常情况,您有足够的资源和能力来完成任务。
- 完成这项任务的最坏情况是200人时(大约25天)。由于您的团队成员缺乏经验,您需要做更多的工作。
现在,将值分配给每个参数,如下所示:
完成任务的工作量可以使用双三角分布公式计算,如下所示:
在上述公式中,参数E被称为加权平均值。它是“创建测试规范”任务的估算值。
但您的老板可能会问您
在上述估算中,您只是确定了一个可能的值,而不是一个确定的值,我们必须了解估算正确的概率。您可以使用另一个公式:
在上面的公式中,SD表示标准差,该值可以为您提供有关估算正确概率的信息。
现在您可以得出“创建测试规范”任务的估算值:
完成 Guru99 银行网站“创建测试规范”任务需要 166.6 ± 13.33 人时(153.33 到 179.99 人时)
第 4 步)验证估算
一旦您为WBS中提及的所有任务创建了总估算,您需要将其转发给管理委员会,由他们审查并批准。
管理委员会的成员可能包括首席执行官、项目经理及其他利益相关者。
管理委员会将与您审查和讨论您的估算计划。您需要合乎逻辑且合理地向他们解释您的估算,以便他们批准您的估算计划。
测试估算最佳实践
本主题介绍了一些关于如何估算测试准确性的通用技巧。
增加一些缓冲时间
您的项目可能会发生许多不可预测的事情,例如一名有才华的团队成员突然辞职,测试花费的时间超出预期等等。这就是为什么您需要在估算中包含一些缓冲。在估算中留有缓冲可以应对可能发生的任何延误。
估算中的资源规划
如果您的团队中有些成员请长假,您该怎么办?这可能会延误项目。估算中的资源规划起着关键作用。资源的可用性将有助于确保估算的现实性。在这里,您必须考虑团队成员的假期,通常是长假。
以过去的经验作为参考
过去项目的经验在准备时间估算时起着至关重要的作用。因为有些项目可能具有相似性,您可以重用过去的估算。例如,如果您曾做过测试网站之类的项目,您可以从该经验中学习,努力避免过去项目中遇到的所有困难或问题。
坚持您的估算
估算只是估算,因为它可能会出错。在项目早期阶段,您应该经常重新检查测试估算并进行修改(如果需要)。一旦我们确定了估算,除非需求发生重大变化,否则不应延长估算,否则您必须与客户协商重新估算。
软件测试估算模板
其他技术
宽带德尔菲技术、用例点方法、百分比分布、即席方法是软件工程中的其他估算技术。
软件测试估算技术视频
视频文字记录
- 让我们做一个练习——针对航班预订应用程序,准备一份工作分解结构,包括
- 各种测试任务,例如——检查登录功能、检查新订单功能、检查传真功能以及其他类似功能,并估算测试这些功能所需的工作量
- 例如,登录功能可以在 2 小时内测试完成。同样,准备所有任务及其相应工作量的列表。暂停培训教程并完成练习。我希望您对所需工作量做出了有根据的猜测。
- 这是测试估算的自下而上策略。之所以称为自下而上,是因为您根据工作分解结构最低层级的任务来估算持续时间、依赖关系和资源。
- 在自下而上策略中,估算不是由一个人完成的,而是由所有利益相关者、个人贡献者、专家和经验丰富的员工集体完成的。其理念是利用团队成员的协作智慧来得出准确的测试估算。
- 现在,既然您对航班预订系统有相当丰富的经验。请利用这些经验估算对网站进行完整功能测试所需的工作量。——http://newtours.demoaut.com/
- 此网站的功能与航班预订应用程序的功能相同,只是它是基于网络的。现在暂停教程并进行练习。
- 我希望您根据自己的经验对测试网站所需的工作量做出了很好的估算
- 这是基于经验的自上而下估算方法。
- 另一种技术是根据项目的规模和复杂性进行分类,然后查看过去具有特定规模和复杂性的项目所花费的时间。
- 另一种方法是确定过去类似项目的每个测试用例的平均工作量,然后使用当前项目的估算测试用例来得出总工作量。
- 更复杂的估算模型涉及复杂的数学模型。在实践中,大多数项目都使用自上而下的估算方法。
- 测试估算可能会受到许多因素的影响,例如时间压力、人员因素、测试团队的地理分布等等。