소프트웨어 응용 프로그램은 최종 소비자가 사용할 수 있도록 출시되기 전에 다양한 단계를 거칩니다.
테스트는 버그를 식별하고 응용 프로그램이 예상대로 작동하는지 확인하기 때문에 SDLC(Software Development Life Cycle)에서 가장 중요한 부분 중 하나입니다.
과거에는 소프트웨어 테스터가 수동 테스트 기술을 사용했습니다. 그러나 수동 테스트는 시간이 많이 걸리고 다른 다양한 문제도 수반합니다. Selenium은 소프트웨어 테스트를 자동화하기 위해 만들어졌습니다.
Selenium은 현재 시장의 선두주자이며 대부분의 소프트웨어 테스터가 이미 사용하고 있습니다. 소프트웨어 테스터로 일하고 싶다면 일반적인 셀레늄 인터뷰 질문으로 무장하면 다른 구직자보다 경쟁력을 확보할 수 있습니다.
다음은 접할 가능성이 있는 Selenium 인터뷰 질문 및 답변입니다.
목차
자동화 테스트란 무엇입니까?
간단히 말해서 자동화 테스트는 Automated Test Suite를 사용하거나 수동 개입 없이 소프트웨어 테스트를 작성하고 실행하는 프로세스를 자동화하는 프로세스입니다. 자동화 테스트를 통해 테스터는 별도의 도구를 사용하여 테스트 작업을 반복적으로 실행할 수 있습니다.
자동화 테스트의 이점은 무엇입니까?
- 시간과 비용을 절약합니다. 소프트웨어 테스트는 수동 테스터에게 비용을 지불해야 하는 경우 비용이 많이 들 수 있습니다. 자동화된 테스트는 장기적으로 더 저렴할 수 있습니다.
- 코드 재사용성을 촉진합니다. 테스트를 한 번 설정할 수 있으며 실행은 반복적으로 수행됩니다.
- 사람이 생성한 오류를 줄여 정확도를 높입니다.
- 대규모 애플리케이션에 적합합니다. 수동 테스트를 통해 작은 앱을 간단하게 테스트할 수 있습니다. 그러나 앱이 확장됨에 따라 자동화된 테스트 키트가 유용하게 사용될 것입니다.
셀레늄이란 무엇입니까?
Selenium은 2004년에 Jason Huggins가 개발한 오픈 소스 및 무료 웹 UI 기반 자동화 테스트 제품군입니다. 강력한 커뮤니티의 존재로 인해 Selenium은 가장 인기 있는 자동화 소프트웨어 테스트 제품군 중 하나가 되었습니다. Selenium Suite는 다양한 브라우저 및 플랫폼에서 지원됩니다.
셀레늄의 다른 형태는 무엇입니까?
Selenium은 단순한 테스트 도구가 아니라 여러 도구 모음입니다. 다음은 다양한 형태의 셀레늄입니다.
- Selenium 통합 개발 환경(IDE)
- 셀레늄 웹드라이버
- 셀레늄 원격 제어(RC)
- 셀레늄 그리드
Selenium은 어떤 프로그래밍 언어를 지원합니까?
- 파이썬
- 자바
- C 샤프
- 자바스크립트
- 루비
- PHP
- 펄
Selenium은 어떤 테스트 유형을 지원합니까?
셀레늄 웹드라이버란?
Selenium WebDriver는 웹 브라우저와의 통신을 담당합니다. 이 도구는 또한 다양한 작업을 자동화하기 위해 기본 호환성에 의존합니다.
셀레늄 IDE란?
Selenium IDE는 녹음 및 재생 도구 역할을 하는 Firefox 플러그인입니다. 이 플러그인은 자동화 스크립트 생성 속도를 높이기 위한 솔루션으로 만들어졌습니다.
셀레늄 그리드란?
이 도구를 사용하면 사용자가 테스트 실행을 여러 환경 및 플랫폼에 동시에 배포할 수 있습니다.
셀레늄 RC(원격 제어)란?
RC는 원하는 프로그래밍 언어로 테스트 스크립트를 만들 수 있는 도구입니다. 또한 이 도구를 사용하면 다양한 브라우저에서 테스트 스크립트를 실행할 수 있습니다.
Selenese는 무엇을 의미합니까?
Selenium IDE에는 Selenium 명령을 작성하는 데 사용되는 Selenese라는 언어가 있습니다. 이러한 명령은 Selenium이 수행할 작업 또는 작업을 이해하는 데 도움이 됩니다.
Selenese의 유형은 무엇입니까?
- 행위. 애플리케이션의 상태를 조작하는 명령입니다. ‘이 상자 입력’ 및 ‘이 링크 클릭’은 작업의 예입니다.
- 접근자. 이러한 명령은 응용 프로그램의 상태 및 저장 결과를 변수로 만듭니다.
- 주장. 테스터가 애플리케이션의 상태를 확인할 수 있도록 하는 명령입니다.
Selenium에서 요소를 찾는 방법은 무엇입니까?
- ID
- 클래스명
- 이름
- 태그 이름
- 링크 텍스트
- 부분 링크 텍스트
- Xpath
- CSS 선택기
- DOM
XPath란 무엇입니까?
XPath는 Extensible Markup Language 경로를 기반으로 웹 요소를 찾습니다. XML 저장소는 임의의 데이터를 구성하고 전송합니다.
XPath의 “/” 및 “//”. 차이점은 무엇입니까?
“/” 또는 단일 슬래시는 절대 경로로 XPath를 생성합니다. 따라서 시작 노드/문서 노드에서 선택을 시작하도록 XPath가 생성됩니다.
“//” 또는 이중 슬래시를 사용하여 상대 경로로 XPath를 생성합니다. 따라서 생성된 XPath는 문서 내의 모든 위치에서 선택을 시작합니다.
절대 XPath란 무엇입니까?
Absolute XPath는 단일 슬래시 “/”로 시작합니다. 이러한 경로에는 루트에서 식별하려는 요소까지의 완전한 경로가 있습니다.
findElement()와 findElements()를 구별합니다.
- findElements(): 주어진 찾기 메커니즘을 사용하여 현재 페이지의 모든 요소를 찾고 모든 웹 요소 목록을 반환합니다.
- findElement(): 지정된 위치 지정 메커니즘을 사용하여 현재 페이지 내의 첫 번째 요소를 찾고 단일 웹 요소만 반환합니다.
Selenium에서 사용되는 주석 유형은 무엇입니까?
- 비포스위트
- 비포테스트
- 비포클래스
- 비포메서드
- 테스트 케이스
- 애프터메소드
- 방과후
- 애프터 테스트
- 애프터스위트
Selenium의 Assertion이란 무엇입니까?
어설션은 애플리케이션이 예상대로 작동하는지 여부를 결정합니다. 어설션이 실패하면 테스트 사례가 실패하고 실행이 중지됩니다.
Assert 및 Verify 명령이란 무엇입니까?
- 주장: 주장 조건이 참이면 프로그램은 다음 테스트 단계를 계속 실행합니다. 그러나 조건이 거짓이면 실행이 중지되고 다른 테스트는 수행되지 않습니다.
- 확인: 확인된 조건이 참인지 거짓인지에 관계없이 테스트 실행이 계속됩니다.
동일 출처 정책은 무엇이며 Selenium은 이를 어떻게 처리합니까?
동일 출처 정책은 특정 출처에서 로드한 스크립트나 문서가 다른 출처의 리소스와 상호 작용하는 방식을 제한하는 보안 메커니즘으로 설명할 수 있습니다. 이러한 접근 방식은 악성 스크립트를 격리하는 데 도움이 됩니다.
Selenium은 프록시 주입 방법을 사용하여 동일 출처 정책을 구현합니다. 이 설정에서 Selenium Server는 테스트 대상 애플리케이션과 브라우저 사이에서 클라이언트 구성 HTTP 프록시 역할을 합니다. 이 프록시 삽입은 가상 URL을 통해 AUT를 마스킹합니다.
Selenium IDE의 일시 중지 기능은 무엇입니까?
Pause는 지정된 시간 동안 자동 테스트 실행을 지연시키는 wait Selenium IDE 명령입니다. 대기 시간은 밀리초로 표시되며 3초 동안 대기하려면 3000을 입력해야 합니다.
Selenium IDE 테스트가 실패하는 이유는 무엇입니까?
- 비동기식 웹사이트. Selenium 테스트는 특정 순서로 생성됩니다. 그러나 일부 웹 사이트는 비동기 아키텍처를 기반으로 하며 때로는 응답이 순서대로 이루어지지 않는 경우가 있습니다.
- 시간 초과. 구성 요소가 로드되기를 기다리는 동안 Selenium이 실패할 수 있습니다. 이러한 오류는 “대기”를 사용하여 처리할 수 있습니다.
- 버그. 셀레늄은 항상 개선되고 있습니다. 그러나 간혹 버그가 발생하여 테스트가 실패할 수 있습니다.
- 소스 코드에 대한 작은 변경. 로케이터에 대한 변경 사항이 확인되면 이 로케이터에 대한 모든 테스트가 실패할 수 있습니다.
TestNG란 무엇이며 그 기능은 무엇입니까?
TestNG는 JUnit 및 NUnit에서 영감을 받은 테스트 자동화 프레임워크입니다. NG, Next Generation은 오픈 소스이자 무료 도구입니다.
다음은 TestNG 기능 중 일부입니다.
- 다양한 유형의 어설션이 있습니다.
- 사용자가 테스트를 병렬로 실행할 수 있습니다.
- ‘dependsOnMethods’ 및 ‘dependsOnGroups’ 특성을 사용하여 테스트를 서로 종속적으로 만들 수 있습니다.
- 데이터 기반 테스트를 수행합니다.
- 다양한 테스트를 그룹화할 수 있습니다.
암시적 대기와 명시적 대기의 차이점은 무엇입니까?
- 암시적 대기는 WebDriver가 예외를 발생시키기 전에 특정 기간 동안 기다리도록 지시합니다. 기본값은 0이며, 시간이 설정되면 WebDriver는 경과될 때까지 대기하여 예외를 발생시킵니다.
- 명시적 대기는 “ElementNotVisibleException” 예외를 발생시키기 전에 특정 조건 또는 ExpectedConditions를 기다리도록 WebDriver에 지시합니다. 명시적 대기는 지정된 요소에만 적용되는 ‘지능형’ 대기입니다.
개체 저장소란 무엇입니까?
개체 저장소는 테스트 스크립트 유지 관리의 부담을 덜어주는 자동화된 GUI 테스트 스크립트의 키-값 쌍 모음입니다. 이러한 경우 키는 개체를 식별하는 논리적 이름과 화면에서 개체를 식별하는 고유한 속성과 함께 제공되는 값입니다.
또한 모든 데이터가 저장되고 관리되는 중앙 위치이기도 합니다.
Selenium 웹 드라이버에서 어떤 다른 예외가 발생할 수 있습니까?
예외는 프로그램 또는 소프트웨어 응용 프로그램 실행 중에 발생할 수 있는 전례가 없거나 비정상적인 이벤트입니다. 또한 일반적인 프로그램 흐름을 방해하거나 영향을 미치는 예기치 않은 이벤트 또는 결과의 런타임 오류로 설명할 수 있습니다.
이들은 Selenium Web Driver의 주요 예외 사항입니다.
- NoSuchWindowException. WebDriver가 유효하지 않은(사용할 수 없는) 창으로 전환하려고 합니다.
- NoSuchElementException. 요소에 도달할 수 없을 때 발생합니다.
- NoAlertPresentException. 이 예외는 표시되지 않는 경고로 전환하려고 할 때 발생합니다.
- TimeoutException. 특정 명령이 지정된 시간 내에 완료되지 않았습니다.
- ElementNotVisibleException.
- ElementNotSelectableException. 이러한 예외는 요소가 DOM에서 사용 가능함에도 불구하고 비활성화된 경우(선택하거나 클릭할 수 없음) 발생합니다.
- SessionNotFoundException. 이 경우 WebDriver는 브라우저를 닫은 직후에 작동합니다.
다양한 유형의 로케이터 나열
- ID
- 이름
- 클래스 이름
- 태그 이름
- 링크텍스트
- 부분 링크 텍스트
- CSS 선택기
- XPath
중단점 및 시작점이란 무엇입니까?
- 시작점은 코드 실행이 시작되어야 하는 위치를 보여줍니다. 시작점은 코드 중간 또는 중단점에서 테스트 스크립트를 실행하는 데 사용할 수 있습니다.
- 중단점은 코드 실행을 중지하는 데 사용됩니다. 중단점은 코드가 예상대로 작동하는지 확인하는 데 사용됩니다.
마무리
위는 다음 테스트 자동화 엔지니어링 면접에서 접하게 될 Selenium 면접 질문 중 일부입니다. 테스트 자동화 엔지니어 역할에 지원하기 전에 필요한 기술이 있는지 확인하십시오.
기사를 재미있게 읽으셨나요? 세계와 공유하는 것은 어떻습니까?