The paper examines basic requirements for tools developed for verification of correct work of electronic trading systems by applying High Volume Automated Testing (HiVAT) methods and analyzes the applicability of such tools during production operation of trading systems.
{"title":"Special features of testing tools applicable for use in trading systems production","authors":"A. A. Averina, N. A. Antonov, I. Itkin","doi":"10.1109/TMPA.2013.16","DOIUrl":"https://doi.org/10.1109/TMPA.2013.16","url":null,"abstract":"The paper examines basic requirements for tools developed for verification of correct work of electronic trading systems by applying High Volume Automated Testing (HiVAT) methods and analyzes the applicability of such tools during production operation of trading systems.","PeriodicalId":147297,"journal":{"name":"2013 Tools & Methods of Program Analysis","volume":"25 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124287056","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
This article considers a method for an increase of static code analysis precision. The method extends classic code analysis algorithm with dependency analysis. For this purpose, during abstract interpretation information about statically known values should be extracted as well as dependencies between unknown values. Dependencies can be represented with first-order logic predicates. Such a method allows using of external logical inference tools to prove truth or falsehood of branch conditions and of error occurrence conditions. The main focus is oriented to pointer analysis logic and incorrect dereference detection rules. A prototype is implemented and results of efficiency evaluation are provided. The prototype uses Microsoft Z3 Solver as a logical inference tool. A significant precision increase is shown, ways for performance boosting are suggested.
{"title":"Detection of incorrect pointer dereferences for C/C++ programs using static code analysis and logical inference","authors":"Tatiana Vert, Tatiana Krikun, M. Glukhikh","doi":"10.1109/TMPA.2013.12","DOIUrl":"https://doi.org/10.1109/TMPA.2013.12","url":null,"abstract":"This article considers a method for an increase of static code analysis precision. The method extends classic code analysis algorithm with dependency analysis. For this purpose, during abstract interpretation information about statically known values should be extracted as well as dependencies between unknown values. Dependencies can be represented with first-order logic predicates. Such a method allows using of external logical inference tools to prove truth or falsehood of branch conditions and of error occurrence conditions. The main focus is oriented to pointer analysis logic and incorrect dereference detection rules. A prototype is implemented and results of efficiency evaluation are provided. The prototype uses Microsoft Z3 Solver as a logical inference tool. A significant precision increase is shown, ways for performance boosting are suggested.","PeriodicalId":147297,"journal":{"name":"2013 Tools & Methods of Program Analysis","volume":"202 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114388992","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
This paper describes a statistical method for test completeness verification. The method is based on analyzing programs and mathematical models of discrete devices with introduced defects. It is proposed in the paper that the method allows largely reducing the time it takes to evaluate the tests by introducing multiple defects on the one hand, and, by using the results of the analysis of tests performed against the object under test and its individual components, on the other hand. The paper provides experimental data confirming the effectiveness of the proposed approaches.
{"title":"On improving the statistical method used to access the completeness of tests for software systems and discrete devices","authors":"B. Basok, A. A. Grechin","doi":"10.1109/TMPA.2013.15","DOIUrl":"https://doi.org/10.1109/TMPA.2013.15","url":null,"abstract":"This paper describes a statistical method for test completeness verification. The method is based on analyzing programs and mathematical models of discrete devices with introduced defects. It is proposed in the paper that the method allows largely reducing the time it takes to evaluate the tests by introducing multiple defects on the one hand, and, by using the results of the analysis of tests performed against the object under test and its individual components, on the other hand. The paper provides experimental data confirming the effectiveness of the proposed approaches.","PeriodicalId":147297,"journal":{"name":"2013 Tools & Methods of Program Analysis","volume":"203 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114986220","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Correctness checking of HDL-model behavior is an integral part of runtime verification of hardware. As a rule, it is based on comparing of HDL-model behavior and reference model behavior, developed in high-level programming languages. Being verified, both models are stimulated with the same input sequence; their output traces are caught and matched. Due to the abstractness of the reference model, the matching is not a trivial task as event sequences can be different and some events of one trace may miss in the other one. A methodology of runtime trace matching for hardware models of different abstraction levels is suggested in this paper. The methodology has been successfully applied to a number of industrial projects of unit-level microprocessor verification.
{"title":"Correctness checking of HDL-model behavior based on runtime trace matching","authors":"V. Ivannikov, A. Kamkin, M. Chupilko","doi":"10.1109/TMPA.2013.11","DOIUrl":"https://doi.org/10.1109/TMPA.2013.11","url":null,"abstract":"Correctness checking of HDL-model behavior is an integral part of runtime verification of hardware. As a rule, it is based on comparing of HDL-model behavior and reference model behavior, developed in high-level programming languages. Being verified, both models are stimulated with the same input sequence; their output traces are caught and matched. Due to the abstractness of the reference model, the matching is not a trivial task as event sequences can be different and some events of one trace may miss in the other one. A methodology of runtime trace matching for hardware models of different abstraction levels is suggested in this paper. The methodology has been successfully applied to a number of industrial projects of unit-level microprocessor verification.","PeriodicalId":147297,"journal":{"name":"2013 Tools & Methods of Program Analysis","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130644148","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Data race occurs in a multi-threaded program when several threads simultaneously access the same memory location and at least one of them is a write access. Data races can damage global data structures and it's hard to detect them manually, so research in the area of automatic race detection methods has been carried out for more than 20 years. This article covers aspects of performance and precision of dynamic race detection in Java programs and proposes the idea of lowering the overheads of dynamic analysis using synchronization contracts. Synchronization contracts are mainly based on specifying pairs of methods, that being called from different threads provide synchronization between these threads. Contracts serve for exclusion of application's code parts that are not interesting from race detection perspective, for example - external libraries. In this paper we describe contracts specification language and some implementation details and discuss advantages and restrictions of our approach.
{"title":"Dynamic data race detection in Java-programs using synchronization contracts","authors":"D. Tsitelov, V. Trifanov","doi":"10.1109/TMPA.2013.8","DOIUrl":"https://doi.org/10.1109/TMPA.2013.8","url":null,"abstract":"Data race occurs in a multi-threaded program when several threads simultaneously access the same memory location and at least one of them is a write access. Data races can damage global data structures and it's hard to detect them manually, so research in the area of automatic race detection methods has been carried out for more than 20 years. This article covers aspects of performance and precision of dynamic race detection in Java programs and proposes the idea of lowering the overheads of dynamic analysis using synchronization contracts. Synchronization contracts are mainly based on specifying pairs of methods, that being called from different threads provide synchronization between these threads. Contracts serve for exclusion of application's code parts that are not interesting from race detection perspective, for example - external libraries. In this paper we describe contracts specification language and some implementation details and discuss advantages and restrictions of our approach.","PeriodicalId":147297,"journal":{"name":"2013 Tools & Methods of Program Analysis","volume":"77 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123632476","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The growing volume of orders generated by HFT (high-frequency trading) systems has posed a challenge of conducting exchange and brokerage systems testing in production-like environments. Specialized testing tools are used to ensure quality of high load trading systems with high availability. The main requirement for such tools is that they should be capable of creating realistic, high loads using limited hardware infrastructure. This article describes a load injection tool developed for testing automated trading systems and an approach that ensures high performance.
{"title":"High performance load generator for automated trading systems testing","authors":"D. Guriev, A. A. Terentyev, M. A. Gai, I. Itkin","doi":"10.1109/TMPA.2013.14","DOIUrl":"https://doi.org/10.1109/TMPA.2013.14","url":null,"abstract":"The growing volume of orders generated by HFT (high-frequency trading) systems has posed a challenge of conducting exchange and brokerage systems testing in production-like environments. Specialized testing tools are used to ensure quality of high load trading systems with high availability. The main requirement for such tools is that they should be capable of creating realistic, high loads using limited hardware infrastructure. This article describes a load injection tool developed for testing automated trading systems and an approach that ensures high performance.","PeriodicalId":147297,"journal":{"name":"2013 Tools & Methods of Program Analysis","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129947508","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
In the recent decade we face aggressive replacement of analog control loops with digital ones. Even for critical systems there are ongoing projects for digital control: “Smart Grids” in power industry, “Integrated Modular Avionics” in aerospace, “Smart Fabrics” in manufacturing, etc. Introduction of large scale digital control channels raises the risks of faults that might result in heavy losses. Those risks call for new methods of analysis and verification, including modeling hybrid systems and model-based verification. The paper overviews a number of existing approaches to verification of hybrid systems and introduces architecture of a test bed for dynamic verification of models of hybrid systems.
{"title":"Dynamic verification of hybrid systems","authors":"N. Pakulin","doi":"10.1109/TMPA.2013.13","DOIUrl":"https://doi.org/10.1109/TMPA.2013.13","url":null,"abstract":"In the recent decade we face aggressive replacement of analog control loops with digital ones. Even for critical systems there are ongoing projects for digital control: “Smart Grids” in power industry, “Integrated Modular Avionics” in aerospace, “Smart Fabrics” in manufacturing, etc. Introduction of large scale digital control channels raises the risks of faults that might result in heavy losses. Those risks call for new methods of analysis and verification, including modeling hybrid systems and model-based verification. The paper overviews a number of existing approaches to verification of hybrid systems and introduces architecture of a test bed for dynamic verification of models of hybrid systems.","PeriodicalId":147297,"journal":{"name":"2013 Tools & Methods of Program Analysis","volume":"5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123918821","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Software Quality Assurance is one of the main challenges of software engineering. One of the ways to improve software quality is automated synthesis of unit tests. This paper describes a technology of automated unit tests creation combining the “white” and “black” box approaches. This allows using information extracted from the source code of the program and using partial specifications in the form of contracts to create test oracles and distribute the test parameters across the domain of definition to ensure the test coverage of program paths. The developed approach was implemented as a tool that analyzes Java-based programs and generates test cases for class methods in JUnit format, using CoFoJa to specify the contracts. Testing of the designed tool performed on a number of test objects has proven that the approach is efficient.
{"title":"Generating unit tests using static analysis and contracts","authors":"A. Andrianova, V. Itsykson","doi":"10.1109/TMPA.2013.22","DOIUrl":"https://doi.org/10.1109/TMPA.2013.22","url":null,"abstract":"Software Quality Assurance is one of the main challenges of software engineering. One of the ways to improve software quality is automated synthesis of unit tests. This paper describes a technology of automated unit tests creation combining the “white” and “black” box approaches. This allows using information extracted from the source code of the program and using partial specifications in the form of contracts to create test oracles and distribute the test parameters across the domain of definition to ensure the test coverage of program paths. The developed approach was implemented as a tool that analyzes Java-based programs and generates test cases for class methods in JUnit format, using CoFoJa to specify the contracts. Testing of the designed tool performed on a number of test objects has proven that the approach is efficient.","PeriodicalId":147297,"journal":{"name":"2013 Tools & Methods of Program Analysis","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125321517","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
A lot of efforts were made in the last few years in the area of software-defined networks (SDN) - a special kind of computer networks in which the switching device control is fully centralized. This paper investigates the problems of formal description and verification of SDN as a real-time system. We provide a UML-based description of SDN, using the UML diagram editor Dia. To verify real-time properties of SDN, we use a well-known model-checking tool UPPAAL. The main result of the research is an approach for SDN verification, based on translation of SDN description into network of timed automata. Translation correctness is formalized and proved. A number of experiments were done to show that the approach can be used to verify real-time properties of SDN specified as TCTL formulae.
{"title":"UPPAAL-based software-defined network verification","authors":"V. Podymov, Uliana Popesko","doi":"10.1109/TMPA.2013.9","DOIUrl":"https://doi.org/10.1109/TMPA.2013.9","url":null,"abstract":"A lot of efforts were made in the last few years in the area of software-defined networks (SDN) - a special kind of computer networks in which the switching device control is fully centralized. This paper investigates the problems of formal description and verification of SDN as a real-time system. We provide a UML-based description of SDN, using the UML diagram editor Dia. To verify real-time properties of SDN, we use a well-known model-checking tool UPPAAL. The main result of the research is an approach for SDN verification, based on translation of SDN description into network of timed automata. Translation correctness is formalized and proved. A number of experiments were done to show that the approach can be used to verify real-time properties of SDN specified as TCTL formulae.","PeriodicalId":147297,"journal":{"name":"2013 Tools & Methods of Program Analysis","volume":"38 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126516928","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Ticker Plant systems are widely used in modern day trading. They allow collecting in real-time quotes from several markets, present the data in a unified format, and disseminate it electronically depending on requests and goals of external clients, traders. This paper presents a view on the possibility of using market simulators for testing such systems. A set of main functional and non-functional test scenarios required to control the quality of quote dissemination has been identified. A comparison of market simulators and real test markets has been presented.
{"title":"Usage of exchange simulators and test exchanges as tools for Ticker Plant systems testing","authors":"A. Bulda, A. V. Zverev, O. A. Buyanova","doi":"10.1109/TMPA.2013.17","DOIUrl":"https://doi.org/10.1109/TMPA.2013.17","url":null,"abstract":"Ticker Plant systems are widely used in modern day trading. They allow collecting in real-time quotes from several markets, present the data in a unified format, and disseminate it electronically depending on requests and goals of external clients, traders. This paper presents a view on the possibility of using market simulators for testing such systems. A set of main functional and non-functional test scenarios required to control the quality of quote dissemination has been identified. A comparison of market simulators and real test markets has been presented.","PeriodicalId":147297,"journal":{"name":"2013 Tools & Methods of Program Analysis","volume":"86 5","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-10-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120820740","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}