• Title/Summary/Keyword: Automated Test Data Generation

Search Result 31, Processing Time 0.021 seconds

Automated Test Data Generation for Testing Programs with Flag Variables Based on SAT (SAT를 기반으로 하는 플래그 변수가 있는 프로그램 테스팅을 위한 테스트 데이터 자동 생성)

  • Chung, In-Sang
    • The KIPS Transactions:PartD
    • /
    • v.16D no.3
    • /
    • pp.371-380
    • /
    • 2009
  • Recently, lots of research on automated test data generation has been actively done. However, techniques for automated test data generation presented so far have been proved ineffective for programs with flag variables. It can present problems when considering embedded systems such as engine controllers that make extensive use of flag variables to record state information concerning devices. This paper introduces a technique for generating test data effectively for programs with flag variables. The presented technique transforms the test data generation problem into a SAT(SATisfiability) problem and makes advantage of SAT solvers for automated test data generation(ATDG). For the ends, we transform a program under test into Alloy which is the first-order relational logic and then produce test data via Alloy analyzer.

An Alloy Specification Based Automated Test Data Generation Technique (Alloy 명세 기반 자동 테스트 데이터 생성 기법)

  • Chung, In-Sang
    • The KIPS Transactions:PartD
    • /
    • v.14D no.2
    • /
    • pp.191-202
    • /
    • 2007
  • In general, test data generation techniques require the specification of an entire program path for automated test data generation. This paper presents a new way for generating test data automatically een without specifying a program path completely. For the ends, this paper presents a technique for transforming a program under test into Alloy which is the first order relational logic and then producing test data via Alloy analyzer. The proposed method reduces the burden of selecting a program path and also makes it easy to generate test data according to various test adequacy criteria. This paper illustrates the proposed method through simple, but illustrative examples.

CUTIG: An Automated C Unit Test Data Generator Using Static Analysis (CUTIG: 정적 분석을 이용한 C언어 단위 테스트 데이타 추출 자동화 도구)

  • Kim, Taek-Su;Park, Bok-Nam;Lee, Chun-Woo;Kim, Ki-Moon;Seo, Yun-Ju;Wu, Chi-Su
    • Journal of KIISE:Software and Applications
    • /
    • v.36 no.1
    • /
    • pp.10-20
    • /
    • 2009
  • As unit testing should be performed repeatedly and continuously, it is a high-cost software development activity. Although there are many studies on unit test automation, there are less studies on automated test case generation which are worthy of note. In this paper, we discuss a study on automated test data generation from source codes and indicate algorithms for each stage. We also show some issues of test data generation and introduce an automated test data generating tool: CUTIG. As CUTIG generates test data not from require specifications but from source codes, software developers could generate test data when specifications are insufficient or discord with real implementation. Moreover we hope that the tool could help software developers to reduce cost for test data preparation.

Automated Test Data Generation Based on Branch Coverage for Testing C Programs (C 프로그램을 테스팅하기 위한 분기 커버리지에 기반을 둔 자동 테스트 데이터 생성)

  • Chung, In-Sang
    • The Journal of the Korea Contents Association
    • /
    • v.12 no.11
    • /
    • pp.39-48
    • /
    • 2012
  • It is well known that software testing amounts for a significant portion of software development cost. In order to reduce the cost of software testing. a lot of researches on automated test data generation have been performed. Sophisticated tools for performing symbolic execution or solving a system of path constraints are required to support automated test data generation. Developing or purchasing those tools leads to another factor of increasing the cost involving software testing. In this paper, we propose a dynamic test data generation approach that does not depend on symbolic execution or constraint solving at all. The proposed approach extends Korel's path-oriented method to satisfy the branch coverage criterion effectively. We conducted an experiment to evaluate the effectiveness of the proposed technique with a triangle classification program to show that branch coverage can be easily achieved.

Automated Test Data Generation for Dynamic Branch Coverage (동적 분기 커버리지를 위한 테스트 데이터 자동 생성)

  • Chung, In Sang
    • KIPS Transactions on Software and Data Engineering
    • /
    • v.2 no.7
    • /
    • pp.451-460
    • /
    • 2013
  • In order to achieve high test coverage, it is usual to generate test data using various techniques including symbolic execution, data flow analysis or constraints solving. Recently, a technique for automated test data generation that fulfills high coverage effectively without those sophisticated means has been proposed. However, the technique shows its weakness in the generation of test data that leads to high coverage for programs having branch conditions where different memory locations are binded during execution. For certain programs with flag conditions, in particular, high coverage can not be achieved because specific branches are not executed. To address the problem, this paper presents dynamic branch coverage criteria and a test data generation technique based on the notion of dynamic branch. It is shown that the proposed technique compared to the previous approach is more effective by conducting experiments involving programs with flag conditions.

Automated Test Data Generation for Testing Programs with Multi-level Stack-directed Pointers (다단계 스택 지향 포인터가 있는 프로그램 테스트를 위한 테스트 데이터 자동 생성)

  • Chung, In-Sang
    • The KIPS Transactions:PartD
    • /
    • v.17D no.4
    • /
    • pp.297-310
    • /
    • 2010
  • Recently, a new testing technique called concolic testing receives lots of attention. Concolic testing generates test data by combining concrete program execution and symbolic execution to achieve high test coverage. CREST is a representative open-source test tool implementing concolic testing. Currently, however, CREST only deals with integer type as input. This paper presents a new rule for automated test data generation in presence of inputs of pointer type. The rules effectively handles multi-level stack-directed pointers that are mainly used in C programs. In addition, we describe a tool named vCREST implementing the proposed rules together with the results of applying the tool to some C programs.

A Goal-oriented Test Data Generation for Programs with Pointers based on SAT (SAT에 기반한 포인터가 있는 프로그램을 위한 목적 지향 테스트 데이터 생성)

  • Chung, In-Sang
    • Journal of Internet Computing and Services
    • /
    • v.9 no.2
    • /
    • pp.89-105
    • /
    • 2008
  • So far, most of research on automated test data generation(ATDG) deals with programs without pointers. Recently, few works hove been done on ATDG in the presence of pointers, but they ore path-oriented techniques which require the specification of on entire program path to be tested or a program to be executed. This paper presents a new technique for generating test data even without specifying a program path completely. The presented technique is a static technique which transforms the test data generation problem into a SAT(SATisfiability) problem and makes advantage of SAT solvers for ATDG. For the ends, we transform a program under test into Alloy which is the first-order relational logic and then produce test data via Alloy analyzer.

  • PDF

Applying Meta-Heuristic Algorithm based on Slicing Input Variables to Support Automated Test Data Generation (테스트 데이터 자동 생성을 위한 입력 변수 슬라이싱 기반 메타-휴리스틱 알고리즘 적용 방법)

  • Choi, Hyorin;Lee, Byungjeong
    • KIPS Transactions on Software and Data Engineering
    • /
    • v.7 no.1
    • /
    • pp.1-8
    • /
    • 2018
  • Software testing is important to determine the reliability of the system, a task that requires a lot of effort and cost. Model-based testing has been proposed as a way to reduce these costs by automating test designs from models that regularly represent system requirements. For each path of model to generate an input value to perform a test, meta-heuristic technique is used to find the test data. In this paper, we propose an automatic test data generation method using a slicing method and a priority policy, and suppress unnecessary computation by excluding variables not related to target path. And then, experimental results show that the proposed method generates test data more effectively than conventional method.

An Improved Technique of Fitness Evaluation for Automated Test Data Generation (테스트 데이터 자동 생성을 위한 적합도 평가 방법의 효율성 향상 기법)

  • Lee, Sun-Yul;Choi, Hyun-Jae;Jeong, Yeon-Ji;Bae, Jung-Ho;Kim, Tae-Ho;Chae, Heung-Suk
    • Journal of KIISE:Software and Applications
    • /
    • v.37 no.12
    • /
    • pp.882-891
    • /
    • 2010
  • Many automated dynamic test data generation technique have been proposed. The techniques evaluate fitness of test data through executing instrumented Software Under Test (SUT) and then generate new test data based on evaluated fitness values and optimization algorithms. Previous researches and experiments have been showed that these techniques generate effective test data. However, optimization algorithms in these techniques incur much time to generate test data, which results in huge test case generation cost. In this paper, we propose a technique for reducing the time of evaluating a fitness of test data among steps of dynamic test data generation methods. We introduce the concept of Fitness Evaluation Program (FEP), derived from a path constraint of SUT. We suggest a test data generation method based on FEP and implement a test generation tool, named ConGA. We also apply ConGA to generate test cases for C programs, and evaluate efficiency of the FEP-based test case generation technique. The experiments show that the proposed technique reduces 20% of test data generation time on average.

An Empirical Evaluation of Test Data Generation Techniques

  • Han, Seung-Hee;Kwon, Yong-Rae
    • Journal of Computing Science and Engineering
    • /
    • v.2 no.3
    • /
    • pp.274-300
    • /
    • 2008
  • Software testing cost can be reduced if the process of testing is automated. However, the test data generation task is still performed mostly by hand although numerous theoretical works have been proposed to automate the process of generating test data and even commercial test data generators appeared on the market. Despite prolific research reports, few attempts have been made to evaluate and characterize those techniques. Therefore, a lot of works have been proposed to automate the process of generating test data. However, there is no overall evaluation and comparison of these techniques. Evaluation and comparison of existing techniques are useful for choosing appropriate approaches for particular applications, and also provide insights into the strengths and weaknesses of current methods. This paper conducts experiments on four representative test data generation techniques and discusses the experimental results. The results of the experiments show that the genetic algorithm (GA)-based test data generation performs the best. However, there are still some weaknesses in the GA-based method. Therefore, we modify the standard GA-based method to cope with these weaknesses. The experiments are carried out to compare the standard GA-based method and two modified versions of the GA-based method.