没有合适的资源?快使用搜索试试~ 我知道了~
功能点算法及在软件测试中的应用.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 142 浏览量
2022-05-07
17:21:25
上传
评论
收藏 243KB DOCX 举报
温馨提示
试读
18页
功能点算法及在软件测试中的应用.docx
资源推荐
资源详情
资源评论
功能点算法及在软件测试中的应用
——Mk II 功能点算法与 MVC 模型
从这篇文章开始,我会用连载的方式,记录淘宝测试团队对功能点算法的研究
和实践过程。
从上个世纪 70 年代开始,一些软件企业就开始引入“功能点分析算法”,来评估
软件功能的规模,然后便可以对软件开发的成本和工期,进行精确的度量,也
可以对开发团队的生产率进行考核评估。半个世纪以来,很多种不同的功能点
算法模型被建立起来,Mk II 功能点算法是其中一种比较常用的模型。
随着淘宝网站的高速发展,淘宝开发团队规模也不断增大,于是必然要面对管
理问题。人数的增多必然带来管理层级的增多,这样很容易出现管理结构的臃
肿,管理成本增高。如果我们引入一种简单而且科学的工作度量模型,让每个
人每个团队的工作质量和效率用数字来说话,便可以促进管理结构的扁平,简
化管理过程,每个管理者可以管理更多的人,并且对下属的工作了如指掌。
功能点算法就是为了解决如何度量工作效率的问题,而工作质量主要是依靠分
析各种 Bug 数据,我们在别的文章里讨论。
首先我们讲一下 MVC 模型,这是目前 WEB 开发的一种非常流行的软件架构
模式。它把 WEB 应用程序定义为 3 个部分,每个部分负责完成特定的任务:
Model 模型
View 视图
Controller 控制器
Model 主要与数据库交互,把数据表转换成对象,并且实现基本的数据读写逻
辑,比如在淘宝网,商品就是一个 Model。View 负责实现界面的设计,我们
浏览网页看到的 WEB 界面控件,比如按钮、文本框、GRID 都是在 View 中
定义的,设计 View 主要是用 Html 和 JS。用户在 View 层进行的各种操作
(比如点击按钮),就会启动 Controller 里的函数,主要的业务逻辑代码,都
写在 Controller 里了,其实也就是对各种 Model 进行增删改查,比如购买一
个商品。
关于 MVC 的更多详细说明请参考维基百科。
接下来我们介绍 MkII 功能点算法,淘宝测试选择 MkII 的主要原因是,它的
算法和 MVC 模式非常的吻合,可以说是黄金搭档。
MkII 功能点算法是这样:先要给各个功能模块划分逻辑事务,然后针对每个
逻辑事务,分析输入 DET(Data Element Type)和输出 DET 的数量,以
及关联的实体类型数量,再根据一个算法公式,计算出功能点指数:
功能点=输入 DET×0.58+实体类型×1.66+输出 DET×0.26
逻辑事务指用户在 WEB 应用程序中的原子操作。很多开发团队都会设计
UseCase,一般来说一个 UC 对应一个逻辑事务。注意:逻辑事务一定是记录
用户行为的,而不是程序内部的处理逻辑。不过在实际的分析中,我们发现逻
辑事务的个数,往往要大于 UC 的个数,这是正常的,主要因为很多 UC 包含
的信息很多。
我们用淘宝的“购买商品”来举例说明怎么划分逻辑事务,先来看购买商品的页
面:
在这个页面中,左边一块是显示商品的简要信息,这是一个逻辑事务:“查看商
品信息”,右边最上面一个收货地址的 radio button,也是一个:“展示我所有
的收货地址”,右边下面一组文本输入框加一个按钮,是一个:“为当前商品创
建一个订单”。
在 MVC 中,逻辑事务对应 Controller,每个逻辑事务都可以在 Controller
里面找到一个 public 函数。
再讲一下输入 DET 和输出 DET。比如刚才的“为当前商品创建一个订单”这个
事务,页面上输入信息的控件,都是输入 DET,比如文本框、按钮,都是输入
DET。这个事务大约有 10 个输入 DET:“收货地址”、“购买数量”、“运送方式”
等等。输出 DET 指应用程序给用户提供的所有的提示信息,以文字提示的方式
知会用户。比如“购买成功”、“您没有绑定支付宝,不能购买”、“商品库存不足,
无法购买”、“购买数量必须输入整数”等等。这个事务的输出 DET 数量大约是
20 个。
在 MVC 中,输入 DET 和输出 DET 对应 View。每个输入 DET 和输出 DET
都能在 View 中找到对应控件。
最后讲引用实体,在创建订单事务里,引用的实体有很多。订单成功后要扣减
商品库存,因此商品算 1 个;订单本身是 1 个;订单需要同步生成支付宝交易,
支付宝算 1 个;还有物流记录算 1 个,等等,大约是 5 个实体以上。
在 MVC 中,引用实体对应 Model。
到此为止这个逻辑事务的数据收集完整,代入公式计算得出结果:
10×0.58+5×1.66+20×0.26=19.3
当然这只是一个 DEMO,数字都是估算的,实际情况肯定比这个要复杂,算出
的功能点指数就会多一些。需要注意的是,使用 MkII 算法计算出的功能点指
数,只是一个数值,代表应用程序的功能规模,和我们平时听到开发说的“我修
剩余17页未读,继续阅读
资源评论
老帽爬新坡
- 粉丝: 83
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于C和C++的二维绘制工具设计源码 - DrawPro
- Object.defineProperty 的 IE 补丁object-defineproperty-ie-master.zip
- 整卷预览.mhtml
- MySQL是一种广泛使用的开源关系型数据库管理系统,它提供了丰富的SQL语句用于数据库的创建、查询、更新和管理 以下是一些常见的
- MySQL是一种广泛使用的开源关系型数据库管理系统,它提供了丰富的SQL语句用于数据库的创建、查询、更新和管理 以下是一些常见
- MySQL是一种广泛使用的开源关系型数据库管理系统,它提供了丰富的SQL语句用于数据库的创建、查询、更新和管理 以下是一些常见的
- 基于Javascript的结婚请帖设计源码 - Invitation
- mysql语句大全及用法
- mysql语句大全及用法
- mysql语句大全及用法
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功