보고서 정보
주관연구기관 |
슈어소프트테크(주) |
연구책임자 |
배현섭
|
참여연구자 |
조성완
,
유신
|
보고서유형 | 최종보고서 |
발행국가 | 대한민국 |
언어 |
한국어
|
발행년월 | 2018-05 |
과제시작연도 |
2016 |
주관부처 |
과학기술정보통신부 Ministry of Science and ICT |
등록번호 |
TRKO202100007152 |
과제고유번호 |
1711055311 |
사업명 |
SW컴퓨팅산업원천기술개발 |
DB 구축일자 |
2021-07-24
|
키워드 |
테스트 자동 생성.테스트 자동 수행.테스트케이스 이관.프라이빗 클라우드.개발도구 연동.automatic test generation.automatic test execution.testcase migration.private cloud.development system integration.
|
초록
▼
1. 원천 기술 고도화
가. C++ 최신 표준 지원 (C++ 11/14 100% 지원, C++ 17 일부 지원)
나. AVM기법 접목하여 자동 생성된 테스트 데이터로 구문 커버리지 81.42% 달성
다. 테스트 병렬 수행으로 1.89배 성능 향상
라. 타겟 시험 지원 환경 11종 추가
마. 커버리지 측정 결과 UX 개선하여 사용자 조작 횟수 29.41% 감소
2. 혁신 기술 개발
가. 테스트 자산 이관
(1) 단위 테스트 프레임워크 3종(CPPUnit / Google Test / x
1. 원천 기술 고도화
가. C++ 최신 표준 지원 (C++ 11/14 100% 지원, C++ 17 일부 지원)
나. AVM기법 접목하여 자동 생성된 테스트 데이터로 구문 커버리지 81.42% 달성
다. 테스트 병렬 수행으로 1.89배 성능 향상
라. 타겟 시험 지원 환경 11종 추가
마. 커버리지 측정 결과 UX 개선하여 사용자 조작 횟수 29.41% 감소
2. 혁신 기술 개발
가. 테스트 자산 이관
(1) 단위 테스트 프레임워크 3종(CPPUnit / Google Test / xUnit++)
(2) 테스트 프로그램 언어 5종(C/C++ / Java / Python / Delphi / Ruby)
(3) 커스터마이징 가능한 테스트 데이터 이관 기능 개발 및 사례 5종 구축
나. 개발 도구 연동
(1) 지속 통합 도구 10종 연동
(2) 이슈 관리 도구 5종 연동
(3) 형상 관리 도구 5종 연동
다. 프라이빗 클라우드 환경 운용 기능 개발
(출처 : 요약서 4p)
Abstract
▼
Purpose & Contents
1. Purpose of the research
가. Development of interoperable cloud platform for highly reliable high-risk (medical, aviation, vehicle) software test verification
(1) Development of source technology of white-box testing engine
(가) Acceptance of latest C++ standard C++ 11
Purpose & Contents
1. Purpose of the research
가. Development of interoperable cloud platform for highly reliable high-risk (medical, aviation, vehicle) software test verification
(1) Development of source technology of white-box testing engine
(가) Acceptance of latest C++ standard C++ 11/14 100%, C++ 17 partial
(나) Automatic test generation based on C++ program characteristics
(다) Automatic test data generation using AVM technique
(라) Performance improvement of test execution by parallelization
(마) Supported target extensions that can be tested in the target environment
(바) Improvement for visualization of coverage measurement results
(2) Developing innovative technology for globalization
(가) Interface development for migration of 3 kinds of unit test frameworks
(나) Development of test case migration function in 5 development languages
(다) Development of customizable test data migration function and construction of 5 cases
(라) Integration with 10 types of continuous integration tools
(마) Integration with 5 types of issue management tools
(바) Integration with 5 types of configuration management tools
(사) Package creation and server construction for private cloud-based operation
(아) Development of private cloud-based license management
2. Contents of research
가. Development of source technology of White-box testing engine
(1) Acceptance of latest C++ standard C++ 11/14 100%, C++ 17 partial
(2) Review new entries for the latest C++ 11/14/17 standard documentation
(3) Checking the updated elements of the source code analyzer used to generate and execute unit tests
(4) Upgrading commercial parser modules used by the test automation tool to support the latest C++ standards
(5) Checking the changed data structure of the latest commercial parser module
(6) Identify where the test verification tool is affected by the expansion of C++ language
(7) Extension of the interfaces of the functional modules with the items using the commercial parser module in the test automation tool
(8) Testing whether C++ 11/14/17 functionality is supported by the compiler test set
(9) Checking for side effects through integrated regression testing of analytical functions with the latest commercial parsers and newly implemented interfaces
(10) Execution of engine module test according to in-house product release procedure
나. Automatic test generation based on C++ program characteristics
(1) To derive an architecture driver for improving test coverage
(2) To derive an automatable form of class factory architecture strategy
(3) Adding the function to select a class factory for a class type when editing a test
(4) Replacing abstract classes that are difficult to generate automatically with class factory code
(5) Adding a class factory view so that users can easily insert object creation codes
다. Automatic generation of test data using AVM technique
(1) Prototype development using AVM technique
(2) Searching for a suitable algorithm for automatic generation of test data
(3) Clang-based preprocessor development
(4) To study on processing structures and external library functions
(5) Integration of the test automation tool and AVM prototypes
(6) Supporting recursive dynamic memory structure and improving control dependency analysis
라. Improvement of test execution through parallelization
(1) Test the performance of the engine module used in the test execution process
(2) Identifying engine modules that can improve performance by parallel execution based on performance profiling results
(3) Analyzing against test execution engines to identify performance bottlenecks.
(4) Developing a architecture and a strategy to parallelize
(5) Finding improvements through architectural reviews and documenting the architecture
(6) Modifying the test engine and analysis engine according to the architecture
(7) Code reviews for parallel execution modules
(8) Performance tuning through integration testing
(9) Improvement of the user experience by modifying the displayed message
(10) Performance comparison test according to whether or not parallel execution architecture is implemented for the same sample
(11) Option tuning of engine modules to reach the quantitative goal
마. Supported target extensions that can be tested in the target environment
(1) To Apply the test automation tool to customers who want to perform target-based testing
(2) Implement input/output interface for target boards
(3) Documentation of case studies for target application
바. Improvement for visualization of coverage measurement results
(1) UI development to deliver useful coverage information
(2) To Simplify the Coverage UI to focus on testing verification
3. Developing innovative technology for globalization
가. Interface development for migration of 3 kinds of unit test frameworks
(1) Investigation of features and driver interoperability for CPPUnit, Google Test, xUnit++
(2) Create scenarios for the test automation tool considering user experience
(3) UI development according to the scenario
(4) To add the function to detect source code of external unit test framework in the test automation tool
(5) Development of the automatic test function for source code of external unit test framework
(6) Exception handling to exclude library files of external unit testing framework from coverage results
나. Development of the test case migration function in 5 development languages
(1) Development of the function to perform external tests developed in other languages
(2) Languages: C/C++, Java, Python, Ruby, Delphi
(3) Development of the function to set up a testing environment and analyze test results
(4) Development of the function to execute external tests and analyze results with script engine
(5) To Compare and analyze the results of the external test and the test results of the tool
다. Development of customizable test data migration function
(1) Scenario review to create customizable architectures
(2) Choosing an architecture that allows users to customize with faster support rather than customizing through the GUI, considering that the format of the test data used by one client company is not varied due to the nature of the B2B business
(3) Development of the data migration function via script for quick support with customization
(4) To define test data migration scripts and identify APIs that the scripting engine's architecture should provide
(5) Designing the operation between the existing architecture and the architecture of the scripting engine
(6) Supporting for three test data formats
(7) Data formats: Excel, Plain Text, CSV
(8) Development of the function to import test data exported from test automation tools
라. Construction of 5 test data migration cases
(1) By using customizable test data migration function
(2) Developing scripts to migrate 5 types of customer test data to the test automation tool
마. Integration with 10 types of continuous integration tools
(1) Development of the command line interface for the test automation tool to be used in continuous integration tools
(2) Development of test import function using command line interface
(3) Development of the function for automatic test execution and coverage verification using command line interface
(4) Continuous integration tools: Jenkins, Bamboo, GoCD, Hudson, TeamCity, GitLab, UrbanCode, ElectricFlow, RTC(Rational Team Concert), TFS(Team Foundation Server)
(5) Design and development of a test result merging module to send test results to issue management tools
바. Integration with 5 types of issue management tools
(1) Development of GUI for registering issue IDs of issue management tools in a test of the test automation tool
(2) Development of the function to retrieve associated tests with issues by issue IDs in the test automation tool
(3) Development of the function to summarize test results according to the format supported by each issue management tool
(4) Development of the function to automatically register the test results executed automatically by continuous integration tools in the issues associated with each test
(5) Issue management tools: Bugzilla, JIRA, Mantis, Redmine, Trac
사. Integration with 5 types of configuration management tools
(1) Simplification of the test model generated and exported by the test automation tool
(2) Improvement of portability of tests to integrate with configuration management tools
(3) Configuration management tools: CVS, Git, SVN, RTC, TFS
아. Package creation and server construction for private cloud-based operation
(1) Developing scripting technology that reflects the characteristics of the test automation tool
(2) Development of package creation technology and management technology for updating packages automatically
(3) Building a cloud-based application streaming server farm
(4) Verifying the functionality of the package creation tool and the generated package
자. Development of private cloud-based license management
(1) Development of a license management module for large users
(2) Development of module to manage metering data
(3) Development of license manager and monitor function
(4) Development of user authority and policy management module
(5) Development of license and user policy based access control function
(6) Building an application streaming server
(7) Verification of scenario of application streaming service
(8) Verification of function by user OS environment
Results
1. Development of source technology of white-box testing engine
가. Acceptance of latest C++ standard C++ 11/14 100%, C++ 17 partial
(1) Application of C++ 11/14/17 latest parser module
(2) Development of the function to support toolchain and Visual Studio projects associated with the latest C++ standards
나. Development of the function to generate test automatically based on C++ program characteristics
(1) To design class factory architecture as a solution to class generation issues that are problematic when testing C++ programs
(2) Development of a class factory function that can replace the class generation code in the test code
(3) To achieve an average of 50% or more by measuring statement coverage through automatically generated test data for 5 open source software
다. Automatic test data generation using AVM technique
(1) To cover 4 patterns out of 7 patterns that are not covered by the test data generated by the previous function
(2) Integration of test data auto-generation module with the test automation tool using AVM technique developed as prototype
(3) To achieve average 70% or more of statement coverage for 5 open software through automatic test data generation function using AVM technique
라. Performance improvement of test execution by parallelization
(1) To design the parallel execution architecture of the source code semantic analyzer
(2) To design the parallel execution architecture of the automated test executer
(3) Performance testing and tuning for open software
(4) Supported target extensions that can be tested in the target environment: support for 11 new targets
마. Improvement for visualization of coverage measurement results
(1) Compared with the previous tool, the number of user manipulations is reduced by 29% and the number of screen switching (view switching) is reduced by 50%
2. Developing innovative technology for globalization
가. Interface development for migration of 3 kinds of unit test frameworks
(1) Development of test framework source code detection module written in CPPUnit or Google Test or xUnit++
(2) Development of the function to execute tests included in CPPUnit or Google Test or xUnit ++, and to display coverage results
나. Development of test case migration function in 5 development languages
(1) Development of the test program registration interface and test program executor written in C / C ++, Java, Python, Ruby, Delphi
(2) Development of the function to collect the results of the test program and to display the results of the test program
다. Development of customizable test data migration function
(1) Development of SDK for customizable test data migration
(2) Designing an architecture for flexible migration of test data through script
(3) Development of the function to migrate test data in Excel, Plain Text, and CSV format using script
라. Development of customizable test data migration function and construction of 5 cases
(1) Developing a script that can import 5 types of customer test data into the test automation tool
마. Integration with 10 types of continuous integration tools
(1) Development of a command line interface for the test automation tool to integrate with Jenkins, Bamboo, GoCD, Hudson, TeamCity, GitLab, UrbanCode, ElectricFlow, RTC(Rational Team Concert), TFS(Team Foundation Server)
바. Integration with 5 types of issue management tools
(1) Development of the function to register test results of the test automation tool in JIRA, Redmine, Trac, Mantis, Bugzilla
사. Integration with 5 types of configuration management tools
(1) Modification of the structure of the test information so that the tests of the test automation tool can be integrated with Git, SVN, CVS, RTC, TFS
아. Package creation and server construction for private cloud-based operation
(1) Development of a script handler that can define a pre-process to run an application in a virtualized environment
(2) Developing the function to parse and execute scripts on the client
(3) Development of a module to create knowledge base of the written script
(4) Development of tools to create packages for streaming services that can handle scripts
(5) Development of tools to create update packages
(6) Developing the function to deliver and apply update package information to clients
자. Development of private cloud-based license management
(1) Developing the function to record and manage the usage history of the test automation tool
(2) Development of visualization function to check the status of metering data by period
(3) Developing the function to configure the settings of a licensing model policy and its operating environment according to the policy
(4) Development of the function to verify compliance with licensing policies
(5) Development of the function to control access to test automation tools according to license policy
(6) Developing the function to control the use of test validation tools according to user rights and license policies
(7) Developing user access rights grouping function and usage policy management function
(8) Validation of various client OS and x86, x64 support
Expected Contribution
1. Usage plan
가. The white box test automation tool available in healthcare domain software(leading healthcare market)
나. The white box test automation tool available in automotive electronics software(promoting sales to global companies such as Haman and GM)
다. The test automation tool for companies developing software based on functional safety standards(ISO 26262, DO-178, IEC61508, EN50128, etc.)
라. Productization by element technology(white box dynamic test tool, test automation tool, cloud based test tool)
2. Expected effect
가. Achieving cumulative overseas sales of KRW 81.6 billion in key industries(medical device, avionics, automotive, nuclear, railway) by 2020
나. Create 250 new jobs for the domestic by 2020
다. Contribution to the software testing tool industry
(출처 : SUMMARY 13p)
목차 Contents
- 표지 ... 1
- 제 출 문 ... 2
- 보고서 요약서 ... 4
- 연구개발사업 주요 연구성과 ... 5
- 국문 요약문 ... 6
- SUMMARY ... 13
- 목차 ... 20
- 제1장. 연구개발과제의 개요 ... 21
- 제1절. 연구개발 목적 ... 21
- 제2절. 연구개발의 필요성 ... 22
- 제3절. 연구개발 범위 ... 23
- 제2장. 국내외 기술 개발 현황 ... 30
- 제1절. 국내 기술 동향 및 수준(신청 기관 포함) ... 30
- 제2절. 국외 기술 동향 및 수준 ... 32
- 제3장. 연구 수행 내용 및 성과 ... 34
- 제1절. 연구 수행 내용 ... 34
- 제2절. 연구 수행 성과 ... 69
- 제4장. 목표 달성도 및 관련 분야 기여도 ... 74
- 제1절. 목표 달성도 ... 74
- 제2절. 관련 분야 기여도 ... 88
- 제5장. 연구개발성과의 활용계획 ... 91
- 제1절. 과제기간 이후 사업화 활용 계획 ... 91
- 제2절. 과제기간 이후 사업화 목표 ... 92
- 제6장. 연구 과정에서 수집한 해외 과학기술 정보 ... 93
- 제7장. 연구개발성과의 보안등급 ... 100
- 제8장. 국가과학기술종합정보시스템에 등록한 연구시설·장비 현황 ... 101
- 제9장. 연구개발과제 수행에 따른 연구실 등의 안전 조치 이행 실적 ... 102
- 제10장. 연구개발과제의 대표적 연구 실적 ... 103
- 제11장. 기타 사항 ... 105
- 제1절. 향후 연구 계획 ... 105
- 제12장. 참고 문헌 ... 106
- 첨부1. 자체 보안관리 진단표 ... 108
- 첨부2. 연구실 안전조치 이행표 ... 109
- 첨부3. 기술화 성과 증빙자료 ... 110
- 끝페이지 ... 112
※ AI-Helper는 부적절한 답변을 할 수 있습니다.