KR101038965B1 - 테스트 시스템 구성 방법, 컴퓨터 판독가능 매체 및 컴퓨팅 시스템 - Google Patents

테스트 시스템 구성 방법, 컴퓨터 판독가능 매체 및 컴퓨팅 시스템 Download PDF

Info

Publication number
KR101038965B1
KR101038965B1 KR1020100007531A KR20100007531A KR101038965B1 KR 101038965 B1 KR101038965 B1 KR 101038965B1 KR 1020100007531 A KR1020100007531 A KR 1020100007531A KR 20100007531 A KR20100007531 A KR 20100007531A KR 101038965 B1 KR101038965 B1 KR 101038965B1
Authority
KR
South Korea
Prior art keywords
software patches
software
source code
computer system
patches
Prior art date
Application number
KR1020100007531A
Other languages
English (en)
Other versions
KR20100095368A (ko
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 KR20100095368A publication Critical patent/KR20100095368A/ko
Application granted granted Critical
Publication of KR101038965B1 publication Critical patent/KR101038965B1/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/368Test management for test version control, e.g. updating test cases to a new software version
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

본 명세서는 컴퓨터 테스트 시스템에 관한 것으로서, 보다 구체적으로 컴퓨터 테스트 시스템을 자동으로 구성하는 것에 관한 것이다. 방법, 컴퓨터 프로그램 제품 및 시스템은 인필드 컴퓨터 시스템 상에 인스톨된 하나 이상의 소프트웨어 패치들의 리스트를 수신하며, 리스트는 하나 이상의 소프트웨어 패치들 각각의 버전을 포함한다. 하나 이상의 소프트웨어 패치들 각각의 버전에 대응하는 소스 코드 개정 툴에 의해 관리되는 소스 코드가 식별된다. 컴파일링 및 인스톨 시스템은 인필드 컴퓨터 시스템 상에 인스톨된 소프트웨어 패치들 각각에 대한 소스 코드 개정 툴에 의해 관리되는 소스 코드로부터 하나 이상의 새로이 컴파일링된 소프트웨어 패치들을 컴파일링한다. 컴파일링 및 인스톨 시스템은 테스트 컴퓨터 시스템 상에 하나 이상의 새로이 컴파일링된 소프트웨어 패치들을 자동으로 인스톨하여 인필드 컴퓨터 시스템을 복제한다.

Description

테스트 시스템 구성 방법, 컴퓨터 판독가능 매체 및 컴퓨팅 시스템{TEST SYSTEM CONFIGURATION METHOD AND SYSTEM}
본 명세서는 컴퓨터 테스트 시스템에 관한 것으로서, 보다 구체적으로는 컴퓨터 테스트 시스템을 자동으로 구성하는 것에 관한 것이다.
필드 내에 인스톨되는 소프트웨어 및 컴퓨터 시스템은 흔히 소프트웨어 버그 또는 구성 문제로 인해 고장 날 수 있다. 서비스 팀은 서비스 기술자를 그 위치에 보내어 문제를 진단하고 수리해야만 할 수도 있다. 그러나, 온 사이트 서비스 콜(on-site service calls)은 비용이 많이 들 수 있다. 로컬 테스트 시스템 상에 인필드 컴퓨터 시스템(in-field computer system)을 복제하는 것이 보다 쉽고 보다 저렴할 수 있다.
인필드 컴퓨터 시스템을 복제하는 것은, 특히 구성이 복잡하거나 인필드 컴퓨터가 멀리 있는 경우에 곤란할 수 있다. 많은 컴퓨터 시스템은 인스톨된 다수의 소프트웨어 제품 및 소프트웨어 패치를 구비하고 있다. 소프트웨어 제품 및 소프트웨어 패치는 부적절하게 구성될 수도 있고, 또는 서로 상호 호환되지 않을 수도 있으며, 또는 버그를 포함할 수도 있다. 무엇인가를 더욱 복잡하게 하기 위해, 각각의 소프트웨어 제품 및 소프트웨어 패치는 두 가지 이상의 버전을 포함할 수 있다. 인필드 시스템을 적절히 복제하고 문제를 적절히 진단하기 위해, 기술자는 테스트 컴퓨터 시스템 상에 각각의 소프트웨어 제품 및 소프트웨어 패치의 정확한 버전을 인스톨해야만 할 수도 있다. 추가로, 소프트웨어 제품 및 패치는 특정한 순서의 인스톨을 요구할 수도 있다. 또한, 정확한 소프트웨어 제품 및 패치 인스톨은 인스톨에 쓸모 없을 수도 있으며, 단지 컴파일링되지 않은 소스 코드 형태로만 존재할 수도 있다.
테스트 시스템 상에 소프트웨어 제품 및 패치를 수동으로 인스톨함으로써 인필드 컴퓨터 시스템을 복제하는 것은 비용이 많인 들고, 시간 소모적이며, 오류가 일어나기 쉽다. 인필드 컴퓨터 시스템을 자동으로 복제하는 시스템은 인필드 컴퓨터 시스템과의 문제를 진단하는 것과 연관된 비용, 시간 및 오류를 감소시킬 수 있다.
일 실시예에서, 테스트 시스템을 구성하는 방법은 인필드 컴퓨터 시스템(in-field computer system) 상에 인스톨된 하나 이상의 소프트웨어 제품들의 리스트를 수신하는 단계를 포함한다. 리스트는 하나 이상의 소프트웨어 패치들 각각의 버전을 포함한다. 방법은 하나 이상의 소프트웨어 패치들 각각의 버전에 대응하는 소스 코드 개정 툴(source code revision tool)에 의해 관리되는 소스 코드를 식별한다. 컴파일링 및 인스톨 시스템은 인필드 컴퓨터 시스템 상에 인스톨된 각 소프트웨어 패치마다 소스 코드 개정 툴에 의해 관리되는 소스 코드로부터 하나 이상의 새로이 컴파일링된 소프트웨어 패치들을 자동으로 컴파일링한다. 컴파일링 및 인스톨 시스템은 또한 테스트 컴퓨터 시스템 상에 하나 이상의 새로이 컴파일링된 소프트웨어들을 인스톨하여 인필드 컴퓨터 시스템을 복제한다.
다음 특징들 중의 하나 이상이 포함될 수 있다. 하나 이상의 소프트웨어 패치들의 리스트는 인필드 컴퓨터 시스템 상에 하나 이상의 소프트웨어 패치들의 인스톨에 의해 생성 또는 첨부될 수 있다. 인필드 컴퓨터 시스템 상에 인스톨되는 하나 이상의 소프트웨어 패치들의 리스트는 또한 인필드 컴퓨터 시스템 상에 인스톨되는 하나 이상의 소프트웨어 애플리케이션들의 리스트를 포함할 수 있다. 소스 코드를 식별하는 것은 소스 코드의 작명 규칙(naming convention)과 하나 이상의 소프트웨어 패치들 각각의 버전을 매칭시키는 단계 또는 고유 식별자를 갖는 소스 코드와 하나 이상의 소프트웨어 패치들 각각의 버전을 매칭시키는 단계를 포함할 수 있다.
하나 이상의 새로이 컴파일링된 소프트웨어 패치들을 자동으로 컴파일링하는 단계는 하나 이상의 새로이 컴파일링된 소프트웨어 패치들에 의해 요구되는 필수 소프트웨어 패치를 컴파일링하는 단계를 포함할 수 있다. 하나 이상의 새로이 컴파일링된 소프트웨어 패치들을 자동으로 인스톨하는 단계는 하나 이상의 새로이 컴파일링된 소프트웨어 패치들에 의해 요구되는 하나 이상의 필수 소프트웨어 패치들을 인스톨하는 단계를 포함할 수 있다.
방법은 또한 새로이 컴파일링된 소프트웨어 패키지의 인스톨 순서를 결정할 수도 있다. 인스톨 순서는 소스 코드의 전달 날짜, 소스 코드의 변경 세트의 식별자, 하나 이상의 새로이 컴파일링된 소프트웨어 패치들의 식별자, 인필드 컴퓨터 시스템 상에 인스톨된 하나 이상의 소프트웨어 패치들의 식별자, 및/또는 인필드 컴퓨터 시스템 상에 위치하는 레지스트리 파일로부터의 정보에 기초할 수 있다.
다른 실시예에서, 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체 상에 상주하며, 컴퓨터 판독가능 매체 상에 저장되는 다수의 인스트럭션을 포함하되, 프로세서에 의해 실행될 때, 프로세서로 하여금 인필드 컴퓨터 시스템 상에 인스톨된 하나 이상의 소프트웨어 패치들의 리스트를 수신하는 단계를 포함하는 동작을 수행하게 한다. 리스트는 하나 이상의 소프트웨어 패치들 각각의 버전을 포함한다. 동작은 하나 이상의 소프트웨어 패치들 각각의 버전에 대응하는 소스 코드 개정 툴에 의해 관리되는 소스 코드를 식별한다. 동작은 인필드 컴퓨터 시스템 상에 인스톨된 각각의 소프트웨어 패치에 대해 소스 코드 개정 툴에 의해 관리되는 소스 코드로부터 하나 이상의 새로이 컴파일링된 소프트웨어 패치들을 자동으로 컴파일링한다. 동작은 또한 테스트 컴퓨터 시스템 상에 하나 이상의 새로이 컴파일링된 소프트웨어 패치들을 인스톨하여 인필드 컴퓨터 시스템을 복제한다.
다음 특징들 중 하나 이상이 포함될 수 있다. 하나 이상의 소프트웨어 패치들의 리스트는 인필드 컴퓨터 시스템 상에 하나 이상의 소프트웨어 패치들을 인스톨하여 생성 또는 첨부될 수 있다. 인필드 컴퓨터 시스템 상에 인스톨되는 하나 이상의 소프트웨어 패치들의 리스트는 또한 인필드 컴퓨터 시스템 상에 인스톨되는 하나 이상의 소프트웨어 애플리케이션들의 리스트를 포함할 수 있다. 소스 코드를 식별하는 것은 소스 코드의 작명 규칙과 하나 이상의 소프트웨어 패치들 각각의 버전을 매칭시키는 것 또는 고유 식별자를 갖는 소스 코드와 하나 이상의 소프트웨어 패치들 각각의 버전을 매칭시키는 것을 포함할 수 있다.
하나 이상의 새로이 컴파일링된 소프트웨어 패치들을 자동으로 컴파일링하는 것은 하나 이상의 새로이 컴파일링된 소프트웨어 패치들에 의해 요구되는 필수 소프트웨어 패치를 컴파일링하는 것을 포함할 수 있다. 하나 이상의 새로이 컴파일링된 소프트웨어 패치들을 자동으로 인스톨하는 것은 하나 이상의 새로이 컴파일링된 소프트웨어 패치들에 의해 요구되는 하나 이상의 필수 소프트웨어 패치들을 컴파일링하는 것을 포함할 수 있다.
동작은 또한 새로이 컴파일링된 소프트웨어 패키지의 인스톨 순서를 결정할 수도 있다. 인스톨 순서는 소스 코드의 배송일, 소스 코드의 변경 세트의 식별자, 인필드 컴퓨터 시스템 상에 인스톨된 하나 이상의 새로이 컴파일링된 소프트웨어 패치들의 식별자, 및/또는 인필드 컴퓨터 시스템 상에 위치한 레지스트리 파일로부터의 정보에 기초할 수 있다.
다른 실시예에서, 시스템은 적어도 하나의 프로세서, 적어도 하나의 프로세서와 연결된 적어도 하나의 메모리 아키텍처, 및 인필드 컴퓨터 시스템 상에 인스톨된 하나 이상의 소프트웨어 패치들의 리스트를 수신하는 동작을 포함하는 동작들을 수행하는 하나 이상의 세트들의 소프트웨어 인스트럭션들을 포함한다. 그 리스트는 하나 이상의 소프트웨어 패치들 각각의 버전을 포함한다. 동작들은, 하나 이상의 소프트웨어 패치들 각각의 버전에 대응하는 소스 코드 개정 툴에 의해 관리되는 소스 코드를 식별한다. 동작들은 인필드 컴퓨터 시스템 상에 인스톨된 소프트웨어 패치들 각각에 대한 소스 코드 개정 툴에 의해 관리되는 소스 코드로부터 하나 이상의 새로이 컴파일링된 소프트웨어 패치들을 자동으로 컴파일링한다. 동작들은 또한 테스트 컴퓨터 시스템 상에 하나 이상의 새로이 컴파일링된 소프트웨어 패치들을 자동으로 인스톨하여 인필드 컴퓨터 시스템을 복제한다.
다음 특징들 중 하나 이상이 포함될 수 있다. 하나 이상의 소프트웨어 패치들의 리스트는 인필드 컴퓨터 시스템 상에 하나 이상의 소프트웨어 패치들의 인스톨에 의해 생성되거나 첨부될 수 있다. 인필드 컴퓨터 상에 인스톨된 하나 이상의 소프트웨어 패치들의 리스트는 또한 인필드 컴퓨터 시스템 상에 인스톨된 하나 이상의 소프트웨어 애플리케이션들의 리스트를 포함할 수 있다. 소스 코드를 식별하는 것은 소스 코드의 작명 규칙과 하나 이상의 소프트웨어 패치들의 버전을 매칭시키거나 고유 식별자를 갖는 소스 코드와 하나 이상의 소프트웨어 패치들 각각의 버전을 매칭시키는 것을 포함할 수 있다.
하나 이상의 새로이 컴파일링된 소프트웨어 패치들을 자동으로 컴파일링하는 것은 하나 이상의 새로이 컴파일링된 소프트웨어 패치들에 의해 요구되는 하나 이상의 필수 소프트웨어 패치들을 자동으로 컴파일링하는 것을 포함할 수 있다. 하나 이상의 새로이 컴파일링된 소프트웨어 패치들을 자동으로 인스톨하는 것은 하나 이상의 새로이 컴파일링된 소프트웨어 패치들에 의해 요구되는 하나 이상의 필수 소프트웨어 패치들을 자동으로 인스톨하는 것을 포함할 수 있다.
동작들은 새로이 컴파일링된 소프트웨어 패키지들의 인스톨 순서를 결정하는 것을 포함할 수 있다. 인스톨 순서를 결정하는 것은 소스 코드의 배송일, 소스 코드의 변경 세트의 식별자, 하나 이상의 새로이 컴파일링된 소프트웨어 패치들의 식별자, 인필드 컴퓨터 시스템 상에 인스톨된 하나 이상의 소프트웨어 패치들의 식별자, 및 인필드 컴퓨터 시스템 상에 위치한 레지스트리 파일로부터의 정보에 기초할 수 있다.
하나 이상의 구현물들의 세부사항은 아래의 첨부한 도면 및 설명에서 기재된다. 다른 특징 및 이점은 설명, 도면 및 특허청구범위로부터 명백해질 것이다.
도면에서 유사한 참조 표시는 유사한 엘리먼트를 나타낸다.
도 1은 분산형 컴퓨팅 네트워크에 연결된 테스트 시스템 구성 프로세스의 도식도,
도 2는 도 1의 테스트 시스템 구성 프로세스의 흐름도,
도 3은 도 1의 테스트 시스템 구성 프로세스의 데이터 및 정보 흐름의 흐름도이다.
시스템 개관( System Overview )
도 1은 네트워크(14)(예를 들어, 인터넷 또는 근거리 통신망)에 접속될 수 있는 서버 컴퓨터(12) 상에 상주하고 그에 의해 실행될 수 있는 테스트 시스템 구성 프로세스(10)를 도시하고 있다. 서버 컴퓨터(12)의 실례로는, 개인 컴퓨터, 서버 컴퓨터, 일련의 서버 컴퓨터들, 미니 컴퓨터, 및 대형 컴퓨터(mainframe computer)가 포함될 수 있지만, 이러한 것들로 제한되는 것은 아니다. 서버 컴퓨터(12)는 네트워크 운영 체제를 구동하는 웹 서버(또는 일련의 서버들)일 수 있으며, 그것의 실례로는, 예컨대 Microsoft® Windows® XP Server, Novell Netware®, 또는 Redhat® Linux®가 포함될 수 있지만, 이러한 것들로 제한되는 것은 아니다(Microsoft 및 Windows는 미국, 다른 국가, 또는 양측 모두에서 Microsoft Corporation의 상표이고, Novell 및 NewWare는 미국, 다른 국가, 또는 양측 모두에서 Red Hat Corporation의 상표 또는 등록 상표이며, Red Hat은 미국, 다른 국가, 또는 양측 모두에서 Red Hat Corporation의 상표 또는 등록 상표이고, Linux는 미국, 다른 국가, 또는 양측 모두에서 Linus Torvalds의 등록 상표이다).
이후에 보다 상세히 논의되겠지만, 테스트 시스템 구성 프로세스(10)는 인필드 컴퓨터 시스템(18) 상에 인스톨된 하나 이상의 소프트웨어 패치들(16)의 리스트를 포함할 수 있다. 리스트는 인필드 컴퓨터 시스템(18) 상에 인스톨된 하나 이상의 소프트웨어 패치들(16) 각각의 버전을 포함할 수 있다. 테스트 시스템 구성 프로세스(10)는 또한 하나 이상의 소프트웨어 패치들(16) 각각의 버전에 대응하는 소스 코드 개정 툴(source code revision tool)(20)에 의해 관리되는 소스 코드를 식별할 수 있다. 테스트 시스템 구성(10)은 인필드 컴퓨터 시스템(18) 상에 인스톨된 소프트웨어 패치들(16) 각각에 대하여 소스 코드 개정 툴(20)에 의해 관리되는 소스 코드로부터 하나 이상의 새로이 컴파일링된 소프트웨어 패치들(22)을 자동으로 컴파일링할 수 있다. 테스트 시스템 구성 프로세스(10)는 또한 테스트 컴퓨터 시스템(24) 상에 하나 이상의 새로이 컴파일링된 소프트웨어 패치들(22)을 인스톨하여 인필드 컴퓨터 시스템(18)을 복제할 수 있다.
하나 이상의 소프트웨어 모듈들 및 하나 이상의 세트들의 소프트웨어 인스트럭션들을 포함할 수 있고, 서버 컴퓨터(12)에 연결된 저장 디바이스(26) 상에 저장될 수 있는 인스트럭션 세트들 및 테스트 시스템 구성 프로세스(10)의 서브 루틴들은 서버 컴퓨터(12) 내에 포함된 하나 이상의 프로세서들(도시하지 않음) 및 하나 이상의 메모리 아키텍처들(도시하지 않음)에 의해 실행될 수 있다. 저장 디바이스(26)는 하드디스크 드라이브, 고체 상태 드라이브, 테이프 드라이브, 광학적 드라이브, RAID 어레이, RAM 및 ROM을 포함할 수 있지만 이러한 것들로 제한되는 것은 아니다.
테스트 시스템 구성 프로세스(10)의 인스트럭션 세트들 및 서브루틴들은, 예컨대 IBM®XL 컴파일러, Visual Studio® 컴파일러, 또는 어셈블러와 같은 컴파일러의 사용을 통해 생성될 수 있다(IBM은 미국, 다른 국가 또는 양측 모두에서 International Business Machines Corporation의 상표 또는 등록 상표이고, Visual Studio는 미국, 다른 국가 또는 양측 모두에서 Microsoft Corporation의 등록 상표이다). 인스트럭션 세트 및 서브루틴들은 JavaScript® scripts와 같은 스크립트 또는 다른 타입의 소프트웨어 코드로서 생성될 수 있다(자바와 모든 자바 기반 상표 및 로고는 미국, 다른 국가 또는 양측 모두에서 Sun Microsystems의 것이다). 일반적으로, 또한 본 분야에 알려져 있는 바와 같이, 테스트 시스템 구성 프로세스(10)의 인스트럭션 세트 및 서브루틴들은 프로세서에 의해 실행될 수 있는 인스트럭션 세트들 및 서브루틴들을 생성하는 임의의 방법을 통해 생성될 수 있다.
서버 컴퓨터(12)는 또한 코드 개정 툴(20)을 실행시킬 수 있으며, 그 실례로는 ClearCase® 구성 관리 툴이 포함된다(ClearCase는 미국, 다른 국가 또는 양측 모두에서 International Business Machines의 상표 또는 등록 상표이다). 코드 개정 툴(20)은 조직화가 소프트웨어 개발 프로세스 동안에 소프트웨어 코드 개정 및 변경을 추적하고 유지시키게 할 수 있다. 이후에 보다 더 상세히 논의되겠지만, 테스트 시스템 구성 프로세스(10)는 소프트웨어 패치들(16)에 대응하는 코드 개정 툴(20)에 의해 관리되는 소스 코드를 식별할 수 있다.
코드 개정 툴(20)은 서버 컴퓨터(12)에 연결된 저장 디바이스(26) 상에 저장될 수 있다. 서버 애플리케이션으로 도시되어 있다 하더라도, 코드 개정 툴(22)은 또한 (예컨대 랩톱(28)에 의해 실행되는) 클라이언트 애플리케이션 또는 하나 이상의 컴퓨팅 디바이스들에 의해 실행되는 클라이언트/서버 애플리케이션일 수 있다.
인필드 컴퓨터 시스템(18)은 근거리 컴퓨터 시스템일 수도 있고, 또는 원거리 컴퓨터 시스템일 수도 있다. 그것은, 점선(30)으로 도시한 바와 같이 네트워크(14)에 연결될 수도 있고, 또는 네트워크에 연결되지 않은 독립형 컴퓨터 시스템일 수도 있다. 인필드 컴퓨터 시스템은, 예컨대 랩톱 시스템, 데스크톱 시스템, 서버 시스템 또는 일련의 컴퓨터 시스템일 수 있다. 인필드 컴퓨터 시스템(18)은 또한 고객 설비와 같은 원거리 위치에 위치할 수도 있다. 인필드 컴퓨터 시스템(18)이 소프트웨어 또는 구성 문제를 갖는다면, 테스트 시스템 구성 프로세스(10)는 근거리 위치에 위치할 수 있는 테스트 컴퓨터 시스템(24) 상에 인필드 컴퓨터 시스템(18)의 구성을 복제할 수도 있다.
애플리케이션(32)은 인필드 컴퓨터 시스템(18) 상에 인스톨되고 그에 의해 실행되는 소프트웨어 애플리케이션(즉, 소프트웨어 제품)일 수 있다. 애플리케이션(32)은 인필드 컴퓨터 시스템(18)에 연결된 저장 디바이스(34) 상에 저장될 수 있다. 애플리케이션(32)은 소프트웨어 개발 회로가 개발하거나, 사용하거나, 판매하거나, 배치할 수 있는 임의의 타입의 소프트웨어 제품(들)일 수 있다. 애플리케이션(32)을 업데이트하거나 수정하는 다양한 소프트웨어 패치들(16)은 또한 컴퓨터(18) 상에 설치될 수 있다. 이러한 소프트웨어 패치들(16)은 애플리케이션(32)에 대한 다양한 업데이트 및 수리를 제공할 수 있다.
테스트 컴퓨터 시스템(24)은, 예컨대 인필드 컴퓨터 시스템(18)의 구성을 테스트하는 데 사용되는 컴퓨터 시스템 또는 일련의 컴퓨터 시스템들일 수 있다. 테스트 컴퓨터 시스템(24)은, 애플리케이션(32)과 동일한 애플리케이션(또는 애플리케이션들)일 수 있는 애플리케이션(36)을 실행시킬 수 있다. 예를 들어, 애플리케이션(32)이 인필드 컴퓨터 시스템(18) 상에 인스톨되는 사업용 애플리케이션이라면, 애플리케이션(36)은 동일한 사업용 애플리케이션일 수 있지만, 테스트 컴퓨터 시스템(24) 상에 인스톨되지는 못할 수도 있다. 애플리케이션(36)은 테스트 컴퓨터 시스템(24)에 연결된 저장 디바이스(38) 상에 저장될 수 있다. 테스트 시스템 구성 프로세스(10)는 테스트 컴퓨터 시스템(24) 상에 인필드 컴퓨터 시스템(18)의 구성을 복제하기 위해 테스트 컴퓨터 시스템(24) 상에 컴파일링된 소프트웨어 패치들(22)을 인스톨할 수 있다.
저장 디바이스(26, 34, 38, 40)는, 하드디스크 드라이브, 고체 상태 드라이브, 테이프 드라이브, 광학적 드라이브, RAID 어레이, RAM, ROM, 콤팩트 플래시(compact flash: CF) 저장 디바이스, 보안 디지털(SD) 저장 디바이스, 및 메모리 스틱 저장 디바이스를 포함할 수 있지만, 이러한 것들로 제한되는 것은 아니다.
다양한 클라이언트 전자 디바이스들이 네트워크(14)에 연결될 수 있다. 클라이언트 전자 디바이스들의 실례로는, 서버 컴퓨터(12), 랩톱(28), 인필드 컴퓨터 시스템(18), 테스트 컴퓨터 시스템(24), 개인휴대정보단말(도시하지 않음), 데이터 인에이블링 셀룰러 전화(도시하지 않음), 및 전용 네트워크 디바이스(도시하지 않음)가 포함될 수 있지만, 이러한 것들로 제한되는 것은 아니다. 사용자(42, 46, 48)는 툴 또는 애플리케이션이 상주하는 디바이스로부터 직접적으로 또는 네트워크(14)에 접속된 임의의 디바이스로부터 테스트 시스템 구성 프로세스(10) 또는 코드 개정 툴(20)과 같은 다양한 툴 및 애플리케이션을 액세스할 수 있다. 클라이언트 전자 디바이스는 네트워크(14)에 직접 연결될 수도 있고, 또는 네트워크(50)를 통해 네트워크(14)에 간접적으로 연결될 수도 있다. 예를 들어, 서버(12)는 팬텀 링크 라인(52)으로 예시된 바와 같이 2차 네트워크(50)를 통해 네트워크(14)에 간접적으로 접속될 수 있다.
다양한 클라이언트 전자 디바이스는 네트워크(14)(또는 네트워크(50))에 직접적으로 또는 간접적으로 연결될 수 있다. 예를 들어, 테스트 컴퓨터 시스템(24)은 하드와이어 네트워크 접속을 통해 네트워크(14)에 직접 연결된 것으로 도시되어 있다. 또한, 서버(12)는 하드와이어 네트워크 접속을 통해 네트워크(14)에 직접 접속된 것으로 도시되어 있다. 랩톱(28)은 랩톱(28)과 무선 액세스 포인트(즉, WAP)(56) 사이에 설정된 무선 통신 채널(54)을 통해 네트워크(14)에 무선으로 연결된 것으로 도시되어 있다. WAP(56)은, 예를 들어 IEEE 802.11a, 802.11b, 802.11g 및/또는 랩톱(28)과 WAP(56) 사이에서 무선 통신 채널(48)을 설립할 수 있는 블루투스 디바이스일 수 있다.
본 분야에 알려져 있는 바와 같이, 모든 IEEE 802.1x 사양은 경로 셰어링(path sharing)을 위해 충돌 회피와 함께 캐리어 감지 다중 액세스(즉, CSMA/CA) 및 이더넷 프로토콜을 사용할 수 있다. 다양한 802.11 사양은, 예를 들어 위상 천이 키잉(즉, PSK) 변조 또는 상보 코드 키잉(즉, CCK) 변조를 이용할 수 있다. 본 분야에 알려져 있는 바와 같이, 블루투스는, 예컨대 이동 전화, 컴퓨터 및 개인 휴대정보단말이 단거리 무선 접속을 이용하여 상호 접속되게 하는 원격통신 산업 사양이다.
클라이언트 전자 디바이스(12, 24, 18, 28)는 제각각 운영 체제를 실행시킬 수 있으며, 그의 일례로는 Microsoft Windows, Redhat Linux 또는 고객 운영 체제가 포함될 수 있지만, 이러한 것으로 제한되는 것은 아니다.
테스트 시스템 구성 프로세스
도 2를 참조하면, 테스트 시스템 구성 프로세스(10)는 인필드 컴퓨터 시스템(18) 상에 인스톨된 소프트웨어 패치들의 리스트를 수신할 수 있다(102). 소프트웨어 패치들의 리스트는 또한 하나 이상의 소프트웨어 패치들 각각의 버전을 포함할 수 있다. 예를 들어, 인필드 컴퓨터 시스템(18)이 인스톨된 3개의 패치들을 갖고 있다면, 소프트웨어 패치들의 리스트는 인필드 컴퓨터 시스템(18) 상에 인스톨된 3개의 패치들을 식별할 수 있고, 또한 인스톨될 각 패치의 버전을 식별할 수도 있다.
소프트웨어 패치들의 리스트는 다양한 방법으로 생성될 수 있다. 리스트는, 예를 들어 소프트웨어 패치가 인필드 컴퓨터 시스템(18) 상에 인스톨될 때마다 생성되거나 첨부되는 파일일 수 있다. 예를 들어, 사용자가 인필드 컴퓨터 시스템(18) 상에 가상의 패치 X를 인스톨한다면, 인스톨 프로세스는 패치 X를 리스트에 추가함으로써 인스톨된 소프트웨어 패치들의 리스트를 포함하는 파일을 첨부할 수도 있다. 인스톨된 소프트웨어 패치들의 리스트를 포함하는 파일은, 인필드 컴퓨터 시스템(18) 상의 임의의 파일일 수 있으며, 그 파일은, 텍스트 파일, 이진 파일, 레지스트리 파일 등일 수 있다. 인필드 컴퓨터 시스템(18) 상에 인스톨된 소프트웨어 패치들의 리스트는 다른 컴퓨터 시스템, 파일 시스템 상에 또는 데이터베이스 내에 상주할 수 있다.
대안으로, 인필드 테스트 시스템(18) 및/또는 테스트 시스템 구성 프로세스(10)는 인필드 테스트 시스템(18)을 질의함으로써 인필드 테스트 시스템(18) 상에 인스톨된 소프트웨어 패치들의 리스트를 생성할 수 있다. 예를 들어, 인필드 테스트 시스템(18)은 인필드 테스트 시스템(18) 상에 인스톨된 소프트웨어 패치들을 추적하고 보고하는 프로세스를 실행할 수 있다. 대안으로, 인필드 테스트 시스템(18) 또는 테스트 시스템 구성 프로세스(100는 인필드 테스트 시스템(18) 상의 레지스트리 또는 파일 시스템을 검색함으로써 인스톨된 소프트웨어 패치들의 리스트를 생성할 수 있다. 검색 프로세스는 소프트웨어 패치들과 연관된 레지스트리 키 또는 파일에 대한 레지스트리 또는 파일 시스템을 스캔할 수도 있고, 그러한 키 또는 파일이 발견되는 경우라면 연관된 소프트웨어 패치를 인스톨될 소프트웨어 패치들의 리스트에 추가할 수 있다.
소프트웨어 패치들의 리스트는 또한, 인필드 컴퓨터 시스템(18) 상에 인스톨된 애플리케이션들의 리스트를 포함할 수 있다. 예를 들어, 소프트웨어 패치들의 리스트는 애플리케이션(30) 또는 인필드 컴퓨터 시스템(18) 상에 설치된 임의의 다른 애플리케이션을 포함할 수 있다.
코드 개정 툴(20)은 소프트웨어 개발 동안에 생성된 소스 코드 파일의 버전들을 포함할 수 있다. 예를 들어, 코드 버전 툴(20)은 소프트웨어 패치들(16)을 컴파일링하는 데 사용되는 소스 코드 파이들의 일부 버전 또는 모든 버전을 유지할 수 있다.
일단 테스트 시스템 구성 프로세스(10)가 인필드 컴퓨터 시스템(18) 상에 인스톨된 소프트웨어 패치들의 리스트를 수신하면(102), 테스트 시스템 구성 프로세스(10)는 리스트 내의 소프트웨어 패치들 각각에 대응하는 코드 개정 툴(20)에 의해 관리되는 소스 코드 파일들을 식별할 수 있다(104). 패치 X에 대응하는 소스 코드 파일들은, 예를 들어 패치 X를 컴파일링하는 데 사용되었던 소스 코드 파일들일 수 있다.
소스 코드 파일들은, 특정 소프트웨어 패치들과 소스 코드 파일들을 연관시키는 식별자 또는 태그를 가질 수 있다. 예를 들어, 가상의 소프트웨어 패치 X가 특정 세트의 소스 코드 파일들로부터 컴파일링되었다면, 그 특정 세트의 소스 코드 파일들 내의 각 파일은 그 파일이 패치 X를 컴파일링하는 데 사용되었음을 나타내는 태그 또는 식별자를 가질 수 있다. 태그 또는 식별자는 다양한 형태를 취할 수 있다. 예를 들어, 패치 X를 컴파일링하는 데 사용되는 각각의 파일은 각각의 파일을 패치 X와 연관시키는 작명 규칙을 채용할 수 있다. 이 경우, 테스트 시스템 구성 프로세스(10)는 동일한 작명 규칙을 갖는 소스 코드 및 소프트웨어 패치를 매칭시킬 수도 있다(106). 대안으로, 코드 개정 툴(20)은 패치 X를 컴파일링하는 데 사용되는 각각의 파일을 태그하거나 식별하는 메타데이터를 저장할 수도 있다. 예를 들어, 소프트웨어 패치 및 소스는 고유 식별자로 태그될 수도 있다. 이 경우, 테스트 시스템 구성 프로세스(10)는 동일한 고유 식별자를 갖는 소스 코드 및 소프트웨어 패치를 매칭시킬 수도 있다(108). 일반적으로, 소프트웨어 패치와 소스 코드의 버전들을 연관시키는 임의의 메커니즘은 소프트웨어 패치를 컴파일링하는 데 사용된 소스 코드를 식별하는 데 사용될 수 있다.
코드 버전 툴(20)은 또한 소프트웨어 패치들에 대응하는 다른 타입의 파일들을 포함할 수도 있다. 예를 들어, 코드 개정 툴(20)은 스크립트 파일, 텍스트 파일, 이진 파일, 또는 소프트웨어 패치들을 생성하거나 컴파일링하는 데 요구되는 임의의 다른 타입의 파일을 포함할 수 있다.
일단 테스트 시스템 구성 프로세스(10)가 소프트웨어 패치들에 대응하는 소스 코드 및/또는 다른 파일들을 식별하면(104), 그것은 인필드 컴퓨터 시스템 상에 인스톨된 소프트웨어 패치들 각각에 대한 소스 코드로부터 하나 이상의 새로이 컴파일링된 소프트웨어 패치들(22)을 자동으로 컴파일링할 수 있다(110). 예를 들어, 테스트 시스템 구성 프로세스(10)가 소프트웨어 패치들의 리스트를 수신한다면(102), 테스트 시스템 구성 프로세스(10)는 소프트웨어 패치들 각각에 대한 코드 개정 툴(20)에 의해 관리되는 소스 코드를 식별할 수 있다(104). 그러면, 소프트웨어 패치들의 리스트 내에 있는 각각의 소프트웨어 패치들에 대해, 테스트 시스템 구성 프로세스(10)는 각각의 소프트웨어 패치에 대응하는 소스 코드를 컴파일링할 수 있다(110). 각각의 컴필레이션(compilation)(110)의 결과는 인필드 컴퓨터 시스템(18) 상에 인스톨된 오리지널 소프트웨어 패치(16)의 버전을 매칭시키는 새로이 컴파일링된 소프트웨어 패치(22)일 수 있다. 소프트웨어 패치들(16)의 컴필레이션(110)은, 예컨대 IBM XL 컴파일러, Visual Studio 컴파일러, 또는 고객 컴파일러를 포함하는 임의의 소프트웨어 컴파일러에 의해 수행될 수 있다. 추가로/대안으로, 소스 코드는 스크립트 코드, 어셈블러 코드, 또는 임의의 다른 종류의 소프트웨어 코드일 수 있다. 이에 따라, 소프트웨어 패치들을 컴파일링하는 것(110)은 적절한 스크립트 코드의 수집, 어셈블리 코드의 어셈블리 등을 포함할 수 있다. 일반적으로, 컴파일링된 소프트웨어 패치들(22)의 컴필레이션(110)은 임의의 형태의 소프트웨어 모듈 컴파일링을 통해 수행될 수 있다.
테스트 시스템 구성 프로세스(10)는 또한 인필드 컴퓨터 시스템(18) 상에 인스톨된 소프트웨어 패치들(16)의 임의의 필수 소프트웨어 패치들을 식별하고(104) 컴파일링(112)할 수 있다. 필수 소프트웨어 패치들을 식별하는 한 가지 방법이 "System and Method for Detecting Software Patch Dependencies"라는 명칭의 미국 특허 출원 제12/346,165(2008년 12월 30일 출원)에 기술되어 있으며, 그의 전체 내용이 본 명세서에 참조로서 포함된다. 필수 소프트웨어 패치들을 식별하는 다른 방법들도 또한 사용될 수 있다.
일단 임의의 필수 소프트웨어 패치들이 식별되면, 테스트 시스템 구성 프로세스(10)는 또한 필수 소프트웨어 패치들에 대응하는 소스 코드를 식별할 수도 있고(104), 또한 필스 소프트웨어 패치들을 컴파일링할 수도 있다(112). 테스트 시스템 구성 프로세스(10)는 필수 패치들에 대한 소스 코드를 식별할 수 있고(104), 예를 들어 전술한 바와 같은 방법으로 필수 패치들을 컴파일링할 수도 있다(112).
일단 테스트 시스템 구성 프로세스(10)가 새로이 컴파일링된 소프트웨어 패치들(22)을 컴파일링한다면(110, 112), 테스트 시스템 구성 프로세스(10)는 테스트 컴퓨터 시스템(24) 상에 하나 이상의 새로이 컴파일링된 소프트웨어 패치들(22)을 인스톨하여, 인필드 컴퓨터 시스템(18)의 구성을 복제할 수 있다. 테스트 컴퓨터 시스템(24) 상에 새로이 컴파일링된 소프트웨어 패치들(22)을 인스톨하는 것(114, 116), 임의의 새로이 컴파일링된 필수 소프트웨어 패치들을 인스톨하는 것(116)을 포함할 수 있다.
테스트 시스템 구성 프로세스(10)는 다양한 방법으로 새로이 컴파일링된 소프트웨어 패치들(22)을 인스톨할 수 있다. 인스톨 방법은 소프트웨어 패치에 따라 따를 수 있다. 예를 들어, 소프트웨어 패치가 자기 자신의 인스톨 코드를 포함한다면, 테스트 시스템 구성 프로세스(10)는 테스트 컴퓨터 시스템(24) 상에 그 소프트웨어 패치의 인스톨 코드를 런칭시킬 수 있다. 대안으로, 소프트웨어 패치가 목표 머신 상으로 파일을 복제시킬 것만을 요구한다면, 테스트 시스템 구성 프로세스(10)는 테스트 컴퓨터 시스템(24) 상에 적절한 위치에 적절한 파일들을 복제할 수 있다. 본 분야에 알려져 있는 바와 같이, 소프트웨어는 다양한 방법으로 인스톨될 수 있다. 이에 따라, 테스트 시스템 구성 프로세스(10)는 새로이 컴파일링된 소프트웨어 패치들(22)의 인스톨 순서를 결정할 수도 있고, 인스톨 순서에 따라 테스트 컴퓨터 시스템(24) 상에 새로이 컴파일링된 소프트웨어 패치들(22)을 인스톨할 수도 있다(114, 116).
인필드 컴퓨터(18)의 구성을 정밀하게 복제하기 위해, 새로이 컴파일링된 소프트웨어 패치들(22)은 특정 인스톨 순서를 필요로 할 수 있다. 예를 들어, 소프트웨어 패치들(16)이 특정 순서로 인필드 컴퓨터(18) 상에 인스톨되었다면, 테스트 시스템 구성 프로세스(10)는 새로이 컴파일링된 소프트웨어 패치들(22)의 인스톨(114, 116)과 동일한 순서를 요구하여 인필드 컴퓨터 시스템(18)의 구서의 정밀 복제를 획득할 수 있다. 따라서, 테스트 시스템 구성 프로세스(10)는 새로이 컴파일링된 소프트웨어 패키지들(22)의 인스톨 순서를 결정할 수 있고, 그 인스톨 순서에 따라 테스트 컴퓨터 시스템(24) 상에 새로이 컴파일링된 소프트웨어 패치들(22)을 인스톨할 수 있다(114, 116).
테스트 시스템 구성 프로세스(10)는 다양한 방법으로 인스톨 순서를 결정할 수 있다(118). 예를 들어, 인스톨 순서는 소프트웨어 패치들(22)을 컴파일링하는 데 사용되는 소스 코드 또는 소프트웨어 패치들(22)의 개봉일(release date) 또는 배송일에 기초할 수 있다. 특정 소프트웨어 패치에 대한 배송일 또는 개봉일이 빠를수록, 그 소프트웨어 패치는 보다 빨리 인스톨될 수 있다. 테스트 시스템 구성 프로세스(10)는 또한 소스 코드의 변경 세트의 식별자를 통해 인스톨 순서를 결정할 수 있다. 코드 개정 툴(20)에 의해 관리되는 소스 코드는 메타데이터를 포함할 수 있다. 코드 개정 툴(20) 내에서 다양한 소스 코드 파일들에 대한 변화들의 세트는 메타데이터 식별자를 포함할 수 있다. 메타데이터 식별자는 그 변경 세트와 연관된 소프트웨어 패치가 인스톨되어야 하는 순서를 나타낼 수 있다. 예를 들어, 메타데이터 식별자는 가상 패치 X가 인스톨된 후에만 가상 패치 Y가 인스톨되어야 한다는 것을 나타낼 수 있다. 이에 따라, 테스트 시스템 구성 프로세스(10)는 소프트웨어 변경 세트의 메타데이터에 의해 특정된 순서로 새로이 컴파일링된 소프트웨어 패치들(22)을 인스톨할 수 있다. 추가로 또는 대안으로, (인필드 컴퓨터 시스템(18) 상에 인스톨된) 새로이 컴파일링된 소프트웨어 패치들(22) 또는 소프트웨어 패치들(16)은 인스톨 순서를 특정하는 식별자를 포함할 수 있다. 다른 대안으로서, 테스트 시스템 구성 프로세스(10)는 인필드 컴퓨터 시스템(18)으로부터 수신된 소프트웨어 패치들의 리스트(102)로부터 또는 인필드 컴퓨터 시스템(18) 상에 위치한 레지스트리 파일로부터 인스톨 순서를 검색할 수 있다. 레지스트리 파일은 각각의 소프트웨어 패치가 인스톨되었던 일시를 포함할 수 있다. 시스템 구성 프로세스(10)는 인필드 컴퓨터 시스템(18)의 레지스트리 파일 내에 리스트된 일시에 대응하는 순서로 새로이 컴파일링된 소프트웨어 패치들(22)을 인스톨할 수 있다(114, 116).
도 3을 또한 참조하면, 도 3은 테스트 시스템 구성 프로세스(10)의 블록도를 도시하고 있다. 테스트 시스템 구성 프로세스(10)는 인필드 컴퓨터 시스템(18)으로부터 소프트웨어 패치들(202)의 리스트를 수신한다(102). 논의된 바와 같이, 소프트웨어 패치들(202)의 리스트는 인필드 컴퓨터 시스템(18) 상에 인스톨된 소프트웨어 패치들(16)의 리스트, 인필드 컴퓨터 시스템(18) 상에 인스톨된 임의의 다른 애플리케이션들(32)의 리스트, 소프트웨어 패치들(16)의 인스톨 순서, 및 소프트웨어 패치들(16)과 연관된 다른 임의의 메타데이터를 포함할 수 있다.
테스트 시스템 구성 프로세스(10)는, 논의된 바와 같이 소프트웨어 패치들(16)에 대응하는 코드 개정 툴(20)에 의해 관리되는 소스 코드를 식별할 수 있다(104). 일단 소스 코드(204)가 식별되면, 테스트 시스템 구성 프로세스(10)는 소스 코드(204)를 컴파일링하여(110, 112) 컴파일된 소프트웨어 패치들(22)을 생성할 수 있다. 테스트 시스템 구성 프로세스(10)는 컴파일링된 소프트웨어 패치들(22)에 대한 인스톨 순서를 결정할 수 있고(116), 테스트 컴퓨터 시스템(24) 상에 컴파일링된 소프트웨어 패치들(22)을 인스톨하여(114, 116) 테스트 컴퓨터 시스템(24) 상에 인필드 컴퓨터 시스템(18)의 구성을 복제할 수 있다.
그 방법, 시스템 및 컴퓨터 프로그램은 다양한 방법으로 사용될 수 있다. 예를 들어, 인필드 시스템(18)의 구성이 테스트 컴퓨터(24) 상에 복제된다면, 기술자는 인필드 컴퓨터 시스템(18)의 그 위치로 이동하지 않고도 인필드 컴퓨터 시스템(18) 상에서 발생하고 있는 문제 또는 버그를 진단할 수 있다. 기술자는, 예를 들어 테스트 컴퓨터 시스템(24)을 갖고 실험함으로써 인필드 컴퓨터 시스템(18) 상에서 발생하고 있는 문제를 진단할 수 있다.
다수의 구현예들이 설명되고 있다. 그렇지만, 다양한 수정물이 만들어질 수도 있음이 이해될 것이다. 이에 따라, 다른 구현물들이 다음의 특허청구범위의 범주 내에 있다.
10: 테스트 시스템 구성 프로세스 14, 50: 네트워크
16: 소프트웨어 패치(들) 20: 코드 개정 툴
22: 컴파일링된 소프트웨어 패치(들) 32, 36: 애플리케이션

Claims (10)

  1. 테스트 시스템을 구성하는 방법으로서,
    인필드 컴퓨터 시스템(in-field computer system)에 인스톨된 하나 이상의 소프트웨어 패치들의 리스트 - 상기 리스트는 상기 하나 이상의 소프트웨어 패치들 각각의 버전을 포함함 - 를 수신하는 단계와,
    상기 하나 이상의 소프트웨어 패치들 각각의 상기 버전에 대응하며, 소스 코드 개정 툴에 의해 관리되는, 소스 코드를 식별하는 단계와,
    상기 인필드 컴퓨터 시스템에 인스톨된 상기 소프트웨어 패치들 각각에 대해 상기 소스 코드 개정 툴에 의해 관리되는 상기 소스 코드로부터 하나 이상의 새로이 컴파일링된 소프트웨어 패치들을 컴파일링 및 인스톨 시스템에서 자동으로 컴파일링하는 단계와,
    상기 인필드 컴퓨터 시스템을 복제하기 위해 상기 컴파일링 및 인스톨 시스템에 의해 테스트 컴퓨터 시스템에 상기 하나 이상의 새로이 컴파일링된 소프트웨어 패치들을 자동으로 인스톨하는 단계를 포함하는
    테스트 시스템 구성 방법.
  2. 제 1 항에 있어서,
    소스 코드를 식별하는 단계는 상기 소스 코드의 작명 규칙(naming convention)과 상기 하나 이상의 소프트웨어 패치들 각각의 상기 버전을 매칭시키는 단계를 포함하는
    테스트 시스템 구성 방법.
  3. 제 1 항에 있어서,
    소스 코드를 식별하는 단계는 고유 식별자를 갖는 소스 코드와 상기 하나 이상의 소프트웨어 패치들 각각의 상기 버전을 매칭시키는 단계를 포함하는
    테스트 시스템 구성 방법.
  4. 제 1 항에 있어서,
    하나 이상의 새로이 컴파일링된 소프트웨어 패치들을 자동으로 컴파일링하는 단계는 상기 하나 이상의 새로이 컴파일링된 소프트웨어 패치들에 의해 요구되는 하나 이상의 필수 소프트웨어 패치들을 자동으로 컴파일링하는 단계를 포함하고,
    상기 하나 이상의 새로이 컴일링된 소프트웨어 패치들을 자동으로 인스톨하는 단계는 상기 하나 이상의 새로이 컴파일링된 소프트웨어 패치들에 의해 요구되는 상기 하나 이상의 필수 소프트웨어 패치들을 자동으로 인스톨하는 단계를 포함하는
    테스트 시스템 구성 방법.
  5. 제 1 항에 있어서,
    상기 새로이 컴파일링된 소프트웨어 패키지들의 인스톨 순서를 결정하는 단계를 더 포함하는
    테스트 시스템 구성 방법.
  6. 제 5 항에 있어서,
    인스톨 순서를 결정하는 단계는,
    상기 소스 코드의 배송일과,
    상기 소스 코드의 변경 세트의 식별자와,
    상기 하나 이상의 새로이 컴파일링된 소프트웨어 패치들의 식별자와,
    상기 인필드 컴퓨터 시스템에 인스톨된 상기 하나 이상의 소프트웨어 패치들의 식별자와,
    상기 인필드 컴퓨터 시스템에 위치한 레지스트리 파일로부터의 정보
    중 하나 이상에 의해 상기 하나 이상의 새로이 컴파일링된 소프트웨어 패치들의 순서를 정하는 단계를 포함하는
    테스트 시스템 구성 방법.

  7. 프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
    인필드 컴퓨터 시스템(in-field computer system)에 인스톨된 하나 이상의 소프트웨어 패치들의 리스트 - 상기 리스트는 상기 하나 이상의 소프트웨어 패치들 각각의 버전을 포함함 - 를 수신하는 동작과,
    상기 하나 이상의 소프트웨어 패치들 각각의 상기 버전에 대응하며, 소스 코드 개정 툴에 의해 관리되는, 소스 코드를 식별하는 동작과,
    상기 인필드 컴퓨터 시스템에 인스톨된 상기 소프트웨어 패치들 각각에 대해 상기 소스 코드 개정 툴에 의해 관리되는 상기 소스 코드로부터 하나 이상의 새로이 컴파일링된 소프트웨어 패치들을 컴파일링 및 인스톨 시스템에서 자동으로 컴파일링하는 동작과,
    상기 컴파일링 및 인스톨 시스템에 의해 테스트 컴퓨터 시스템에 상기 하나 이상의 새로이 컴파일링된 소프트웨어 패치들을 자동으로 인스톨하여 상기 인필드 컴퓨터 시스템을 복제하는 동작
    을 수행하게 하는 다수의 인스트럭션들을 포함하는 컴퓨터 프로그램을 저장하는
    컴퓨터 판독가능 매체.
  8. 적어도 하나의 프로세서와,
    상기 적어도 하나의 프로세서와 연결된 적어도 하나의 메모리 아키텍처와,
    상기 적어도 하나의 프로세서 및 상기 적어도 하나의 메모리 아키텍처 상에 실행되어, 인필드 컴퓨터 시스템에 인스톨된 하나 이상의 소프트웨어 패치들의 리스트 - 상기 리스트는 상기 하나 이상의 소프트웨어 패치들 각각의 버전을 포함함 - 를 수신하게 하는 제 1 세트의 소프트웨어 인스트럭션과,
    상기 적어도 하나의 메모리 아키텍처 및 상기 적어도 하나의 프로세서에서 실행되어, 상기 하나 이상의 소프트웨어 패치들 각각의 상기 버전에 대응하며, 소스 코드 개정 톨에 의해 관리되는, 소스 코드를 식별하게 하는 제 2 세트의 소프트웨어 인스트럭션과,
    상기 적어도 하나의 메모리 아키텍처 및 상기 적어도 하나의 프로세서에서 실행되어, 상기 인필드 컴퓨터 시스템에 인스톨된 상기 소프트웨어 패치들 각각에 대한 상기 소스 코드 개정 툴에 의해 관리되는 상기 소스 코드로부터 하나 이상의 새로이 컴파일링된 소프트웨어 패치들을 자동으로 컴파일링하게 하는 제 3 세트의 소프트웨어 인스트럭션과,
    상기 적어도 하나의 메모리 아키텍처 및 상기 적어도 하나의 프로세서에서 실행되어, 테스트 컴퓨터 시스템에 상기 하나 이상의 새로이 컴파일링된 소프트웨어 패치들을 자동으로 인스톨하여 상기 인필드 컴퓨터 시스템을 복제하게 하는 제 4 세트의 소프트웨어 인스트럭션을 포함하는
    컴퓨팅 시스템.
  9. 제 8 항에 있어서,
    하나 이상의 새로이 컴파일링된 소프트웨어 패치들을 자동으로 컴파일링하는 것은 상기 하나 이상의 새로이 컴파일링된 소프트웨어 패치들에 의해 요구되는 하나 이상의 필수 소프트웨어 패치들을 자동으로 컴파일링하는 것을 포함하고,
    상기 하나 이상의 새로이 컴파일링된 소프트웨어 패치들을 자동으로 인스톨하는 것은 상기 하나 이상의 새로이 컴파일링된 소프트웨어 패치들에 의해 요구되는 상기 하나 이상의 필수 소프트웨어 패치들을 자동으로 인스톨하는 것을 포함하는
    컴퓨팅 시스템.
  10. 제 8 항에 있어서,
    상기 적어도 하나의 메모리 아키텍처 및 상기 적어도 하나의 프로세서에서 실행되어, 상기 새로이 컴파일링된 소프트웨어 패키지들의 인스톨 순서를 결정하는 제 5 세트의 소프트웨어 인스트럭션들을 더 포함하는
    컴퓨팅 시스템.
KR1020100007531A 2009-02-20 2010-01-27 테스트 시스템 구성 방법, 컴퓨터 판독가능 매체 및 컴퓨팅 시스템 KR101038965B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/389,730 US9372784B2 (en) 2009-02-20 2009-02-20 Test system configuration method and system
US12/389,730 2009-02-20

Publications (2)

Publication Number Publication Date
KR20100095368A KR20100095368A (ko) 2010-08-30
KR101038965B1 true KR101038965B1 (ko) 2011-06-03

Family

ID=42632036

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100007531A KR101038965B1 (ko) 2009-02-20 2010-01-27 테스트 시스템 구성 방법, 컴퓨터 판독가능 매체 및 컴퓨팅 시스템

Country Status (3)

Country Link
US (1) US9372784B2 (ko)
KR (1) KR101038965B1 (ko)
CN (1) CN101840340B (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2011205480B2 (en) * 2010-01-12 2015-02-05 Google Llc Operating system auto-update procedure
US8627308B2 (en) * 2010-06-30 2014-01-07 International Business Machines Corporation Integrated exchange of development tool console data
CN102147758A (zh) * 2011-03-16 2011-08-10 深圳创维数字技术股份有限公司 一种待测设备自动编译及配置方法、装置、系统
US8782630B2 (en) * 2011-06-30 2014-07-15 International Business Machines Corporation Smart rebinding for live product install
JP6163707B2 (ja) * 2011-07-15 2017-07-19 株式会社リコー 組み込み機器、プログラム作成装置、プログラム
CA2889387C (en) 2011-11-22 2020-03-24 Solano Labs, Inc. System of distributed software quality improvement
WO2013094003A1 (ja) * 2011-12-19 2013-06-27 富士通株式会社 ソフトウェアのインストール順序を決定する方法、プログラム、及び装置
CN103294456A (zh) * 2012-02-28 2013-09-11 腾讯科技(深圳)有限公司 一种业务插件的自动发布方法和设备
CN103473505B (zh) * 2012-06-06 2016-03-23 腾讯科技(深圳)有限公司 一种软件漏洞的扫描提示方法和装置
US9069969B2 (en) * 2012-06-13 2015-06-30 International Business Machines Corporation Managing software patch installations
CN103677878B (zh) * 2012-09-12 2017-07-14 国际商业机器公司 一种打补丁的方法和装置
US8924951B2 (en) * 2013-03-15 2014-12-30 Oracle International Corporation Embedding patch lists within compiled program code
US9720669B2 (en) * 2013-05-30 2017-08-01 The Boeing Company Deployment of software across an enterprise system
US10282187B2 (en) 2014-07-03 2019-05-07 Oracle International Corporation Efficient application patching in heterogeneous computing environments
US9747084B2 (en) * 2014-09-09 2017-08-29 Google Inc. Offline shader compilation
CN104572237B (zh) * 2015-01-19 2017-12-12 上海动联信息技术股份有限公司 一种UKey安装包自动快速生成系统及其方法
US9886263B2 (en) * 2015-03-24 2018-02-06 Oracle International Corporation Techniques for efficient application configuration patching
CN105630678B (zh) * 2015-12-22 2018-10-02 国网天津市电力公司 一种智能电能表软件的可靠性检测仪及其检测方法
CN106326110A (zh) * 2016-08-10 2017-01-11 浪潮(北京)电子信息产业有限公司 一种系统版本开发过程中bug缺陷的修复方法及系统
CN108170597A (zh) * 2017-12-26 2018-06-15 郑州云海信息技术有限公司 一种测试方法、系统、设备及计算机存储介质
CN108509216B (zh) * 2018-03-08 2021-06-15 智童时刻(厦门)科技有限公司 一种云端程序及数据配套更新的方法
US10868709B2 (en) 2018-09-10 2020-12-15 Oracle International Corporation Determining the health of other nodes in a same cluster based on physical link information
US11334466B2 (en) 2018-09-25 2022-05-17 International Business Machines Corporation Remedying bad service fixes having subsequent dependent fixes

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980077186A (ko) * 1997-04-17 1998-11-16 윤종용 프로그램 자동 업그레이드 방법
US6662217B1 (en) 1999-01-19 2003-12-09 Microsoft Corporation Distributed and automated test administration system for administering automated tests on server computers over the internet

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0279121A (ja) 1988-09-14 1990-03-19 Nec Corp ソースコード管理方式
US6289509B1 (en) * 1998-09-01 2001-09-11 Pkware, Inc. Software patch generator
US7032210B2 (en) * 2001-11-11 2006-04-18 International Business Machines Corporation Method and system for generating program source code of a computer application from an information model
US7823148B2 (en) * 2002-05-22 2010-10-26 Oracle America, Inc. System and method for performing patch installation via a graphical user interface
US7703090B2 (en) * 2004-08-31 2010-04-20 Microsoft Corporation Patch un-installation
US20060048137A1 (en) * 2004-09-02 2006-03-02 Oracle International Corporation Method and apparatus for cloning an ORACLE RDBMS software
US20070027936A1 (en) * 2005-07-28 2007-02-01 Stakutis Christopher J Determining changes made to a source file to transmit to a target location providing a mirror copy of the source file
US20070106979A1 (en) * 2005-10-11 2007-05-10 Bea Systems, Inc. Patch management system
CN100501675C (zh) 2006-04-14 2009-06-17 北京瑞星国际软件有限公司 一种用于软件升级的方法及装置
US20080010246A1 (en) 2006-07-06 2008-01-10 Curtis Bryce A System and method for providing operating system component version verification
EP1962192A1 (en) * 2007-02-21 2008-08-27 Deutsche Telekom AG Method and system for the transparent migration of virtual machine storage

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980077186A (ko) * 1997-04-17 1998-11-16 윤종용 프로그램 자동 업그레이드 방법
US6662217B1 (en) 1999-01-19 2003-12-09 Microsoft Corporation Distributed and automated test administration system for administering automated tests on server computers over the internet

Also Published As

Publication number Publication date
CN101840340A (zh) 2010-09-22
CN101840340B (zh) 2015-02-25
KR20100095368A (ko) 2010-08-30
US9372784B2 (en) 2016-06-21
US20100218176A1 (en) 2010-08-26

Similar Documents

Publication Publication Date Title
KR101038965B1 (ko) 테스트 시스템 구성 방법, 컴퓨터 판독가능 매체 및 컴퓨팅 시스템
US11366747B2 (en) Unified test automation system
US8533676B2 (en) Single development test environment
US8745585B2 (en) Meta-data for single development test environment
US10114637B1 (en) Automatically updating a shared project build platform
US20130174124A1 (en) Version numbering in single development and test environment
US10579966B1 (en) Adapting a shared project build platform to a developer plugin
US8516464B2 (en) Computer system and method for resolving dependencies in a computer system
US20060020937A1 (en) System and method for extraction and creation of application meta-information within a software application repository
US20050102665A1 (en) Automatic parallel non-dependent component deployment
AU2012201749B2 (en) Single development test environment
CN110888652B (zh) 基于jenkins插件的多版本构建方法及终端
CN109508178A (zh) 一种程序开发方法及装置
US20060294430A1 (en) Systems and methods for dynamic application patching
CN106569863B (zh) 基于资源和代码模块化的安卓app资源更新和修复的方法
CN103026337A (zh) 配给组件的提取和重构
US20210141632A1 (en) Automated software patching for versioned code
WO2021077916A1 (zh) 一种镜像文件的获取方法以及装置
CN110674024A (zh) 电子设备集成测试系统及其方法
EP2503450A2 (en) Version numbering in single development and test environment
CN112035352B (zh) 一种基于云生命周期管理的快速自动化编译部署的方法
CN115756554B (zh) 版本升级方法及装置
CA2772223A1 (en) Meta-data for single development test environment
CN117785270A (zh) 版本交付信息的检验方法、装置、处理器及电子设备
CN118170420A (zh) 一种代码管理方法、系统及计算设备

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee