Testing-Based Formal Verification (TBFV) is a rigorous and potentially automated approach to verifying the correctness of traversed program paths based on specification-based testing and Hoare logic, but its capability is limited due to the fact that Hoare logic may not be applicable. To address this challenge, we propose to use symbolic execution to replace Hoare logic in the existing TBFV, thus enhance the capability of TBFV. We call the newly proposed approach TBFV-SE (TBFV - Symbolic Execution). The advantage of TBFV-SE over the existing TBFV lies in its applicability to wide range of programs while preserving its characteristic of full automation. We descirbe the principle of TBFV-SE and present two case studies to demonstrate its feability and usability. We also discuss the condition under which TBFV-SE can be effectively used and potential challenges in building a tool support.
基于测试的形式化验证(TBFV)是一种严格的、潜在的自动化方法,用于验证基于规范的测试和Hoare逻辑的遍历程序路径的正确性,但是由于Hoare逻辑可能不适用,它的能力受到限制。为了解决这一挑战,我们提出使用符号执行来取代现有TBFV中的Hoare逻辑,从而增强TBFV的能力。我们将新提出的方法称为TBFV- se (TBFV -符号执行)。与现有的TBFV相比,TBFV- se的优势在于在保留其全自动化特性的同时,适用于广泛的程序。我们描述了TBFV-SE的原理,并给出了两个案例研究来证明其可行性和可用性。我们还讨论了有效使用TBFV-SE的条件以及构建工具支持的潜在挑战。
{"title":"TBFV-SE: Testing-Based Formal Verification with Symbolic Execution","authors":"Rong-Fa Wang, Shaoying Liu","doi":"10.1109/QRS.2018.00019","DOIUrl":"https://doi.org/10.1109/QRS.2018.00019","url":null,"abstract":"Testing-Based Formal Verification (TBFV) is a rigorous and potentially automated approach to verifying the correctness of traversed program paths based on specification-based testing and Hoare logic, but its capability is limited due to the fact that Hoare logic may not be applicable. To address this challenge, we propose to use symbolic execution to replace Hoare logic in the existing TBFV, thus enhance the capability of TBFV. We call the newly proposed approach TBFV-SE (TBFV - Symbolic Execution). The advantage of TBFV-SE over the existing TBFV lies in its applicability to wide range of programs while preserving its characteristic of full automation. We descirbe the principle of TBFV-SE and present two case studies to demonstrate its feability and usability. We also discuss the condition under which TBFV-SE can be effectively used and potential challenges in building a tool support.","PeriodicalId":114973,"journal":{"name":"2018 IEEE International Conference on Software Quality, Reliability and Security (QRS)","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126109742","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}
Context: Poor usability of cryptographic APIs is a severe source of vulnerabilities. Aim: We wanted to find out what kind of cryptographic libraries are present in Rust and how usable they are. Method: We explored Rust's cryptographic libraries through a systematic search, conducted an exploratory study on the major libraries and a controlled experiment on two of these libraries with 28 student participants. Results: Only half of the major libraries explicitly focus on usability and misuse resistance, which is reflected in their current APIs. We found that participants were more successful using rust-crypto which we considered less usable than ring before the experiment. Conclusion: We discuss API design insights and make recommendations for the design of crypto libraries in Rust regarding the detail and structure of the documentation, higher-level APIs as wrappers for the existing low-level libraries, and selected, good-quality example code to improve the emerging cryptographic libraries of Rust.
{"title":"How Usable Are Rust Cryptography APIs?","authors":"K. Mindermann, Philipp Keck, Stefan Wagner","doi":"10.1109/QRS.2018.00028","DOIUrl":"https://doi.org/10.1109/QRS.2018.00028","url":null,"abstract":"Context: Poor usability of cryptographic APIs is a severe source of vulnerabilities. Aim: We wanted to find out what kind of cryptographic libraries are present in Rust and how usable they are. Method: We explored Rust's cryptographic libraries through a systematic search, conducted an exploratory study on the major libraries and a controlled experiment on two of these libraries with 28 student participants. Results: Only half of the major libraries explicitly focus on usability and misuse resistance, which is reflected in their current APIs. We found that participants were more successful using rust-crypto which we considered less usable than ring before the experiment. Conclusion: We discuss API design insights and make recommendations for the design of crypto libraries in Rust regarding the detail and structure of the documentation, higher-level APIs as wrappers for the existing low-level libraries, and selected, good-quality example code to improve the emerging cryptographic libraries of Rust.","PeriodicalId":114973,"journal":{"name":"2018 IEEE International Conference on Software Quality, Reliability and Security (QRS)","volume":"18 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122426328","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}
Combinatorial testing has been suggested as an effective method of creating test cases at a lower cost. However, industrially applicable tools for modeling and combinatorial test generation are still scarce. As a direct effect, combinatorial testing has only seen a limited uptake in industry that calls into question its practical usefulness. This lack of evidence is especially troublesome if we consider the use of combinatorial test generation for industrial safety-critical control software, such as are found in trains, airplanes, and power plants. To study the industrial application of combinatorial testing, we evaluated ACTS, a popular tool for combinatorial modeling and test generation, in terms of applicability and test efficiency on industrial-sized IEC 61131-3 industrial control software running on Programmable Logic Controllers (PLC). We assessed ACTS in terms of its direct applicability in combinatorial modeling of IEC 61131-3 industrial software and the efficiency of ACTS in terms of generation time and test suite size. We used 17 industrial control programs provided by Bombardier Transportation Sweden AB and used in a train control management system. Our results show that not all combinations of algorithms and interaction strengths could generate a test suite within a realistic cut-off time. The results of the modeling process and the efficiency evaluation of ACTS are useful for practitioners considering to use combinatorial testing for industrial control software as well as for researchers trying to improve the use of such combinatorial testing techniques.
{"title":"Combinatorial Modeling and Test Case Generation for Industrial Control Software Using ACTS","authors":"S. Ericsson, Eduard Paul Enoiu","doi":"10.1109/QRS.2018.00055","DOIUrl":"https://doi.org/10.1109/QRS.2018.00055","url":null,"abstract":"Combinatorial testing has been suggested as an effective method of creating test cases at a lower cost. However, industrially applicable tools for modeling and combinatorial test generation are still scarce. As a direct effect, combinatorial testing has only seen a limited uptake in industry that calls into question its practical usefulness. This lack of evidence is especially troublesome if we consider the use of combinatorial test generation for industrial safety-critical control software, such as are found in trains, airplanes, and power plants. To study the industrial application of combinatorial testing, we evaluated ACTS, a popular tool for combinatorial modeling and test generation, in terms of applicability and test efficiency on industrial-sized IEC 61131-3 industrial control software running on Programmable Logic Controllers (PLC). We assessed ACTS in terms of its direct applicability in combinatorial modeling of IEC 61131-3 industrial software and the efficiency of ACTS in terms of generation time and test suite size. We used 17 industrial control programs provided by Bombardier Transportation Sweden AB and used in a train control management system. Our results show that not all combinations of algorithms and interaction strengths could generate a test suite within a realistic cut-off time. The results of the modeling process and the efficiency evaluation of ACTS are useful for practitioners considering to use combinatorial testing for industrial control software as well as for researchers trying to improve the use of such combinatorial testing techniques.","PeriodicalId":114973,"journal":{"name":"2018 IEEE International Conference on Software Quality, Reliability and Security (QRS)","volume":"107 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-03-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131758936","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}
Nianyu Li, Di Bai, Yiming Peng, Zhuoqun Yang, Wenpin Jiao
The development of self-adaptive software has attracted a lot of attention. Decentralization is an effective way to manage the complexity of modern self-adaptive software systems. However, there are still tremendous challenges remained in decentralized self-adaptive systems. One major challenge is to guarantee the achievements of both local goals and global goals. Another challenge is to ensure the performance of the systems operating in highly dynamic environments with existence of internal changes. To solve these problems, we introduce an integrated system framework combining self-adaptive mechanisms with decentralization features, with a formal modeling method based on stochastic timed automata to allow the system to be analyzed and verified. Timed computational tree logic is used to specify the system properties and then stochastic simulations in a dynamic environment are conducted to study system performance. The whole approach is illustrated and evaluated with a motivation example from practical applications in UAV emergency mission scenarios.
{"title":"Verifying Stochastic Behaviors of Decentralized Self-Adaptive Systems: A Formal Modeling and Simulation Based Approach","authors":"Nianyu Li, Di Bai, Yiming Peng, Zhuoqun Yang, Wenpin Jiao","doi":"10.1109/QRS.2018.00020","DOIUrl":"https://doi.org/10.1109/QRS.2018.00020","url":null,"abstract":"The development of self-adaptive software has attracted a lot of attention. Decentralization is an effective way to manage the complexity of modern self-adaptive software systems. However, there are still tremendous challenges remained in decentralized self-adaptive systems. One major challenge is to guarantee the achievements of both local goals and global goals. Another challenge is to ensure the performance of the systems operating in highly dynamic environments with existence of internal changes. To solve these problems, we introduce an integrated system framework combining self-adaptive mechanisms with decentralization features, with a formal modeling method based on stochastic timed automata to allow the system to be analyzed and verified. Timed computational tree logic is used to specify the system properties and then stochastic simulations in a dynamic environment are conducted to study system performance. The whole approach is illustrated and evaluated with a motivation example from practical applications in UAV emergency mission scenarios.","PeriodicalId":114973,"journal":{"name":"2018 IEEE International Conference on Software Quality, Reliability and Security (QRS)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-06-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125763302","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}