반응형
CLI(command-line interface)란
- 사용자가 연속된 텍스트 라인 형태의 명령어(commands)를 발행하여 컴퓨터 프로그램과 상호작용(interaction) 하는 사용자 인터페이스 메커니즘
- MS-DOS, CP/M, Unix, Apple DOS 같은 대부분의 과거 운영 체제(OS)에서 사람과의 상호작용 수단으로 사용되는 인터페이스
- CLI는 명령어를 텍스트 입력으로 받고 이를 적절한 운영체제 기능으로 변환하는 프로그램인 커맨드 라인 쉘(a command line shell)로 구현된다.
- 오늘날 일반 컴퓨터 사용자들이 그래픽 사용자 인터페이스(graphical user interfaces: GUI)를 선호함에 따라 CLI 사용이 줄었지만 고급 사용자(프로그래머, 시스템 관리자 등)는 더 간결하고 강력한 프로그램 통제 방법을 제공하는 CLI를 선호하기도 함
- OS 뿐만 아니라 일반 애플리케이션 프로그램도 CLI를 인터페이스 수단으로 삼는 경우가 있음. GUI를 지원하기에는 리소스(resources)가 부족한 시스템에서 CLI가 사용되기도 하며, 일부 애플리케이션은 GUI와 CLI를 둘 다 지원하기도 함
- CLI를 사용하는 프로그램은 스크립팅(scripting)을 통한 자동화가 더 쉽다.
CLI 구성 요소
- CLI는 일반적으로 신텍스(syntax)과 시멘틱(semantics)으로 구성됨. 신텍스는 모든 명령어(commands)가 반드시 준수해야 하는 문법이며, 시멘틱은 신텍스의 상징적 의미로서 사용 가능한 오퍼레이션, 오퍼레이션이 처리 가능한 데이터, 오퍼레이션과 데이터를 표현하는 문법을 정의한다.
- 단순 CLI는 프롬프트(a prompt)를 표시하고, 사용자가 입력하고 엔터키를 누른 명령어 라인을 받아들이며, 해당 명령어를 실행하고, 텍스트 형식의 결과(또는 에러 메시지)를 표시한다.
- 고급 CLI는 명령어 라인을 실행하기에 앞서 해당 명령어를 검증하고, 해석하고, 패러미터를 추가한다(또한 경우에 따라 명령어의 출력을 캡쳐하거나 리디렉트 한다).
- 기본적으로 시스템에서 제공되는 다양한 명령어들을 실행시켜 해당 명령어가 제대로 동작하는지 확인하는 작업
- 시스템이 제공하는 기능이 증가하면 CLI에 포함되는 명령어의 수와 복잡도도 크게 증가하며, 이런 상황에서 명령어들의 다양한 순열(permutation)을 테스팅 하는 것은 많은 노력이 필요하다. 예를 들어, 한 명령어가 5개의 옵션을 가지고 각 옵션의 가능한 값이 3가지 일 때 이 명령어가 제대로 작동하는지 확인하기 위해 3^5개의 테스트를 생성하고 실행할 필요가 있다. CLI에 이런 명령어가 수백 개 존재하는 경우 각각의 명령어와 명령어들의 순열에 대한 테스트 케이스를 생성하고 분석하는 일을 수작업으로 하기에는 시간이나 정확성 측면에서 효율성이 떨어진다. 따라서 CLI가 제공하는 명령어들을 위한 테스트 케이스를 생성하는 메커니즘이 필요하다.
반응형
'테스팅타입별 > 사용성(Usability)' 카테고리의 다른 글
사용용이성 테스팅에서 테스터 수 by Myers (0) | 2021.08.27 |
---|---|
영상자료 - 안드로이드 애플리케이션을 위한 자동화된 접근성 테스팅 (0) | 2018.10.08 |
사용성 관련 Web Page 검토 체크리스트 (0) | 2018.09.24 |
페이퍼요약 - 온라인 헬프의 사용성 테스트 by GRAYLING (0) | 2018.09.19 |
문서요약 - 심비안 C++ 애플리케이션의 사용자 체험 체크리스트 by Nokia (0) | 2018.09.17 |