{"title":"在分布式和基于组件的应用程序的测试中利用全局因果关系","authors":"Jun Li, K. Moore","doi":"10.1109/ICSM.2004.1357869","DOIUrl":null,"url":null,"abstract":"A new approach to testing component-based applications is presented, which exploits the practice in component-based systems of generating stub/skeleton modules and using these stubs/skeletons to construct a global perspective of end-to-end causality of inter-component communication. This global causality is captured regardless of reentrancy, callbacks, thread and process boundaries, and unsynchronized clocks. The captured logs created from the interception points are used to construct a system-wide component interaction model that can expose the inter-component dependencies usually hidden in static analysis of application code. These discovered dependencies are used to create a test boundary for applying a component test harness for that component and the set of dependent components. Similarly, the discovered dependencies can be applied to pruning the available test cases to identify those cases that are best suited to exposing defects when one or more components are changed. A particular advantage of the approach has been the ability to isolate the sequence of events that led up to a crash or a deadlock condition and view the entire system behavior (not just a particular thread's perspective or a linear log of intercepted messages).","PeriodicalId":348668,"journal":{"name":"20th IEEE International Conference on Software Maintenance, 2004. Proceedings.","volume":"48 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2004-09-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Exploiting global causality in testing of distributed and component-based applications\",\"authors\":\"Jun Li, K. Moore\",\"doi\":\"10.1109/ICSM.2004.1357869\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"A new approach to testing component-based applications is presented, which exploits the practice in component-based systems of generating stub/skeleton modules and using these stubs/skeletons to construct a global perspective of end-to-end causality of inter-component communication. This global causality is captured regardless of reentrancy, callbacks, thread and process boundaries, and unsynchronized clocks. The captured logs created from the interception points are used to construct a system-wide component interaction model that can expose the inter-component dependencies usually hidden in static analysis of application code. These discovered dependencies are used to create a test boundary for applying a component test harness for that component and the set of dependent components. Similarly, the discovered dependencies can be applied to pruning the available test cases to identify those cases that are best suited to exposing defects when one or more components are changed. A particular advantage of the approach has been the ability to isolate the sequence of events that led up to a crash or a deadlock condition and view the entire system behavior (not just a particular thread's perspective or a linear log of intercepted messages).\",\"PeriodicalId\":348668,\"journal\":{\"name\":\"20th IEEE International Conference on Software Maintenance, 2004. Proceedings.\",\"volume\":\"48 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2004-09-11\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"20th IEEE International Conference on Software Maintenance, 2004. Proceedings.\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/ICSM.2004.1357869\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"20th IEEE International Conference on Software Maintenance, 2004. Proceedings.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICSM.2004.1357869","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Exploiting global causality in testing of distributed and component-based applications
A new approach to testing component-based applications is presented, which exploits the practice in component-based systems of generating stub/skeleton modules and using these stubs/skeletons to construct a global perspective of end-to-end causality of inter-component communication. This global causality is captured regardless of reentrancy, callbacks, thread and process boundaries, and unsynchronized clocks. The captured logs created from the interception points are used to construct a system-wide component interaction model that can expose the inter-component dependencies usually hidden in static analysis of application code. These discovered dependencies are used to create a test boundary for applying a component test harness for that component and the set of dependent components. Similarly, the discovered dependencies can be applied to pruning the available test cases to identify those cases that are best suited to exposing defects when one or more components are changed. A particular advantage of the approach has been the ability to isolate the sequence of events that led up to a crash or a deadlock condition and view the entire system behavior (not just a particular thread's perspective or a linear log of intercepted messages).