소개
Mozregression Gui는 Mozilla에서 제공하는 회귀 범위 찾기 도구로, Firefox 및 기타 Mozilla 제품에서 버그가 도입된 변경사항 범위를 신속히 파악하는 데 사용됩니다. 이 도구는 바이너리 검색 알고리즘을 활용하여 문제 발생 시점을 정확히 찾아내며, 개발자와 테스터가 버그 원인을 추적하는 데 도움을 줍니다. 공식 홈페이지와 GitHub 저장소를 통해 최신 버전과 설치 가이드를 제공하며, MPL-2.0 라이선스 하에 오픈소스로 배포됩니다.
상세정보
회귀 범위 자동 탐색
mozregression은 바이너리 검색 알고리즘을 사용하여 버그가 처음 도입된 변경사항 범위를 자동으로 탐색합니다. 사용자는 문제 발생 전후의 버전을 지정하면 도구가 중간 버전을 자동으로 테스트하여 범위를 좁혀갑니다.
다양한 Mozilla 제품 지원
이 도구는 Firefox 기본 버전뿐만 아니라 Thunderbird, Fennec(Firefox for Android), Fenix(Firefox for Android) 등 다양한 Mozilla 제품과 호환되어 회귀 분석을 수행할 수 있습니다.
GUI 기반 인터랙티브 인터페이스
명령줄 버전 외에도 GUI 버전이 제공되어 사용자가 그래픽 인터페이스를 통해 쉽게 테스트 범위를 설정하고 결과를 시각적으로 확인할 수 있습니다. GUI 실행은 python gui/build.py run 명령어로 수행할 수 있습니다.
다운로드·설치 방법
공식 설치 가이드에 따라 Windows 환경에서 mozregression을 설치하고 사용하는 방법은 다음과 같습니다.
- 공식 홈페이지()에서 설치 가이드를 참조하거나, Scoop을 통해
scoop install mozregression-gui명령어로 설치할 수 있습니다. - 소스 코드로부터 직접 설치하려면 GitHub 저장소를 클론한 후, Python 3.8 이상 환경에서 가상 환경을 생성하고 의존성을 설치해야 합니다.
- Windows에서 개발 환경을 설정하는 구체적인 단계는 다음과 같습니다:
python3 -m venv venv명령어로 가상 환경을 생성합니다.venvScriptsactivate로 가상 환경을 활성화합니다.pip install -r requirementsrequirements-3.9-Windows.txt로 Windows용 의존성을 설치합니다.pip install -e .로 현재 디렉터리의 패키지를 개발 모드로 설치합니다.
기본 사용법/명령어
설치 후 mozregression을 사용하는 기본 방법은 다음과 같습니다.
- 명령줄 버전 사용: 가상 환경이 활성화된 상태에서
mozregression --help명령어를 실행하여 사용 가능한 옵션을 확인할 수 있습니다. - GUI 버전 실행:
python gui/build.py run명령어를 입력하여 그래픽 인터페이스를 실행할 수 있습니다. - 단위 테스트 실행:
- 콘솔 버전 테스트:
pytest tests - GUI 버전 테스트:
python gui/build.py test
- 콘솔 버전 테스트:
이런 경우에 유용합니다
Firefox nightly 빌드에서 특정 기능이 갑자기 작동하지 않거나 오류가 발생했을 때, 해당 문제가 어느 변경사항에서 비롯되었는지 빠르게 파악해야 하는 개발자나 QA 엔지니어에게 유용합니다. 예를 들어, 특정 버전에서 플러그인 호환성이 끊어진 경우, mozregression을 사용하여 문제 발생 전후의 빌드를 자동으로 테스트하여 원인 커밋을 특정할 수 있습니다.
지원 환경·시스템 요구사항
mozregression은 Windows, Linux, macOS 운영 체제에서 실행할 수 있으며, Python 3.8 이상이 필요합니다. Windows 환경에서는 공식 문서에 명시된 requirements-3.9-Windows.txt 파일을 기준으로 의존성을 설치해야 정상적으로 동작합니다.
최신 버전·업데이트
현재 버전은 7.3.0이며, 최신 릴리스 정보와 변경 사항은 GitHub 저장소의リリース 페이지에서 확인할 수 있습니다. 선행 버전은 .devN 형식으로, 알파/베타/릴리스 후보는 aN, bN, rcN 형식으로 태그가 지정됩니다.
시스템 요구사항
별도의 시스템 요구사항이 등록되지 않았습니다.


