【问题标题】:Best methodology for evaluating a software architecture/ test software attributes like 'scalability' without specifics?评估软件架构/测试软件属性(如“可扩展性”)的最佳方法,无需具体说明?
【发布时间】:2019-05-30 01:31:58
【问题描述】:

我想在不进行详细系统测试的情况下评估软件。例如:我不想测试我的软件是否可以处理最多 20 毫秒的延迟。我想证明我的软件的性能是可扩展的(通过它的设计)。什么样的方法比较合适?

【问题讨论】:

    标签: testing architecture software-design


    【解决方案1】:

    可扩展性是关于约束理论的。找到系统的阻塞点并了解如何缓解这些阻塞点。如果不深入了解所有功能以分析这些约束,就很难理解系统的性能扩展。

    约束通常与状态有关,以及它从系统的一个部分到另一个部分的移动。这种状态越原子,越集中管理,就越有可能成为约束。对于大多数系统,这是某种数据库,但对于某些系统,它可以是其他资源,例如内存中的一块状态,或其他资源。如果它变得去中心化,并且解除了约束,则将状态转移到系统的外部部分(例如浏览器或应用程序)就变成了更多的约束。

    这通常不会回答您的问题,但它应该会告知您发现限制以及如何缓解限制的方法。设计本质上是“高性能”的想法很难证明,在这个过程中总是有一个约束某处,确保约束对于你的性能需求不会太紧是你的目标。

    【讨论】:

      【解决方案2】:

      可扩展性是当系统在各种因素方面不断变大时,软件继续以可接受的方式执行的能力。例如:

      • 数据:系统保留或处理的数据大小的增长。

      • 流量:传入/传出流量增加

      • 用户:活跃用户数量的增长以及同时连接数的增长

      • 新功能/操作:系统支持的功能/操作数量增加。虽然这个因素可能属于可扩展性,但有时可能会影响可扩展性。

      根据我的理解,您想证明该软件是可扩展的,但您并不关心证明系统能够支持的具体指标。一种方法可能是识别系统变大时可能出现的所有潜在瓶颈,记录这些瓶颈,然后记录/证明软件能够克服这些瓶颈。正如您所提到的,指标收集可能是更多工作,但执行高级负载测试并提供系统能够处理负载的可视化演示可能是其中一种方法。不确定您的具体情况,但希望对您有所帮助。

      【讨论】:

        猜你喜欢
        • 2010-10-29
        • 2013-05-12
        • 2010-09-21
        • 2020-12-16
        • 1970-01-01
        • 2011-04-13
        • 1970-01-01
        • 2013-02-05
        • 2010-09-24
        相关资源
        最近更新 更多