[SCM] 关于BUG以及BUG的跟踪管理

平时的积累,有来自论坛的,有来自书本的,也有自己胡诌的:)

1. 2004-2-20 BUG的定义
    Bug不仅仅是代码级别的错误,而且可以是在设计和测试阶段发现的缺陷。无论什么时候,任何有助于改善产品质量的提议、任何需要引起注意、值得跟踪的问题、任何可能潜在的错误,都可以而且应该作为一个Bug。
    所以说,在软件开发流程中,对Bug的管理是至关重要的。科学的做法是由工具来记录、跟踪、管理Bug的后继变化和处理方案。

    1) 及时的分派和修复bug
        仅有bug的录入是不够的,pm或dev lead应*及时*根据bug的description和stack trace,把bug分派给corresponding developer去fix,同时规定一个fix by when的期限。
    2) 详细的bug description
        在这一点上,也对tester们提出了一定的要求。在测试过程中,光发现软件本身的问题还不够,当错误(有时可能是memory crash, a/v, assert,等),应把call stack也记录下来并写入“bug跟踪系统”。有些bug很难repro,但一个详细的bug description可为bug的fix带来帮助。

2. 2004-2-20 BUG的处理
    从管理这个层次上讲,一旦BUG被发现后,最困难的并不是如何去记录,分派人员去解决,并予以追踪。最困难的是决定对某些BUG推迟解决,甚至不予解决。这样的BUG往往是在产品开发的中后期发现的,而且是由于最初架构设计的缺陷所造成的,解决这样的BUG需要大量的人力和时间,影响面大,可能会引入新的BUG。对于这样的BUG,PM要与客户端的其他部门和人员联系,比如市场部门,技术支持部门,甚至于早期介入的客户。如果从他们的反馈中,确认这种BUG对决大多数客户和决大多数的使用(scenarios)没有影响,就要果断决定推迟,或不予解决。

    对于这些已决定推迟,或不予解决的BUG,还有一些后续工作非常重要。首先要祥细的记录,以便在下一个版本中解决;其次要让有关技术支持人员深刻理解,准备应对方案。


3. 2004-2-20 微软的经验
    在微软,当编码人员在实现某个功能遇到困难的时候,一般地说会经历以下的程序:
        (1)编码人员自己想方设法去解决,包括向有关同事咨询。
        (2)编码人员向本部门的技术带头人请教。
        (3)编码人员在项目的例会上提出讨论。
        (4)由项目经理组织专家及相关其他部门人员汇诊。
        (5)由项目经理听取市场部门和顾客的意见。

    一般地说经过(4)和(5)了以后,问题就比较复杂了,不是简单的措施能解决得了。这时有两种可能,一是要实现的功能对顾客影响不大,在这种情况下多半会取消这个功能(应该说把它留给下一个版本)。这样决定的目的是为了让项目按计划进行,让产品尽快投放市场。市场如战场,尽快的占领并获得应有的利润比技术完美更重要。另一个可能是要实现的功能对顾客影响很大,没有这个功能产品将失去很大的市场。在这种情况下多半会调整项目计划,集中人力物力攻克这个难关,在问题没解决的情况下项目的其他部分可能暂缓进行。这样决定的目的是确保不会生产出一个没有市场竞争力的产品。

    这两种决定的准确性都是建立在对市场的充分把握和对顾客的充分认识的基础上的。这是中国的软件企业的又一弱点。在中国有多少软件企业像重视项目开发一样重视市场和销售,像重视技一样重视顾客,售后服务和技术支持?


4. 2004-2-20 BUG关联
    微创的BMS系统定义了bug之间的关联,有5种:
        依赖关联、重复关联、相关关联、文件关联、附件

    依赖关联:一个Bug的解决依赖于其他的Bug,例如,程序员B的Bug只有等到程序员A的Bug解决后才能解决,一个版本中的某个Bug依赖前一个版本中的Bug,甚至一个产品的Bug依赖于其他产品的Bug。依赖关联的处理确实比较复杂,不过就我个人经验而言一般使用的比例比较小。如果Bug间存在依赖关系,那么处于被依赖(或者父依赖)的Bug应尽快加以解决。

    重复关联:如果其中一个缺陷实际上是另一个缺陷的重复缺陷,就需要在这两个缺陷间建立起重复关联。我们要求测试人员尽量不要File重复的Bug,如果一旦File了重复的Bug,则在这组重复的Bug间建立“重复关联”,一旦主缺陷解决了,所有的其它重复缺陷(从缺陷)也就都得到了真正的解决。

    相关关联:相对于依赖关联和重复关联,相关关联的概念要简单很多。同一个数据库中,当一个缺陷与其它缺陷存在一定的关系,但却并非依赖关系或重复关系时,就可以为它们建立相关关联。相关关联着的各个缺陷之间,不存在任何的依赖关系,这意味着可以独立地处理各个缺陷。

    重复关联和附件:前者是因为各个test很有可能会登记了重复的bug,后者是因为有时候文字描写不清楚,直接上传一张图片效果可以好很多。当然了,给个文件的链接也是好的。


    有些功能更加强大的Bug管理工具甚至将Bug和相应的Test Case关联起来,将Bug与源代码管理中的Change Number (或者文件号)关联起来。当然,一个Bug管理工具最基本的操作就是New, Resolve, Close, Assign以及Query查询。能把这些最基本的操作做好,软件产品的质量已经会有很大的提升了。


5. 2004-2-20 BUG管理工具
    Rational ClearQuest不错,流程、操作、Bug信息等等都可以自定义,可以制定不同的查询、图表等,且可以根据预先定义的E-mail Rules 自动发出E-mail。最好的就是她自己带有一个教程(英文版的,但极容易理解)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
SCM (Spatial Channel Model) 是一种用于模拟无线通信信道的模型,主要用于研究和仿真无线通信系统的性能。SCM模型考虑了多路径传播、多普勒效应以及信道衰落等现象,可以帮助我们更好地理解和分析无线通信系统在不同环境下的性能。 SCM模型通常包含了以下几个主要组成部分: 1. 接收信号强度(RxPower):根据设备之间的距离和信号的传播损耗,计算接收信号的功率。可以使用路径损耗模型进行计算。 2. 多路径传播:引入多径传播的影响,考虑直射路径以及不同散射路径和反射路径对接收信号的影响。 3. 多普勒频移:考虑发送和接收设备的相对运动,导致信号频率的变化。这个变化称为多普勒频移,会影响信号的传输质量。 4. 多径功率谱密度:用于描述多路径传播中不同路径的功率分布情况。多径功率谱密度对于信道特性的建模非常重要。 5. 信道衰落模型:通过引入衰落因子和时间变化特性,来描述信号在传播过程中的衰落情况。衰落模型可以是静态的或动态的,根据实际情况来选择。 代码方面,SCM模型通常需要使用数值计算软件或者编程语言来实现。你可以使用Python、MATLAB或者C++等编程语言来编写相关代码。 以MATLAB为例,可以使用MATLAB的信号处理工具箱和通信工具箱来实现SCM模型。具体代码可能涉及到路径损耗模型的计算、多径传播的模拟、多普勒频移的计算以及信道衰落模型的实现。 总之,SCM信道模型是一种用于模拟无线通信信道的模型,可以帮助我们更好地理解和分析无线通信系统的性能。相关的代码可以使用不同的编程语言来实现,根据具体需求进行编写。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值