评估软件体系结构/测试软件属性(例如“可扩展性”)而没有具体细节的最佳方法?

时间:2019-05-16 11:09:52

标签: testing architecture software-design

我想评估软件而不进行详细的系统测试。例如:我不想测试我的软件是否可以处理最大20ms的延迟。我想证明我的软件的性能是可扩展的(通过设计)。哪种方法是合适的?

2 个答案:

答案 0 :(得分:0)

可伸缩性全都与约束理论有关。查找系统的瓶颈,并了解缓解这些瓶颈所需的时间。在没有足够深入地了解所有功能来分析这些约束的情况下,很难理解系统的性能扩展。

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

这通常不会回答您的问题,但是应该为您发现约束以及减轻约束的方法提供信息。设计本质上是“高性能”的想法很难证明,在过程中总是存在某处约束,确保该约束对于您的性能需求而言不是太紧。 / p>

答案 1 :(得分:0)

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

  • 数据:系统持续存在或处理的数据大小的增长。

  • 流量:传入/传出流量的增长有所增加

  • 用户:活动用户数的增长,因此同时进行连接

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

根据我的理解,您想证明该软件是可伸缩的,但是您并不关心证明系统能够支持的特定指标。一种方法可能是确定系统变大时可能出现的所有潜在瓶颈,记录这些瓶颈,然后记录/演示该软件将能够克服这些瓶颈。度量标准收集可能是您不需要的更多工作,但可以执行高级负载测试,并直观地演示系统能够处理负载,这可能是其中一种方法。不确定您的确切情况,希望对您有帮助。