软件开发中的性能测试:让开发人员参与

L. Bulej
{"title":"软件开发中的性能测试:让开发人员参与","authors":"L. Bulej","doi":"10.1145/2859889.2880448","DOIUrl":null,"url":null,"abstract":"Society is increasingly dependent on software-intensive systems that are required to interact with a huge number of users and respond in timely manner. Failing that often results in users and consumers not being able to access the advertised services or products, or worse, citizens unable to access vital services provided by the state. In such systems, failures are more likely to be caused by performance issues than by faulty implementation of some features [3, 1]. Modern development processes for general-purpose software systems typically focus on managing complexity to deliver correctly functioning software on time, and best software development practices frown upon premature optimization. With other aspects of software design and construction put above performance concerns, performance becomes a secondary concern that only needs to be addressed if the system’s performance turns out to be unsatisfactory. This contrasts with real-time systems, where meeting realtime performance requirements is essential, and performance is a primary design concern that permeates the development process and the resulting system as a whole. Consequently, the overall performance of the system is a concern that cannot be addressed locally—it must be designed into the system, and strictly controlled throughout its construction. Simply adopting the process of real-time system development for the development of general-purpose systems is not possible. The size, complexity, and the depth of the software stack used to build general-purpose software-intensive systems typically dwarfs that of the special-purpose missionor safety-critical real-time systems. The level of control that can be exerted over individual elements of real-time systems either does not scale, or is not possible at all, in addition to performance requirements being usually much less precise, and not easily expressed in terms of latencies or deadlines. The productivity of developers during development is also an important aspect. Where real-time systems limit development flexibility to maintain control over performance (by avoiding many features of modern runtime platforms unless their performance impact can be sufficiently controlled),","PeriodicalId":265808,"journal":{"name":"Companion Publication for ACM/SPEC on International Conference on Performance Engineering","volume":"36 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2016-03-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"Performance Testing in Software Development: Getting the Developers on Board\",\"authors\":\"L. Bulej\",\"doi\":\"10.1145/2859889.2880448\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Society is increasingly dependent on software-intensive systems that are required to interact with a huge number of users and respond in timely manner. Failing that often results in users and consumers not being able to access the advertised services or products, or worse, citizens unable to access vital services provided by the state. In such systems, failures are more likely to be caused by performance issues than by faulty implementation of some features [3, 1]. Modern development processes for general-purpose software systems typically focus on managing complexity to deliver correctly functioning software on time, and best software development practices frown upon premature optimization. With other aspects of software design and construction put above performance concerns, performance becomes a secondary concern that only needs to be addressed if the system’s performance turns out to be unsatisfactory. This contrasts with real-time systems, where meeting realtime performance requirements is essential, and performance is a primary design concern that permeates the development process and the resulting system as a whole. Consequently, the overall performance of the system is a concern that cannot be addressed locally—it must be designed into the system, and strictly controlled throughout its construction. Simply adopting the process of real-time system development for the development of general-purpose systems is not possible. The size, complexity, and the depth of the software stack used to build general-purpose software-intensive systems typically dwarfs that of the special-purpose missionor safety-critical real-time systems. The level of control that can be exerted over individual elements of real-time systems either does not scale, or is not possible at all, in addition to performance requirements being usually much less precise, and not easily expressed in terms of latencies or deadlines. The productivity of developers during development is also an important aspect. Where real-time systems limit development flexibility to maintain control over performance (by avoiding many features of modern runtime platforms unless their performance impact can be sufficiently controlled),\",\"PeriodicalId\":265808,\"journal\":{\"name\":\"Companion Publication for ACM/SPEC on International Conference on Performance Engineering\",\"volume\":\"36 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2016-03-12\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Companion Publication for ACM/SPEC on International Conference on Performance Engineering\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/2859889.2880448\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Companion Publication for ACM/SPEC on International Conference on Performance Engineering","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2859889.2880448","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1

摘要

社会越来越依赖软件密集型系统,这些系统需要与大量用户进行交互并及时响应。如果做不到这一点,往往会导致用户和消费者无法获得广告宣传的服务或产品,或者更糟的是,公民无法获得国家提供的重要服务。在这样的系统中,故障更可能是由性能问题引起的,而不是由某些功能的错误实现引起的[3,1]。通用软件系统的现代开发过程通常关注于管理复杂性,以按时交付功能正确的软件,而最佳软件开发实践不赞成过早的优化。随着软件设计和构建的其他方面被置于性能关注之上,性能成为次要的关注,只有当系统的性能令人不满意时才需要解决。这与实时系统形成了对比,在实时系统中,满足实时性能需求是必不可少的,并且性能是贯穿开发过程和最终系统的主要设计关注点。因此,系统的整体性能是一个不能局部解决的问题——它必须被设计到系统中,并在整个构建过程中严格控制。简单地采用实时系统开发的过程来开发通用系统是不可能的。用于构建通用软件密集型系统的软件堆栈的大小、复杂性和深度通常使专用任务或安全关键型实时系统相形见绌。可以对实时系统的各个元素施加的控制级别要么不可伸缩,要么根本不可能,此外,性能需求通常不太精确,而且不容易用延迟或截止日期来表示。开发人员在开发过程中的生产力也是一个重要方面。实时系统限制了开发灵活性以保持对性能的控制(通过避免现代运行时平台的许多特性,除非它们的性能影响能够得到充分控制),
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Performance Testing in Software Development: Getting the Developers on Board
Society is increasingly dependent on software-intensive systems that are required to interact with a huge number of users and respond in timely manner. Failing that often results in users and consumers not being able to access the advertised services or products, or worse, citizens unable to access vital services provided by the state. In such systems, failures are more likely to be caused by performance issues than by faulty implementation of some features [3, 1]. Modern development processes for general-purpose software systems typically focus on managing complexity to deliver correctly functioning software on time, and best software development practices frown upon premature optimization. With other aspects of software design and construction put above performance concerns, performance becomes a secondary concern that only needs to be addressed if the system’s performance turns out to be unsatisfactory. This contrasts with real-time systems, where meeting realtime performance requirements is essential, and performance is a primary design concern that permeates the development process and the resulting system as a whole. Consequently, the overall performance of the system is a concern that cannot be addressed locally—it must be designed into the system, and strictly controlled throughout its construction. Simply adopting the process of real-time system development for the development of general-purpose systems is not possible. The size, complexity, and the depth of the software stack used to build general-purpose software-intensive systems typically dwarfs that of the special-purpose missionor safety-critical real-time systems. The level of control that can be exerted over individual elements of real-time systems either does not scale, or is not possible at all, in addition to performance requirements being usually much less precise, and not easily expressed in terms of latencies or deadlines. The productivity of developers during development is also an important aspect. Where real-time systems limit development flexibility to maintain control over performance (by avoiding many features of modern runtime platforms unless their performance impact can be sufficiently controlled),
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信