KR20080048035A - 소프트웨어의 테스트 및 모니터를 위한 데이터의 주입 및추출을 위한 동적 프로브에 대한 방법 및 시스템 - Google Patents

소프트웨어의 테스트 및 모니터를 위한 데이터의 주입 및추출을 위한 동적 프로브에 대한 방법 및 시스템 Download PDF

Info

Publication number
KR20080048035A
KR20080048035A KR1020087006759A KR20087006759A KR20080048035A KR 20080048035 A KR20080048035 A KR 20080048035A KR 1020087006759 A KR1020087006759 A KR 1020087006759A KR 20087006759 A KR20087006759 A KR 20087006759A KR 20080048035 A KR20080048035 A KR 20080048035A
Authority
KR
South Korea
Prior art keywords
software
probe
software modules
data
test
Prior art date
Application number
KR1020087006759A
Other languages
English (en)
Inventor
요나스 벵츠슨
마이클 로젠버그
Original Assignee
텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘) filed Critical 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘)
Publication of KR20080048035A publication Critical patent/KR20080048035A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime

Abstract

소프트웨어의 동적 프로빙에 대한 방법 및 시스템이 개시되어 있다. 동적 프로브는 런타임 기간 동안 피테스트 소프트웨어에 삽입(또는 여기서 제거)될 수 있다. 이러한 프로브의 동적 삽입(및 제거)은 사용자로 하여금 새로운 프로브를 삽입하기 위하여 소프트웨어를 리컴파일하는 대신에 필요한 프로브를 삽입하고 제거하게 할 수 있다. 또한, 프로브의 동적 삽입(및 제거)은 사용자로 하여금 사용자가 필요할 때만 프로브를 추가하고 더 이상 사용되지 않고 있는 프로브를 제거할 수 있게 함으로써 메모리 공간을 절약한다.
프로브, 피테스트 소프트웨어, 동적 삽입, 소프트웨어 모듈, 프로브 식별자, 테스터

Description

소프트웨어의 테스트 및 모니터를 위한 데이터의 주입 및 추출을 위한 동적 프로브에 대한 방법 및 시스템{METHOD AND SYSTEM FOR DYNAMIC PROBES FOR INJECTION AND EXTRACTION OF DATA FOR TEST AND MONITORING OF SOFTWARE}
본 발명은 소프트웨어의 테스트에 관한 것으로, 특히, 소프트웨어의 동적 프로빙(probing)에 대한 방법에 관한 것이다.
소프트웨어 개발업자들 사이에서 가장 중요한 요구 사항들 중 하나는 소프트웨어가 안정되어야 한다는 것이다. 안정성(reliability)이란, 특정 환경에서 특정 시간량 동안 실패없이 동작되는 소프트웨어의 능력을 말한다. 상위 수준의 안정성을 충분히 보장하기 위하여, 소프트웨어는 배포에 앞서 철저히 테스트되고 디버그되어야 한다. 대개는, 전체 소프트웨어 프로그램이 전체적으로 테스트될 뿐만 아니라, 소프트웨어 프로그램을 구성하는 개개의 함수 구성 성분(예컨대, 함수 호출, 서브루틴)도 테스트된다. 통상적으로, 소프트웨어 및/또는 하나 이상의 함수 구성 성분에 의해 요구되는 변수에 대한 일련의 값들을 포함하는 테스트 벡터가 생성된다. 소프트웨어가 실행되도록 의도되는 다양한 유형의 사용 조건 및 환경을 나타내기 위하여 변수 값이 선택된다. 그리고, 테스트 벡터가 소프트웨어 및/또는 하나 이상의 함수 구성 요소에 적용되어, 변수 값이 관찰되고 기록된다.
종종 실행되는 한가지 유형의 테스트를 회귀 분석이라고도 부르고, 때로는 검증 테스트라고도 부른다. 회귀 분석은 공지된 문제점들을 고치기 위하여 수정되었던 소프트웨어의 선택적인 재테스트를 포함한다. 선택적인 재테스트는, 식별된 문제점들이 고쳐졌고, 수리 결과, 이전에 동작한 기타 함수 구성 요소들 중 어떠한 것도 실패되지 않았음을 보장하도록 실행된다. 이러한 유형의 테스트는 기본적으로, 수정된 코드가 여전히 그 특정한 요구 사항을 따르고, 수정되지 않은 코드는 어떠한 것도 유지 활동에 의해 영향받지 않았음을 보장하기 위한 품질 제어 측정이다.
구체적으로는 회귀 분석, 일반적으로는 소프트웨어 테스트에서 중요한 특징은 테스트 벡터로부터 나오는 변수 값을 관찰하는 능력이다. 소프트웨어의 변수 값 및/또는 그 함수 구성 성분을 관찰하기 위한 초기의 시도는 소스 코드 그 자체의 고장 지점 및 다른 트랩들을 수동으로 설정하는 것을 포함하였다. 보다 최근에는, Texas Instruments로부터의 Code Composer StudioTM 및 National Instruments로부터의 LabVIEWTM과 같은 소프트웨어 개발 툴이 피테스트 코드(code under test)에 삽입될 수 있는 소프트웨어 프로브를 포함한다. 소프트웨어 프로브는 피테스트 코드의 변수가, 소프트웨어가 실행됨에 따라 실시간 관찰되게 할 수 있다. 그러나, 이들 나중의 해결안은 피테스트 코드로부터 변수 값을 추출하는 것에만 기초한다(예컨대, 이에 의해 변수 값이 분석될 수 있음). 이 해결안은 소프트웨어의 실행 기간 동안 변수값이 변하는 것을 허용하지 않는다. 즉, 이 기존의 소프트웨어 프 로브는, 데이터가 피테스트 코드로부터 테스트 시스템으로만 흐르도록 허용한다는 점에서, 일방(one-way) 또는 단방향(unidirectional) 프로브일 뿐이다. 이 프로브는, 데이터가 테스트 시스템으로부터 피테스트 코드로 흐르도록 데이터 전송 방향을 역으로 하는 것은 할 수 없다.
다른 프로브들은, 프로브가 데이터를 피테스트 코드로부터 테스트 시스템으로 또한 그 역으로 흐르게 할 수 있다는 점에서 양방향(bi-directional) 프로브이다. 양방향 프로브의 일례는 본 명세서에서 참조로 포함되는, 2003년 5월 1일에 출원된 "소프트웨어의 양방향 프로빙(BI-DIRECTIONAL PROBING OF SOFTWARE)"이라는 명칭의 공통 소유한 미국 출원 제10/428733호에서 찾을 수 있다.
그러나, 기존의 해결안에서는, 단방향 프로브 및 양방향 프로브 모두 정적 모드에서 동작하는데, 이는 피테스트 소프트웨어(software under test)의 컴파일 시간 동안 프로브가 결정되어야 할 필요가 있다는 것을 의미한다. 만약 컴파일 시간 동안 프로브가 도입되지 않으면, 프로브를 도입할 수 있는 유일한 방식은 피테스트 소프트웨어를 재구축하는 것이며, 이는 바람직하지 않다. 또한, 프로브가 비활성화(inactive) 상태에 있는 동안에도, 여전히 적은 양의 메모리를 소비하는데, 이는 전체 시스템에 있어서는 상당한 양의 메모리로까지 증가될 수 있다.
따라서, 필요시에 프로브가 도입 및 제거될 수 있고 또한 오직 설치되어 있는 프로브만이 메모리를 소비할 수 있도록, 프로브가 컴파일 시간 대신에 런타임(run-time) 기간 동안 피테스트 소프트웨어에 설치될 수 있는 것이 필요하다.
복수의 소프트웨어 모듈들을 포함하는 소프트웨어의 테스트 방법이 제공된다. 본 방법은, 소프트웨어에 의해 사용되는 복수의 소프트웨어 모듈들을 포함한 소프트웨어를 실행시키는 단계, 및 복수의 소프트웨어 모듈들 중에서 서로 직접 링크되어 있는 2개의 소프트웨어 모듈들을 식별하는 단계를 포함한다. 프로브는 소프트웨어가 실행 중인 동안 그 2개의 식별된 소프트웨어 모듈들 사이에 삽입된다. 프로브는 2개의 식별된 소프트웨어 모듈 사이에서 교환되는 데이터를 테스트 시스템으로 출력함으로써, 소프트웨어로부터 데이터를 추출한다.
본 발명의 다른 실시예에 의하면, 소프트웨어를 테스트하기 위한 시스템이 제공된다. 본 시스템은 피테스트 소프트웨어를 포함하는데, 그 소프트웨어는 복수의 소프트웨어 모듈들을 포함한다. 적어도 하나의 애플리케이션이 피테스트 소프트웨어에 연결된다. 적어도 하나의 애플리케이션으로 하여금 피테스트 소프트웨어에 의해 사용되는 임의의 소프트웨어 모듈을 포함한 피테스트 소프트웨어를 실행시키게 하는 테스터 유닛이 구성되도록, 테스터 유닛은 적어도 하나의 애플리케이션을 제어한다. 또한, 테스트 유닛은, 피테스트 소프트웨어에 의해 사용되고 서로 직접 통신하고 있는 2개의 소프트웨어 모듈을 식별하고, 피테스트 소프트웨어가 실행 중인 동안 그 2개의 식별된 소프트웨어 모듈들 사이에 프로브를 삽입하고, 그 2개의 식별된 소프트웨어 모듈 사이에서 교환되는 데이터를 프로브를 통해 출력함으로써 피테스트 소프트웨어로부터 데이터를 추출하도록 구성된다.
본 발명의 또 다른 실시예에 의하면, 복수의 소프트웨어 모듈들을 포함하는 소프트웨어의 테스트 방법이 제공된다. 본 방법은 소프트웨어가 실행 중인 동안 소프트웨어에 대한 프로브를 요구하는 단계, 및 컴포넌트 매니저로부터 프로브에 대한 핸들을 획득하는 단계를 포함한다. 복수의 소프트웨어 모듈들 중에서 테스트될 2개가 식별되고, 그 2개의 식별된 소프트웨어 모듈은 서로 직접 링크되어 있다. 프로브의 핸들은 그 2개의 식별된 소프트웨어 모듈 사이에 삽입된다.
본 발명의 다른 실시예에 의하면, 복수의 데이터 변수들 및 함수 인수(argument)들을 포함하는 소프트웨어를 테스트하기 위한 장치가 제공된다. 본 장치는 중앙 처리 유닛, 및 중앙 처리 유닛에 접속된 저장 유닛을 포함한다. 저장 유닛은, 중앙 처리 유닛에게, 소프트웨어를 실행하고 그 소프트웨어에 의해 사용되는 변수들 또는 인수들 중 적어도 하나에 대한 어드레스 위치를 식별하도록 명령하기 위한 컴퓨터 판독가능 명령어를 저장한다. 또한, 저장 유닛은, 중앙 처리 유닛에게, 그 어드레스 위치에 프로브를 동적으로 삽입하고 그 어드레스 위치에 저장된 임의의 데이터를 중앙 처리 유닛으로 출력함으로써 데이터를 모니터하도록 명령하기 위하여 컴퓨터 판독가능 명령어를 저장한다.
본 발명의 또 다른 실시예에 의하면, 피테스트 장치(device under test)가 제공된다. 피테스트 장치는 소프트웨어 체인에 링크되어 있는 복수의 소프트웨어 모듈들, 및 소프트웨어 모듈들에 연결되고 소프트웨어 모듈들을 관리하기 위한 컴포넌트 매니저를 포함한다. 소프트웨어 모듈들은, 소프트웨어의 동작 기간 동안 복수의 소프트웨어 모듈들 중 2개 사이에 프로브가 삽입될 수 있도록, 사용 기간 동안 분리되고 재정렬되도록 구성된다.
본 발명의 다른 실시예에 의하면, 복수의 소프트웨어 모듈들을 포함하는 소프트웨어의 테스트 방법이 제공된다. 본 방법은 소프트웨어 프로브를 생성하는 단계 및 프로브 식별자를 수신하는 단계를 포함하며, 여기서 프로브 식별자는 소프트웨어 프로브를 식별한다. 테스터는 복수의 소프트웨어 모듈들에 소프트웨어 프로브를 삽입하거나 또는 복수의 소프트웨어 모듈들에서 소프트웨어 프로브를 제거하도록 명령받는다. 또한, 소프트웨어 프로브가 삽입되었거나 또는 제거되었다는 확인(confirmation)이 수신된다.
또 다른 실시예에 의하면, 복수의 소프트웨어 모듈들을 포함하는 소프트웨어의 테스트 방법이 제공된다. 본 방법은 프로브에 대한 핸들을 획득하는 단계 및 프로브 데이터베이스에 프로브 식별자를 배치하는 단계를 포함한다. 프로브 식별자는 퍼스널 컴퓨터로 되돌아간다. 복수의 소프트웨어 모듈들에 프로브를 삽입하거나 또는 복수의 소프트웨어 모듈들에서 프로브를 제거하라는 명령이 수신되고, 복수의 소프트웨어 모듈들이 재배열된다. 복수의 소프트웨어 모듈들에 있는 프로브의 상태가 확인되고, 프로브의 배치를 확인하는 메시지가 퍼스널 컴퓨터로 전송된다.
첨부 도면과 함께 이하의 실시예를 참조하면 본 발명을 보다 잘 이해할 수 있을 것이다.
도 1a는 본 발명의 실시예에 따른 예시적인 소프트웨어 테스트 환경을 도시하는 도면.
도 1b는 도 1a의 소프트웨어 모듈들 사이에 삽입된 동적 프로브의 개략적인 도면.
도 1c는 소프트웨어 모듈들 사이에 프로브가 삽입되지 않은 도 1a의 소프트웨어 모듈들의 개략적인 도면.
도 2는 본 발명의 실시예에 따른 동적 소프트웨어 프로브를 구현하는 방법을 도시하는 도면.
도 3은 본 발명의 실시예에 따른 양방향 소프트웨어 프로브가 구현될 수 있는 예시적인 시스템을 도시하는 도면.
위에서 언급된 바와 같이, 프로브가 피테스트 소프트웨어(software under test : SUT)의 컴파일 시간 동안 결정되어야 한다는 점에서, 기존의 단방향 및 양방향 프로브는 융통성이 부족하다. 그렇지 않으면, 프로브를 도입할 수 있는 유일한 방식은 전체 SUT를 재구축하는 것이다. 또한, 각각의 프로브가 활성화되어 있지 않은 경우에도, 각각의 프로브는 소량의 메모리를 소비하기 때문에, 사용할 필요가 있는 프로브들의 수를 생각한다면 상당한 양까지 증가될 수 있다.
본 발명의 실시예는 동적 프로브를 사용하여 소프트웨어를 테스트하기 위한 방법 및 시스템을 제공한다. 본 발명의 동적 프로브는 소프트웨어의 컴파일 기간 동안 삽입될 필요 없이, 대신에 소프트웨어의 런타임 기간 동안 삽입될 수 있다. 런타임 기간 동안 프로브를 SUT에 도입하는 것은, 실제로 필요한 프로브들로만 삽입을 한정함으로써 CPU 주기 및 고가의 메모리 사용을 감소시키는 것을 비롯한 여러 장점들이 있다. 또한, 통신 체인(COM 체인)이 있는 SUT의 어느 곳에든지 프로 브를 본질적으로 도입할 수 있다. 따라서, 동적 프로브는 SUT의 테스트 및 디버깅 모두에서 융통성을 크게 개선시킨다. 또한, 프로브는 양방향 프로브인데, 이는 프로브가 데이터로 하여금 SUT로부터 테스트 시스템으로 또한 그 역으로 흐를 수 있게 하는 것을 의미한다.
바람직한 실시예에서, 프로빙되는 소프트웨어는, 런타임 기간 동안 기타 기존의 소프트웨어 모듈들에 링크될 수 있다는 점에서 동적이기도 하다. 동적 링크는 소프트웨어 모듈들의 전체 체인이 런타임 기간 동안 함께 링크되거나 또는 "구축"되게 할 수 있다.
플랫폼 내부에서는, 소프트웨어 모듈들의 링크를 실행하기 위하여 링크 메커니즘이 사용된다. 다른 유사한 링크 메커니즘으로는 예컨대, Microsoft COM 및 기타 독점적인 COM 시스템들이 있다. 이들 링크 메커니즘이 실제 링크를 다루기 위하여 어떤 유형의 제어 소프트웨어를 사용하면, 플랫폼 상에서 실행되는 고객 애플리케이션이, 링크되어 있는 특정 소프트웨어 모듈들 및 이들이 링크되어 있는 순서를 지시한다. 만약 사용자가 소프트웨어 모듈들의 체인 방식을 바꾸길 원하면, 사용자는 플랫폼 상에 있는 애플리케이션을 통해 바꿔야 한다. 따라서, 제어 소프트웨어가 플랫폼을 통해 고객 애플리케이션에게 그러한 기능성을 이출(export)하여야 한다.
본 발명의 실시예에 의하면, 데이터 스트림에서 동작하는 소프트웨어 모듈들의 체인은 "분해(broken up)"될 수 있고, 소프트웨어 모듈들 사이에 동적 테스트 및 검증 플랫폼(test and verification platform : TVP) 프로브가 도입될 수 있다. 여기서 사용됨에 있어서, "링크" 및 "체인"이란 용어는 데이터를 교환하는 소프트웨어 모듈들의 능력, 그렇지 않으면 서로 통신하는 능력을 말한다. 동적 프로브를 생성하기 위해서는, 퍼스널 컴퓨터(PC) 상의 고객 애플리케이션이 TVP 데이터베이스에 동적 프로브를 생성하는데, 여기서 동적 프로브에는 고유한 ID가 반복된다. 그 후, TVP 데이터베이스는 핸들을 위한 컴포넌트 매니저 또는 동적 프로브에 대한 링크를 요청한다. 그 후, 고객 PC 애플리케이션은, 제어 소프트웨어가, 동적 프로브가 원하는 위치에서 체인의 일부가 되도록 소프트웨어 모듈 체인을 재정렬하게 명령하도록 TVP에 명령한다. 일단 적소에 배치되면, 동적 프로브는 위에서 언급한 정적 프로브와 동일한 방식으로 테스트 시스템에 의해 취급된다. 그 후, 테스트 시스템의 사용자는 새로운 동적 프로브에 데이터를 주입할 수도 있고, 아니면 여기서 데이터를 추출할 수도 있다. 만약 동적 프로브가 제거되면, 위에서 설명한 절차가 역으로 실행된다.
일부 실시예에서, 소프트웨어 모듈들은 동적 프로브에 알려지지 않은 인터페이스를 포함할 수 있다. 따라서, 이러한 소프트웨어 모듈들 사이에 동적 프로브를 도입하기 위해서는, 이하 더욱 설명되는 바와 같이, 동적 프로브의 인터페이스가 다용도 인터페이스(general interface)가 되도록 설계하는 것이 바람직하다. 그리고, 데이터의 해석은 PC에서 실행 중인 고객 애플리케이션에게 맡겨 둔다.
우선 도 1a를 참조하면, 본 발명의 동적 프로빙 기술이 사용될 수 있는 소프트웨어 테스트 시스템(100)이 도시되어 있다. 소프트웨어 테스트 시스템(100)은 적어도 하나의 소프트웨어 동적 프로브(104)를 통해 SUT(102)에 접속되어 있다. 적어도 하나의 소프트웨어 동적 프로브(104)는 그 고유의 프로브 ID, 예컨대 PID 1, PID 2, PID 3 등에 의해 식별될 수 있다. 프로브 ID들의 생성은 도 2와 관련하여 이하 보다 상술된다.
동적 프로브(104)는 테스트 및 검증 플랫폼(TVP)(106)에 접속된다. (여기서, TVP는 독점적인 TVP 또는 당업자에게 공지되어 있는 표준 TVP일 수 있다.) 차례로, TVP(106)는 Debug MUX(108)와 같은 기타 테스트 모듈들(이에 제한되지 않음)에 연결된다. 차례로, Debug MUX(108)는 퍼스널 컴퓨터(PC)(110)에 접속된다. Debug MUX(108)는 PC(110)로부터의 모든 통신을 수신하고, 그 통신을 TVP(106)로 전송한다. PC(110)는 모든 테스트를 제어한다.
SUT(102)는 다수의 개별적인 소프트웨어 모듈들(102a, 102b, 102c, 102d)을 포함하며, 이들 4개는 도 1에 도시되어 있다. 이 소프트웨어 모듈들(102a, 102b, 102c, 102d)은 인코더, 이퀄라이저, 다용도 필터(general filter) 등(이에 제한되지 않음)과 같은 복수의 데이터 변수들 및 함수 인수들을 포함한다. 소프트웨어 모듈들(102a, 102b, 102c, 102d)은 서로에 대해 동적으로 링크될 수 있어야 한다. 즉, 소프트웨어 모듈들(102a, 102b, 102c, 102d)은 컴파일 시간 동안 처리될 수 있다. 이는 소프트웨어 모듈들(102a, 102b, 102c, 102d)의 체인이 런타임 시간 동안 따로따로 분리될 수 있게 한다.
동적 프로브(104)는 이 소프트웨어 모듈들(102a, 102b, 102c, 102d) 중 임의의 것 사이에 동적으로 배치될 수 있다. 동적 프로브(104)를 동적으로 배치한다는 것은, 동적 프로브(104)가 소프트웨어(102)의 컴파일 시간 대신 런타임 기간 동안 소프트웨어 모듈들(102a, 102b, 102c, 102d) 사이에 삽입될 수 있음을 의미한다. 또한, 동적 프로브(104)는 런타임 기간 동안 제거될 수도 있다. 런타임 기간 동안 동적 프로브(104)의 배치 및 제거를 허용함으로써, 관계없는 프로브들이 필요하지 않게 되어, 메모리 공간을 절약할 수 있다.
일부 실시예에서, 동적 프로브(104)는 복수의 파라미터들을 갖는 인터페이스들을 갖는 소프트웨어 모듈 사이에 삽입될 수 있다. 이 모듈들에 있어서, 동적 프로브(104)는 다용도 인터페이스를 갖는 것이 바람직하다. 다용도 인터페이스는 2개의 파라미터, 즉 데이터의 길이 및 데이터에 대한 포인터만을 필요로 하는 인터페이스이다. 비트 레이트 및 샘플링 주파수와 같은 기타 파라미터는 데이터에 숨겨져 있을 수 있다. 프로브는 이들 기타의 보다 구체적인 파라미터들을 필요로 하지 않는다.
다용도 인터페이스는 다른 것들 중에서, 소프트웨어 모듈들(102a, 102b, 102c, 102d)로부터 데이터를 추출하고, 또한 여기에 데이터를 주입할 수 있도록 설계되는 것이 바람직하다. 또한, 다용도 인터페이스는 소프트웨어 모듈들(102a, 102b, 102c, 102d)에 주입되거나 또는 이로부터 추출되는 데이터에 대한 포인터 및 프로브 ID를 포함한다. 다용도 인터페이스는 프로브(104)의 생성 및 제거를 용이하게 하는 방법을 더 포함하는 것이 바람직하다.
이제 도 1b를 참조하여, 소프트웨어 모듈들(102a 및 102b) 사이에 삽입된 동적 프로브(104)를 설명한다. 도시된 바와 같이, 프로브(104)는 2개의 소프트웨어 모듈들(102a 및 102b) 사이에 삽입되고, TVP(106)와 통신한다. TVP(106)는 또한 도 1a와 관련하여 상술된 바와 같이 Debug MUX(108)에 연결된다. 또한, Debug MUX(108)는 PC(110)에 연결된다.
도 1c는 프로브(104)가 제거된 소프트웨어 모듈들(102a, 102b)을 도시한다. 도시된 바와 같이, 소프트웨어 모듈들(102a, 102b)은 서로 연결되어 있다.
이제 도 2를 참조하여, 본 발명의 일 실시예에 따른 동적 프로브를 등록하기 위한 방법을 설명한다. 도시된 바와 같이, PC(110)는 TVP(106)를 이용하여 프로브를 생성한다(단계(202)). 그 후, TVP(106)는 컴포넌트 매니저(118)와 통신하여, 프로브 인터페이스에 대한 핸들을 획득한다(단계(204)). 그 후, 컴포넌트 매니저(118)는 TVP(106)로 핸들을 보내고(단계(206)), 그 후, TVP 프로브(104)를 데이터베이스에 배치시킨다(단계(207)). 그 후, 단계(208)에서, TVP(106)는 프로브 ID를 PC(110)로 복귀시킨다.
그 후, 단계(210)에서, PC(110)는 프로브가 소프트웨어 체인에 삽입되어야 하는지 아니면 여기에서 제거되어야 하는지 여부에 관한 명령어를 TVP(106)에 전송한다. 그 후, TVP(106)는 소프트웨어 체인을 재배열하라는 명령어를 제어 소프트웨어(116)에 포워딩한다(단계(212)). 단계(214)에서, 제어 소프트웨어(116)는 프로브가 소프트웨어 체인 내에 있음(또는 제거되었음)을 확인한다. 그 후, 단계(216)에서, TVP(106)는 프로브의 배치(또는 제거)에 관하여 PC(110)와 통신한다.
본 발명의 동적 프로빙 기술은 임의의 테스트 시스템에서 구현될 수 있다. 도 3은 동적 프로빙 기술을 구현하기 위한 예시적인 테스트 시스템(300)을 도시한다. 테스트 시스템(300)은 서로 통신하고 있는 테스터(302) 및 피테스트 장 치(304)를 포함한다. 테스터(302)는 CPU(306), 입출력 인터페이스 유닛(308) 및 저장 유닛(310)을 포함한 다수의 기능 컴포넌트들을 구비하는 통상적인 컴퓨터이다. 이들 컴포넌트들은 컴퓨터 분야의 당업자들에게 잘 알려져 있으므로, 여기서는 간략하게만 기술하도록 한다. CPU(306)는 운영 체제 및 운영 체제에서 실행 중인 임의의 소프트웨어를 포함한 테스터(302) 상의 모든 소프트웨어 프로그램들의 실행을 다룬다. 인터페이스 유닛(308)은 피테스트 장치(304)에 테스터(302)를 인터페이스하는 것뿐만 아니라 임의의 입출력 장치들(예컨대, 키보드, 마우스, 표시 장치, 프린터 등)을 피테스트 장치(304)에 접속시키는 역할도 한다. 저장 유닛(310)은 테스터(302) 상에서 실행 중인 소프트웨어 및 운영 체제의 실행에 필요할 수 있는 임의의 소프트웨어 프로그램 및/또는 데이터를 위하여 일시적인 저장 장치(예컨대, RAM) 및/또는 장기 저장 장치(예컨대, 하드 드라이브)를 제공한다.
소프트웨어 개발 툴(312)을 포함한 다수의 소프트웨어 애플리케이션들이 저장 유닛(310)에 저장되어 있다. 소프트웨어 개발 툴(312)은 Texas Instruments로부터의 Code Composer StudioTM 및 National Instruments로부터의 LabVIEW.TM. 또는 기타 유사한 소프트웨어 개발 툴과 같은 기존의 소프트웨어 개발 툴들과 동일한 방식으로 동작되고, 많은 동일한 특징들을 갖는다. 그러나, 본 발명의 실시예에 의하면, 소프트웨어 개발 툴(312)은 테스트 및 검증 플랫폼(TVP)(314)을 더 포함한다. TVP(314)는 소프트웨어 개발 툴(312)을 사용하여 테스트되는 임의의 소프트웨어의 양방향 프로빙을 제어할 수 있고, 프로빙되는 데이터를 분석할 수 있다. 구 체적으로, TVP(314)는 사용자가 결정한 대로 데이터가 피테스트 코드로부터 포획되거나, 피테스트 코드에 주입되거나, 또는 둘 다 될 수 있게 한다. 또한, 프로브 제어 및 분석 모듈(314)은 획득되는 데이터에 기초하여 사용자로 하여금 테스트 벡터들을 생성시키고, 또한 거꾸로 테스트 벡터들을 피테스트 코드에 주입시킬 수 있게 한다. 이는 사용자가 피테스트 코드의 동작 및 안정성을 모니터하고 테스트하는 것을 보다 용이하고 편리하게 한다.
본 실시예에서, 동적 프로브 명령어를 포함한 피테스트 코드는 테스터(302)와 통신하는 별도의 유닛, 즉 피테스트 장치(304)에서 실행된다. 테스터(302)와 같은 피테스트 장치(304)는 CPU(316), 입출력 인터페이스 유닛(318) 및 저장 유닛(320)을 포함한 다수의 기능 컴포넌트들을 구비하는 통상적인 컴퓨터이다. 피테스트 장치(304)의 컴포넌트들은 테스터(302)의 대응하는 부분에 기능적으로 유사하므로, 여기서는 설명하지 않기로 한다. 중요한 점은, 프로빙된 소스 코드, 및 동적 프로브 명령어 및 구현을 포함한 피테스트 코드(322)가 테스터(302)와는 별도로 저장되고 실행된다는 것이다. (프로브 명령어의 예에 대해서는 상술한 소스 코드의 예시적인 블록들을 참조한다.)
상술한 방법은 프로브가 실시간으로 삽입될 수 있게 하여, 이는 테스트를 실행 중인 사람에게 프로브가 필요할 때 프로브를 삽입할 수 있는 융통성을 부여한다. 또한, 프로브를 제거할 수 있기 때문에, 비활성화 프로브를 제거함으로써 또는 프로브가 원하는 테스트를 실행한 후에 프로브를 제거함으로써 메모리를 절약할 수 있다.
본 명세서에서 사용될 때, "포함한다/포함하는(comprises/comprising)"이란 용어는 기술된 특징들, 정수(integer)들, 단계들 또는 컴포넌트들의 존재를 특정하기 위하여 취해진 것이지만, 하나 이상의 다른 특징들, 정수들, 단계들, 컴포넌트들 또는 그 그룹들의 존재 또는 추가를 배제하지 않는다.
본 발명의 특정 실시예들 및 애플리케이션들이 예시되고 설명되었지만, 본 발명은 여기에 기재된 정확한 구조 및 구성에 한정되지 않고, 첨부되는 청구범위에서 규정되는 본 발명의 범주를 벗어나지 않고도 상기한 내용에 대해 수정 및 변형을 행할 수 있음을 이해하여야 할 것이다.

Claims (25)

  1. 복수의 소프트웨어 모듈들을 포함하는 소프트웨어의 테스트 방법으로서,
    상기 소프트웨어에 의해 사용되는 상기 복수의 소프트웨어 모듈들을 포함한 상기 소프트웨어를 실행시키는 단계;
    상기 복수의 소프트웨어 모듈들 중에서 서로 직접 링크되어 있는 2개의 소프트웨어 모듈들을 식별하는 단계;
    상기 소프트웨어가 실행 중인 동안, 상기 2개의 식별된 소프트웨어 모듈들 사이에 프로브를 삽입하는 단계; 및
    상기 2개의 식별된 소프트웨어 모듈들 사이에서 교환되는 데이터를 상기 프로브를 통해 테스트 시스템으로 출력함으로써, 상기 소프트웨어로부터 데이터를 추출하는 단계
    를 포함하는 소프트웨어 테스트 방법.
  2. 제1항에 있어서,
    상기 소프트웨어가 실행 중인 동안, 상기 2개의 식별된 소프트웨어 모듈들 사이에서 상기 프로브를 제거하는 단계를 더 포함하는 소프트웨어 테스트 방법.
  3. 제1항에 있어서,
    상기 프로브는 고유한 프로브 식별자를 포함하는 소프트웨어 테스트 방법.
  4. 제3항에 있어서,
    상기 고유한 프로브 식별자는 상기 소프트웨어의 테스트에 앞서 상기 프로브에 할당되고, 프로브 데이터베이스에 저장되는 소프트웨어 테스트 방법.
  5. 제3항에 있어서,
    상기 고유한 프로브 식별자는 상기 소프트웨어의 테스트 기간 동안 생성되는 소프트웨어 테스트 방법.
  6. 제3항에 있어서,
    상기 고유한 프로브 식별자는 프로브 데이터베이스에 저장되는 소프트웨어 테스트 방법.
  7. 제1항에 있어서,
    상기 2개의 식별된 소프트웨어 모듈들 사이에서 교환되는 데이터를 상기 프로브를 통해 상기 테스트 시스템으로부터의 데이터와 교체함으로써, 상기 소프트웨어에 데이터를 주입하는 단계를 더 포함하는 소프트웨어 테스트 방법.
  8. 제1항에 있어서,
    상기 프로브는, 상기 프로브가 데이터의 길이 및 데이터에 대한 포인터만을 사용하여 데이터를 소프트웨어 모듈들로부터 추출하고 또한 소프트웨어 모듈들에 데이터를 주입할 수 있게 하는 다용도 인터페이스(general interface)를 포함하는 소프트웨어 테스트 방법.
  9. 제1항에 있어서,
    상기 소프트웨어가 실행 중인 동안, 상기 복수의 소프트웨어 모듈들을 함께 링크시키는 단계를 더 포함하는 소프트웨어 테스트 방법.
  10. 소프트웨어를 테스트하기 위한 시스템으로서,
    복수의 소프트웨어 모듈들을 포함하는 피테스트 소프트웨어(software under test);
    상기 피테스트 소프트웨어에 연결되는 적어도 하나의 애플리케이션; 및
    상기 적어도 하나의 애플리케이션을 제어하는 테스터 유닛
    을 포함하고,
    상기 테스터 유닛은, 상기 적어도 하나의 애플리케이션이,
    상기 피테스트 소프트웨어에 의해 사용되는 임의의 소프트웨어 모듈들을 포함한 상기 피테스트 소프트웨어를 실행하게 하고,
    상기 피테스트 소프트웨어에 의해 사용되는 소프트웨어 모듈들 중에서, 서로 직접 통신하고 있는 2개의 소프트웨어 모듈들을 식별하게 하고,
    상기 피테스트 소프트웨어가 실행 중인 동안, 상기 2개의 식별된 소프트웨어 모듈들 사이에 프로브를 삽입하게 하고,
    상기 2개의 식별된 소프트웨어 모듈들 사이에서 교환되는 데이터를 상기 프로브를 통해 출력함으로써, 상기 피테스트 소프트웨어로부터 데이터를 추출하게 하도록 구성되는 소프트웨어 테스트 시스템.
  11. 제10항에 있어서,
    상기 테스터는, 상기 피테스트 소프트웨어가 실행 중인 동안, 상기 적어도 하나의 애플리케이션이 상기 2개의 식별된 소프트웨어 모듈들 사이로부터 상기 프로브를 제거하게 하도록 더 구성되는 소프트웨어 테스트 시스템.
  12. 제10항에 있어서,
    상기 테스터는, 상기 적어도 하나의 애플리케이션이 상기 2개의 식별된 소프트웨어 모듈들 사이에서 교환되는 데이터를 상기 프로브를 통해 교체함으로써, 상기 피테스트 소프트웨어에 데이터를 주입하게 하도록 더 구성되는 소프트웨어 테스트 시스템.
  13. 제10항에 있어서,
    상기 테스터 유닛은 상기 적어도 하나의 애플리케이션을 제어하기 위하여 테스트 및 검증 플랫폼(test and verification platform)을 포함하는 소프트웨어 테스트 시스템.
  14. 제10항에 있어서,
    상기 적어도 하나의 애플리케이션은 PC에서 실행되는 소프트웨어 테스트 시스템.
  15. 복수의 소프트웨어 모듈들을 포함하는 소프트웨어의 테스트 방법으로서,
    상기 소프트웨어가 실행 중인 동안, 상기 소프트웨어에 대한 프로브를 요구하는 단계;
    컴포넌트 매니저로부터 상기 프로브에 대한 핸들을 획득하는 단계;
    상기 복수의 소프트웨어 모듈들 중에서, 서로 직접 링크되어 있는 테스트될 2개의 소프트웨어 모듈들을 식별하는 단계; 및
    상기 2개의 식별된 소프트웨어 모듈들 사이에 상기 프로브의 핸들을 삽입하는 단계
    를 포함하는 소프트웨어 테스트 방법.
  16. 제15항에 있어서,
    상기 프로브를 통해 상기 소프트웨어로부터 추출되는 데이터를 모니터하는 단계를 더 포함하는 소프트웨어 테스트 방법.
  17. 제15항에 있어서,
    상기 소프트웨어가 실행 중인 동안, 상기 2개의 식별된 소프트웨어 모듈들 사이로부터 상기 프로브의 핸들을 제거하는 단계를 더 포함하는 소프트웨어 테스트 방법.
  18. 제15항에 있어서,
    상기 소프트웨어가 실행 중인 동안, 상기 프로브를 프로브 데이터베이스로부터 등록해제(deregistering)하는 단계를 더 포함하는 소프트웨어 테스트 방법.
  19. 제15항에 있어서,
    상기 소프트웨어가 실행 중인 동안, 상기 2개의 소프트웨어 모듈들이 함께 링크되는 소프트웨어 테스트 방법.
  20. 복수의 데이터 변수들 및 함수 인수들을 포함하는 소프트웨어를 테스트하기 위한 장치로서,
    중앙 처리 유닛; 및
    상기 중앙 처리 유닛에 접속되는 저장 유닛
    을 포함하고,
    상기 저장 유닛은, 상기 중앙 처리 유닛에게,
    상기 소프트웨어를 실행하고,
    상기 소프트웨어에 의해 사용되는 상기 변수들 또는 인수들 중 적어도 하나 에 대한 어드레스 위치를 식별하고,
    상기 어드레스 위치에 프로브를 동적으로 삽입하고,
    상기 어드레스 위치에 저장된 임의의 데이터를 상기 중앙 처리 유닛으로 출력함으로써 상기 데이터를 모니터하라고 명령하기 위한 컴퓨터 판독가능 명령어를 저장하는 소프트웨어 테스트 장치.
  21. 제20항에 있어서,
    상기 저장 유닛은, 상기 중앙 처리 유닛에게, 상기 중앙 처리 유닛으로부터의 데이터를 상기 어드레스 위치에 입력함으로써 상기 어드레스 위치에 이미 저장되어 있던 임의의 데이터를 교체하라고 명령하기 위한 컴퓨터 판독가능 명령어를 더 저장하는 소프트웨어 테스트 장치.
  22. 피테스트 장치(device under test)로서,
    소프트웨어 체인에 링크되어 있는 복수의 소프트웨어 모듈들; 및
    상기 소프트웨어 모듈들에 연결되고, 상기 소프트웨어 모듈들을 관리하기 위한 컴포넌트 매니저
    를 포함하고,
    상기 소프트웨어 모듈들은, 상기 소프트웨어의 동작 기간 동안, 상기 복수의 소프트웨어 모듈들 중 2개 사이에 프로브가 삽입될 수 있도록, 사용 기간 동안 분리되고 재정렬되도록 구성되는 피테스트 장치.
  23. 제22항에 있어서,
    상기 프로브는, 상기 소프트웨어의 동작 기간 동안, 상기 복수의 소프트웨어 모듈들 중 2개 사이로부터 또한 제거될 수 있는 피테스트 장치.
  24. 복수의 소프트웨어 모듈들을 포함하는 소프트웨어의 테스트 방법으로서,
    소프트웨어 프로브를 생성하는 단계;
    상기 소프트웨어 프로브를 식별하는 프로브 식별자를 수신하는 단계;
    상기 복수의 소프트웨어 모듈들에 상기 소프트웨어 프로브를 삽입하거나 또는 상기 복수의 소프트웨어 모듈들에서 상기 소프트웨어 프로브를 제거하라고 테스터에게 명령하는 단계; 및
    상기 소프트웨어 프로브가 삽입되었거나 또는 제거되었다는 확인(confirmation)을 수신하는 단계
    를 포함하는 소프트웨어 테스트 방법.
  25. 복수의 소프트웨어 모듈들을 포함하는 소프트웨어의 테스트 방법으로서,
    프로브에 대한 핸들을 획득하는 단계;
    프로브 데이터베이스에 프로브 식별자를 배치하는 단계;
    상기 프로브 식별자를 퍼스널 컴퓨터에 리턴하는 단계;
    상기 복수의 소프트웨어 모듈들에 상기 프로브를 삽입하거나 또는 상기 복수 의 소프트웨어 모듈들에서 상기 프로브를 제거하라는 명령어를 수신하는 단계;
    상기 복수의 소프트웨어 모듈들을 재배열하는 단계;
    상기 복수의 소프트웨어 모듈들에 있는 상기 프로브의 상태를 확인하는 단계; 및
    상기 프로브의 배치를 확인하는 메시지를 상기 퍼스널 컴퓨터에 전송하는 단계
    를 포함하는 소프트웨어 테스트 방법.
KR1020087006759A 2005-09-23 2006-09-22 소프트웨어의 테스트 및 모니터를 위한 데이터의 주입 및추출을 위한 동적 프로브에 대한 방법 및 시스템 KR20080048035A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/234,846 US20070074175A1 (en) 2005-09-23 2005-09-23 Method and system for dynamic probes for injection and extraction of data for test and monitoring of software
US11/234,846 2005-09-23

Publications (1)

Publication Number Publication Date
KR20080048035A true KR20080048035A (ko) 2008-05-30

Family

ID=37864004

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087006759A KR20080048035A (ko) 2005-09-23 2006-09-22 소프트웨어의 테스트 및 모니터를 위한 데이터의 주입 및추출을 위한 동적 프로브에 대한 방법 및 시스템

Country Status (11)

Country Link
US (1) US20070074175A1 (ko)
EP (1) EP1934750A2 (ko)
JP (1) JP2009509258A (ko)
KR (1) KR20080048035A (ko)
CN (1) CN101268448A (ko)
BR (1) BRPI0616112A2 (ko)
CA (1) CA2623832A1 (ko)
RU (1) RU2008115930A (ko)
TW (1) TW200741450A (ko)
WO (1) WO2007039486A2 (ko)
ZA (1) ZA200802491B (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101013516B1 (ko) * 2008-07-25 2011-02-10 (주)인터넷커머스코리아 윈도우 응용 프로그램의 자동 테스트를 위한 이벤트 기록및 재생 방법, 및 이벤트 기록 및 재생 프로그램을 기록한컴퓨터로 판독 가능한 기록매체
WO2012002635A1 (ko) * 2010-06-28 2012-01-05 현대자동차 주식회사 시스템 테스트 장치
WO2012153879A1 (ko) * 2011-05-09 2012-11-15 현대자동차 주식회사 예외처리 테스트 장치 및 방법

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8752007B2 (en) * 2008-03-26 2014-06-10 Avaya Inc. Automatic generation of run-time instrumenter
US8739145B2 (en) * 2008-03-26 2014-05-27 Avaya Inc. Super nested block method to minimize coverage testing overhead
US8291399B2 (en) * 2008-03-26 2012-10-16 Avaya Inc. Off-line program analysis and run-time instrumentation
US8484623B2 (en) * 2008-03-26 2013-07-09 Avaya, Inc. Efficient program instrumentation
US9645912B2 (en) * 2008-12-01 2017-05-09 Microsoft Technology Licensing, Llc In-place function modification
JP5886878B2 (ja) * 2011-01-07 2016-03-16 アビニシオ テクノロジー エルエルシー フロー分析計装
US8719799B2 (en) * 2011-03-07 2014-05-06 International Business Machines Corporation Measuring coupling between coverage tasks and use thereof
US8719789B2 (en) * 2011-03-07 2014-05-06 International Business Machines Corporation Measuring coupling between coverage tasks and use thereof
WO2012124841A1 (ko) 2011-03-15 2012-09-20 현대자동차 주식회사 통신 테스트 장치 및 방법
EP2810166A4 (en) * 2012-01-31 2016-04-20 Hewlett Packard Development Co IDENTIFY A FAILED CODE CHANGE
KR101438979B1 (ko) * 2012-12-31 2014-09-11 현대자동차주식회사 소프트웨어 검사 방법 및 시스템
CN103984632B (zh) * 2014-05-29 2016-08-24 东南大学 一种基于错误传播分析的sdc脆弱指令识别方法
US9880818B2 (en) * 2014-11-05 2018-01-30 Ab Initio Technology Llc Application testing
US10255166B2 (en) * 2015-03-05 2019-04-09 Fujitsu Limited Determination of valid input sequences for an unknown binary program
US10936289B2 (en) 2016-06-03 2021-03-02 Ab Initio Technology Llc Format-specific data processing operations
EP3497574A4 (en) 2016-08-09 2020-05-13 Sealights Technologies Ltd. SYSTEM AND METHOD FOR THE CONTINUOUS EXAMINATION AND PROVISION OF SOFTWARE
TWI655535B (zh) * 2017-11-15 2019-04-01 兆豐國際商業銀行股份有限公司 程式異動管理系統及程式異動管理方法
CN107992408B (zh) * 2017-11-16 2019-06-07 广东马上到网络科技有限公司 一种软件探测器的软件探测方法
US11086759B2 (en) 2018-09-27 2021-08-10 SeaLights Technologies LTD System and method for probe injection for code coverage
US11573885B1 (en) 2019-09-26 2023-02-07 SeaLights Technologies LTD System and method for test selection according to test impact analytics
CN114780958B (zh) * 2022-04-14 2023-03-24 深圳开源互联网安全技术有限公司 一种埋点自动插桩方法、装置及计算机可读存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4802165A (en) * 1986-10-08 1989-01-31 Enteleki, Inc. Method and apparatus of debugging computer programs
US6351843B1 (en) * 1998-08-31 2002-02-26 International Business Machines Corporation Dynamically inserting a function into an application executable at runtime
US8020148B2 (en) * 2002-09-23 2011-09-13 Telefonaktiebolaget L M Ericsson (Publ) Bi-directional probing and testing of software
US20040154001A1 (en) * 2003-02-05 2004-08-05 Haghighat Mohammad R. Profile-guided regression testing

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101013516B1 (ko) * 2008-07-25 2011-02-10 (주)인터넷커머스코리아 윈도우 응용 프로그램의 자동 테스트를 위한 이벤트 기록및 재생 방법, 및 이벤트 기록 및 재생 프로그램을 기록한컴퓨터로 판독 가능한 기록매체
WO2012002635A1 (ko) * 2010-06-28 2012-01-05 현대자동차 주식회사 시스템 테스트 장치
US9354996B2 (en) 2010-06-28 2016-05-31 Hyundai Motor Company System test apparatus
WO2012153879A1 (ko) * 2011-05-09 2012-11-15 현대자동차 주식회사 예외처리 테스트 장치 및 방법
US9047401B2 (en) 2011-05-09 2015-06-02 Hyundai Motor Company Exception handling test apparatus and method

Also Published As

Publication number Publication date
WO2007039486A2 (en) 2007-04-12
CN101268448A (zh) 2008-09-17
EP1934750A2 (en) 2008-06-25
BRPI0616112A2 (pt) 2012-12-18
JP2009509258A (ja) 2009-03-05
US20070074175A1 (en) 2007-03-29
ZA200802491B (en) 2009-09-30
RU2008115930A (ru) 2009-10-27
TW200741450A (en) 2007-11-01
WO2007039486A3 (en) 2007-07-26
CA2623832A1 (en) 2007-04-12

Similar Documents

Publication Publication Date Title
KR20080048035A (ko) 소프트웨어의 테스트 및 모니터를 위한 데이터의 주입 및추출을 위한 동적 프로브에 대한 방법 및 시스템
US20110271256A1 (en) Bi-directional probing of software
US7908590B1 (en) System and method for automatically creating test cases through a remote client
CN101617296B (zh) 用于测试和监测软件的动态探测认证方法及系统
WO2011038350A1 (en) A computing device for enabling concurrent testing
Dwyer et al. Adaptive online program analysis
US5903759A (en) Software performance analysis using hardware analyzer
Brörkens et al. Dynamic event generation for runtime checking using the JDI
Parsons et al. Extracting interactions in component-based systems
Vos et al. FITTEST: A new continuous and automated testing process for future internet applications
US7451358B2 (en) Test executive system with automatic expression logging and parameter logging
Ahmadi et al. mCUTE: a model-level concolic unit testing engine for UML state machines
US20060074625A1 (en) Program development suport device, program execution device, compile method and debug method
Metsa et al. Testing non-functional requirements with aspects: An industrial case study
Trümper et al. Maintenance of embedded systems: Supporting program comprehension using dynamic analysis
Bangare et al. Automated testing in development phase
Rocha et al. A Strategy to Improve Component Testability without Source Code.
Weffenstette et al. DYNAMUT: AMutation TESTING TOOL FOR INDUSTRY-LEVEL EMBEDDED SYSTEM APPLICATIONS
Zhang et al. Non-Intrusive Failure Reproduction for Distributed Systems using the Partial Trace Principle
Pohjolainen SOFTWARE TESTING TOOLS: 6
Ribeiro Rocha et al. A strategy to improve component testability without source code
Rose Getting the Most Out of an Automated Test Tool
Jaquier Code Coverage for Dotty
Zapreev et al. MRMC TEST SUITE
Wang et al. Research on automatic instrumentation for bytecode testing and debugging

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid