英雄联盟外围下注

登录 | 注册 | English

资讯中心

英雄联盟外围下注  >  资讯中心  >  产品动态

App测试 的投资回报率(一)

        由于涉及到 的参数众多并且参数属性不同,投资回报率 的计算通常比较复杂。这些影响因素有 的相对来说容易识别,有 的则是比较难以获取和计量。在这本白皮书里,大家识别和讨论了9个影响与静态分析相关 的投资回报率 的关键因素。同时大家也设计了基于来自实际开源项目分析代码 的案例来帮助大家论证和量化对投资回报率 的潜在影响。

        准确计算投资回报率是一项非常复杂 的工作,他要求大家考虑多方面 的影响因素,比如预估收益来源、确定回报周期、量化资本成本、评估预测精度、分析潜在风险等等。在这诸多影响因素当中,成本和收益无疑是投资回报率 的核心问题。

        接下来 的几天里,大家将逐一分析App开发生命周期(SDLC) 的9个关键行为与投资回报率 的关系。这9个关键行为对App开发 的成本及收益起着决定性 的作用。

1. 缺陷生命周期管理

        缺陷何时被引入?缺陷何时被消除?这两个问题对投资回报率有着显著 的影响。对大量App开发项目进行研究后,学者发现缺陷 的引入存在着一个普遍 的规律:

App开发阶段

引入缺陷数量

撰写需求文档

50% - 60%

App详细设计

15% - 30%

App开发

10% - 20%

其他 (e.g. bad fixes)

< 20%

 
        此外,学者发现消除缺陷 的时机与消除缺陷 的成本呈指数关系:随着App开发流程 的推进,消除缺陷 的成本迅速攀升。下表展示了在App开发 的不同阶段消除缺陷所耗费 的成本。

App开发阶段

消除缺陷 的成本

Requirements

1x

Design

3-6x

Coding

10x

Development

15-40x

Acceptance

30-70x

Operations

40-1000x

        为了降低缺陷对App开发 的影响,人们孜孜不倦地寻找防止缺陷引入,以及尽早消除缺陷 的方法。

2、测试

        若某个缺陷一直没有被发现,人们往往下意识地将其归咎于测试环节。长期以来,业界对测试保持着神化般 的宣传,这如同一个硬币 的两面。一方面,这使人们充分意识到测试 的重要性;但另一方面,这使很多人陷入了“测试万能” 的误区。事实上,测试绝非万能。

        测试与功能需求强相关。当一个App系统只满足功能性需求,而不考虑非功能性需求,那么这个App系统必然是不可靠 的。

        没有100%测试覆盖率。生成实行所有语句、分支、条件及边缘情况 的测试用例是不切实际 的,大量 的测试用例将导致项目 的收益锐减。若代码中存在不可行路径、死代码或防御性编程,100%测试覆盖率更是近乎天方夜谭。

        与此相对应 的是,静态分析可以实现代码分析 的全覆盖,数据流分析技术更是提供了一个行之有效 的途径,帮助开发者识别出代码中潜在 的不同等级 的问题,如冗余操作、空指针取值、溢出等等。

        测试成本很高。测试人员检测出App中 的缺陷后,要求开发人员返工消除这些缺陷。一般来说,一个缺陷需要经过多次测试、多次返工才能被彻底消除。同时随着App开发进度 的不断推进,很多缺陷直到App生命周期 的后期才被发现,这将导致消除缺陷 的成本急剧攀升。事实上,大量 的返工,往往是整个开发项目中成本相当大 的一块。

        测试导致App交付延迟。测试阶段检测出来 的缺陷,需要返工到开发阶段进行修改、重整合及重新测试。大多数时候,返工将影响项目 的交付时间,导致计划下周交付 的项目,突然间推迟到下个月,甚至更久。

        在实际项目当中,一次返工往往无法消除缺陷。一次次 的测试、修改、再测试、再修改,导致项目交付一而再再而三地延期。很多时候,初次返工并没有解决问题,而返工过程中又引入了新 的缺陷。

        测试时代码 的结构质量很重要。代码越复杂,测试越困难,复杂度 的线性增长将导致测试难度呈指数级增长。在设计/编程阶段对代码复杂度有意识地进行控制尤为重要。

        测试人员更加关注代码 的功能性,他们不希翼被代码 的结构性问题分散精力,更不希翼代码中 的功能缺陷被结构性问题所掩盖。

        测试需要经验。测试工作对非常依赖于测试工程师 的自身经验。即使采用自动化测试工具,测试工作仍是一项十分细致 的工作。

        把代码静态分析从测试阶段提前到编程阶段。毫无疑问,代码 的开发人员需要对App 的质量负主要责任。

        使测试更有效。大家必须把握好功能性测试和结构性性测试之间 的平衡,以保证代码性能稳定,高内聚、结构良好。

        这里举个反面例子:开发人员对遗产代码进行一次次 的修改,导致代码异常混乱,难以理解,代码功能和结构很容易被破坏,进而产生不可预料 的后果,这导致开发人员在后续过程中花费更多时间去维护,进而陷入恶性循环。

 

 

关于英雄联盟外围下注
企业概况
企业理念
企业资质
资讯中心
英雄联盟外围下注在全球
诚聘英才
校园招聘
实习生招聘
社会招聘
走进英雄联盟外围下注
常见问题
市场活动
在线研讨会
线下活动
微信课堂
用户社区
资料下载
英雄联盟外围下注月刊
用户留言
个人中心
PMT留言
相关链接
达索企业
IBM-中国
联系大家
电话:010-64840808
邮箱:market_dept@hirain.com
版权所有 ? 英雄联盟外围下注|2020电竞下注平台 京ICP备18000642号-1 京公网安备11010802017344号 网站地图 | 招聘信息 | 法律声明 | 隐私保护
XML 地图 | Sitemap 地图