• Title/Summary/Keyword: 테스팅 자동화

Search Result 70, Processing Time 0.026 seconds

Identifying a Shape of Input Data Structure for Automated Program Testing (자동화된 프로그램 시험을 위한 입력 자료구조의 모양 식별)

  • Insang, Chung
    • Journal of KIISE:Software and Applications
    • /
    • v.31 no.10
    • /
    • pp.1304-1319
    • /
    • 2004
  • We can significantly reduce the cost o# program testing by automating the process of test data generation. Test data generation usually concerns identifying input values on which a selected path is executed. Although lots of research has been done so far, there still remains a lot of issues to be addressed. One of the issues is the shape problem. The shape problem refers to the problem of figuring out a shape of the input data structure required to cause the traversal of a given path. In this paper, we introduce a new method for the shape problem. The method converts the selected path into static single assignment (SSA) form without pointer dereferences. This allows us to consider each statement in the selected path as a constraint involving equality or inequality. We solve the constraints to get a solution which will be represented in terms of the points-to relations for each input variable. Simple, but illustrative examples are given to explain the proposed method.

A Length-based File Fuzzing Test Suite Reduction Algorithm for Evaluation of Software Vulnerability (소프트웨어 취약성 평가를 위한 길이기반 파일 퍼징 테스트 슈트 축약 알고리즘)

  • Lee, Jaeseo;Kim, Jong-Myong;Kim, SuYong;Yun, Young-Tae;Kim, Yong-Min;Noh, Bong-Nam
    • Journal of the Korea Institute of Information Security & Cryptology
    • /
    • v.23 no.2
    • /
    • pp.231-242
    • /
    • 2013
  • Recently, automated software testing methods such as fuzzing have been researched to find software vulnerabilities. The purpose of fuzzing is to disclose software vulnerabilities by providing a software with malformed data. In order to increase the probability of vulnerability discovery by fuzzing, we must solve the test suite reduction problem because the probability depends on the test case quality. In this paper, we propose a new method to solve the test suite reduction problem which is suitable for the long test case such as file. First, we suggested the length of test case as a measure in addition to old measures such as coverage and redundancy. Next we designed a test suite reduction algorithm using the new measure. In the experimental results, the proposed algorithm showed better performance in the size and length reduction ratio of the test suite than previous studies. Finally, results from an empirical study suggested the viability of our proposed measure and algorithm for file fuzzing.

Component integration Test Modeling with UML (UML 기반 콤포넌트 통합 테스팅)

  • Yun, Hoe-Jin;Seo, Ju-Yeong;Choe, Jeong-Eun;Choe, Byeong-Ju
    • Journal of KIISE:Software and Applications
    • /
    • v.26 no.9
    • /
    • pp.1105-1113
    • /
    • 1999
  • 객체 지향 소프트웨어의 확장과 더불어 소프트웨어의 재사용성의 중요도가 부각되면서 소프트웨어를 콤포넌트 단위로 구현하는 추세이다. 따라서 콤포넌트 기반의 소프트웨어 개발에서의 통합 테스트가 중요한 이슈로 떠오르고 있다. 그러나 콤포넌트들의 통합 테스트에 대한 연구는 미흡한 상태이다. 본 논문에서는 UML을 기반으로 체계적인 통합 테스트 모형을 제안하고. 나아가 본 논문에서는 "멀티미디어 정보처리 시스템"의 사례를 본 논문의 콤포넌트 통합 테스트 모형에 적용한 결과를 분석하여 기술한다. 콤포넌트 통합 테스트 모형은 UML(Unified Modeling Language)의 순서도(sequence diagram)와 협력도(collaboration diagram)를 이용하여 전체 시스템에서 UML의 사건흐름을 구성하는 콤포넌트들 사이의 인터페이스 영역에 존재하는 오류들을 추출한다. 그리고 UML을 기반으로 통합 테스트를 수행함으로써, 테스트 준비 작업을 줄이고, 기존의 UML 지원 도구들과 연계하여 테스트 자동화 도구의 구현을 앞당길 수 있다. 또한 시스템의 순차적 흐름 뿐 아니라, 동시에 수행되는 흐름에 대한 정보까지 모두 수용하여 테스트함으로써, 콤포넌트 기반의 분산 환경의 특성에 적합하다. Abstract As the object-oriented approach to software development becomes more mature, software development from pre-existing, independently developed components becomes an important aim of software engineering. Therefore, integration testing becomes an important aspect of component-based software development. However, there has been little work done in the area of the component-based integration testing. In this paper, we propose the "component integration test model" which is based on UML. Furthermore, we describe a case study on "Multimedia Information Processing System" conducted to analyse the result from which our model is applied. Our model extracts the faults, which exist in interfaces of components, using sequence diagram and collaboration diagram of UML(Unified Modeling Language). As our model is based on UML, the preparation effort for testing is reduced and its test-tools can be implemented more easily through linking existing UML tool. And our model accepts the information of concurrent flow represented by collaboration diagram as well as sequential flow, so it is more suitable to component-based distributed environment.based distributed environment.

Cost-Effective, Real-Time Web Application Software Security Vulnerability Test Based on Risk Management (위험관리 기반의 비용 효율적인 실시간 웹 애플리케이션 소프트웨어 보안취약점 테스팅)

  • Kumi, Sandra;Lim, ChaeHo;Lee, SangGon
    • Journal of the Korea Institute of Information Security & Cryptology
    • /
    • v.30 no.1
    • /
    • pp.59-74
    • /
    • 2020
  • The web space where web applications run is the cyber information warfare of attackers and defenders due to the open HTML. In the cyber attack space, about 84% of worldwide attacks exploit vulnerabilities in web applications and software. It is very difficult to detect web vulnerability attacks with security products such as web firewalls, and high labor costs are required for security verification and assurance of web applications. Therefore, rapid vulnerability detection and response in web space by automated software is a key and effective cyber attack defense strategy. In this paper, we establish a security risk management model by intensively analyzing security threats against web applications and software, and propose a method to effectively diagnose web and application vulnerabilities. The testing results on the commercial service are analyzed to prove that our approach is more effective than the other existing methods.

Object-Oriented Software Interaction Test Techniques using Design/CPN (Design/CPN을 이용한 객체지향 소프트웨어 상호작용 테스트 기법)

  • Li, Ren-Ge;Koo, Yeon-Seol
    • The KIPS Transactions:PartD
    • /
    • v.11D no.3
    • /
    • pp.649-658
    • /
    • 2004
  • An object-oriented system is organized by a set of interacting objects and the system behavior is represented by the cooperating interaction bet ween objects. The characteristics of object-oriented software. such as inheritance and polymorphism, increase the difficulty of the object-oriented software testing. At running time of a program, one call from a member function can bind to other member functions because of the dynamic characteristics such as concurrence, dynamic binding and interaction. Therefore, there need the research about considering the characteristics of object-oriented software and concurrently testing the interaction between objects. In this paper, we propose the techniques as follows. First, we construct a flattened state chart diagram by considering the inheritance and polymorphism. Next, we model the system with CPN(Colored Petri Net) that usually is applying the system modeling and simulation. Last, we propose a test case generation techniques for testing the interaction between objects in object-oriented software by applying a Design/CPN tool.

Design of Portability Test Model for Evaluating Mobile Application on various Mobile Platform (다양한 모바일 플랫폼을 위한 모바일 애플리케이션 이식성 테스트 평가 모델 설계)

  • Park, Hae-Yoon;Choi, S.C.;Kim, B.H.;Choi, J.M.;Yoo, Hae-Young
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2010.06b
    • /
    • pp.120-125
    • /
    • 2010
  • 최근 스마트폰과 같은 다양한 애플리케이션을 사용할 수 있는 모바일폰의 유행에 힘입어 모바일 애플리케이션 수요가 폭발적으로 증가하고 있다. 이에 따라 모바일 애플리케이션에서의 품질의 중요성도 점차 커지고 있다. 하지만 모바일 애플리케이션은 다양한 플랫폼이나 모바일폰의 제약사항에 따라 호환성이 떨어지는 특성을 가짐으로써, 다른 플랫폼에서 애플리케이션을 재사용시 해당 플랫폼이나 모바일폰의 제약사항에 따라 다시 개발해야하는 제약을 가지게 한다. 이런 재개발은 플랫폼의 특성이 플랫폼 별로 상이함에 따라 개발에 어려움을 겪게 하고, 이는 애플리케이션의 품질을 저하시키는 요인이 될 수 있다. 따라서, 본 논문에서는 모바일 애플리케이션을 개발함에 있어서, 플랫폼에 비종속적인 범용 애플리케이션을 개발하기 위해 고려되어야 하는 이식성 척도들과 기존 애플리케이션의 이식성 품질 평가 방법을 제안한다. 이를 위해, 먼저 애플리케이션을 다른 플랫폼으로 이식할 때 고려되어야 하는 모바일 애플리케이션의 특성들을 확인하고, ISO/IEC 9126에서 정의한 소프트웨어 품질 특성 모델을 참조하는 이식성 척도를 도출함으로써 기존 애플리케이션에서 이식성을 평가하기 위한 방법을 설계한다. 이를 통해 모바일 애플리케이션의 타 플랫폼 이식 가능성을 확인함으로써 다른 플랫폼에서의 재개발 필요성과 노력 정도를 확인할 수 있을 것으로 기대된다. 향후 이를 기반으로 모바일 애플리케이션의 타 플랫폼 이식 시, 수정되어야 하는 부분을 확인할 수 있도록 하는 자동화된 이식성 테스팅 툴을 연구하고자 한다.

  • PDF

A Test Case Generation Method Based on Activity for Android Application Testing (안드로이드 애플리케이션을 테스트하기 위한 액티비티 기반의 테스트 케이스 생성 방법)

  • Ko, Minhyuk;Seo, Yongjin;Yun, Sangpil;Kim, Hyeon Soo
    • KIPS Transactions on Software and Data Engineering
    • /
    • v.2 no.10
    • /
    • pp.679-690
    • /
    • 2013
  • Smartphones have features that users feel free to install/delete the program they want. Their emergence makes many developers rush into the Smartphone application development market. Thus, developing good applications quickly is becoming even more intense competition in the market. Because, however, the application development and deployment procedures are simple in the Android environments and anyone can participate in the development easily, applications not validated thoroughly are likely to be deployed. Therefore, a systematic approach that can verify Android-based applications with fewer burdens is required. In this paper, we propose a method that generates automatically GUI-based testing scenarios for the Android applications. The automated test scenario generation can reduce the time which the developer spends on testing, thus it can improve the productivity of the development in the testing phase.

Security Verification of Korean Open Crypto Source Codes with Differential Fuzzing Analysis Method (차분 퍼징을 이용한 국내 공개 암호소스코드 안전성 검증)

  • Yoon, Hyung Joon;Seo, Seog Chung
    • Journal of the Korea Institute of Information Security & Cryptology
    • /
    • v.30 no.6
    • /
    • pp.1225-1236
    • /
    • 2020
  • Fuzzing is an automated software testing methodology that dynamically tests the security of software by inputting randomly generated input values outside of the expected range. KISA is releasing open source for standard cryptographic algorithms, and many crypto module developers are developing crypto modules using this source code. If there is a vulnerability in the open source code, the cryptographic library referring to it has a potential vulnerability, which may lead to a security accident that causes enormous losses in the future. Therefore, in this study, an appropriate security policy was established to verify the safety of block cipher source codes such as SEED, HIGHT, and ARIA, and the safety was verified using differential fuzzing. Finally, a total of 45 vulnerabilities were found in the memory bug items and error handling items, and a vulnerability improvement plan to solve them is proposed.

Automatic Source Code Generating Technique from Design Patterns (디자인 패턴에 대한 소스코드 자동 생성 기법)

  • Kim, Woon-Yong;Choi, Young-Keun
    • The KIPS Transactions:PartD
    • /
    • v.9D no.5
    • /
    • pp.847-858
    • /
    • 2002
  • A purpose of the object-oriented programming is to promote reuse and development time, and to improve software quality. A way for this purpose is using a design information well-defined and tested in previous time when developing software. Such design information is called design patterns. The design patterns are descriptions of abstract solution to recurse software design problems In a systematic and general way. But because the design patterns are descriptions of abstract solution, the specification and application of patterns generally rely on manual implementation and is applied to various forms. As a result, we need to spend a lot of time to develop software program not only because of difficulty in analyzing and applying to patterns consistently, but also because of the frequent programing faults. And because the applied design patterns don't express inside application visually, it is difficult to analyze and test for this design patterns. In this paper, we propose automatic source code generating technique to be able to efficiently apply the element of design patterns when developing application. And we show a way to analyze and use the applied design patterns in application. As a result, the design patterns in application provide the consistent structure and efficiency, and make analysis and using effect increased.

A Study on Risk Parity Asset Allocation Model with XGBoos (XGBoost를 활용한 리스크패리티 자산배분 모형에 관한 연구)

  • Kim, Younghoon;Choi, HeungSik;Kim, SunWoong
    • Journal of Intelligence and Information Systems
    • /
    • v.26 no.1
    • /
    • pp.135-149
    • /
    • 2020
  • Artificial intelligences are changing world. Financial market is also not an exception. Robo-Advisor is actively being developed, making up the weakness of traditional asset allocation methods and replacing the parts that are difficult for the traditional methods. It makes automated investment decisions with artificial intelligence algorithms and is used with various asset allocation models such as mean-variance model, Black-Litterman model and risk parity model. Risk parity model is a typical risk-based asset allocation model which is focused on the volatility of assets. It avoids investment risk structurally. So it has stability in the management of large size fund and it has been widely used in financial field. XGBoost model is a parallel tree-boosting method. It is an optimized gradient boosting model designed to be highly efficient and flexible. It not only makes billions of examples in limited memory environments but is also very fast to learn compared to traditional boosting methods. It is frequently used in various fields of data analysis and has a lot of advantages. So in this study, we propose a new asset allocation model that combines risk parity model and XGBoost machine learning model. This model uses XGBoost to predict the risk of assets and applies the predictive risk to the process of covariance estimation. There are estimated errors between the estimation period and the actual investment period because the optimized asset allocation model estimates the proportion of investments based on historical data. these estimated errors adversely affect the optimized portfolio performance. This study aims to improve the stability and portfolio performance of the model by predicting the volatility of the next investment period and reducing estimated errors of optimized asset allocation model. As a result, it narrows the gap between theory and practice and proposes a more advanced asset allocation model. In this study, we used the Korean stock market price data for a total of 17 years from 2003 to 2019 for the empirical test of the suggested model. The data sets are specifically composed of energy, finance, IT, industrial, material, telecommunication, utility, consumer, health care and staple sectors. We accumulated the value of prediction using moving-window method by 1,000 in-sample and 20 out-of-sample, so we produced a total of 154 rebalancing back-testing results. We analyzed portfolio performance in terms of cumulative rate of return and got a lot of sample data because of long period results. Comparing with traditional risk parity model, this experiment recorded improvements in both cumulative yield and reduction of estimated errors. The total cumulative return is 45.748%, about 5% higher than that of risk parity model and also the estimated errors are reduced in 9 out of 10 industry sectors. The reduction of estimated errors increases stability of the model and makes it easy to apply in practical investment. The results of the experiment showed improvement of portfolio performance by reducing the estimated errors of the optimized asset allocation model. Many financial models and asset allocation models are limited in practical investment because of the most fundamental question of whether the past characteristics of assets will continue into the future in the changing financial market. However, this study not only takes advantage of traditional asset allocation models, but also supplements the limitations of traditional methods and increases stability by predicting the risks of assets with the latest algorithm. There are various studies on parametric estimation methods to reduce the estimated errors in the portfolio optimization. We also suggested a new method to reduce estimated errors in optimized asset allocation model using machine learning. So this study is meaningful in that it proposes an advanced artificial intelligence asset allocation model for the fast-developing financial markets.