Bahmni 품질 보증
Bahmni 품질 검사는 기여자, 검토자, 핵심 개발팀·유지관리자 및 커뮤니티 전반에 의존합니다. 새 기능을 개발하는 동안 기존 기능이 계속 작동하도록 테스트 자동화에 크게 집중합니다.
각 릴리스에서는 일반적으로 비기능 테스트보다 기능 테스트에 중점을 둡니다(아래 부록 '소프트웨어 프로젝트의 테스트 유형' 참조). 사용성에 관한 의견은 주로 커뮤니티에서 받습니다. 완전히 새로운 기능을 개발할 때는 사용성 테스트를 비롯한 비기능 테스트도 수행합니다.
개발 프로세스에서 QA의 역할
개발 프로세스
애자일 소프트웨어 개발 프로세스를 따르며 일반적으로 1년에 두 차례 주요 릴리스를 진행합니다. 아래 그림은 Bahmni 개발 프로세스의 여러 단계와 커뮤니티에 새 버전을 출시하기 전에 품질을 보장하는 방법을 보여줍니다.
계획 단계: 정의된 로드맵 프로세스를 사용하여 각 릴리스의 작업 항목에 우선순위를 정합니다.
릴리스에 포함되는 항목의 예시는 관련 문서를 참조하십시오.
릴리스 결과물이 충분히 상세한 수준으로 정해지면 개발 추적 도구인 JIRA에 사용자 스토리를 만듭니다. 예를 들어 0.92 릴리스 JIRA 보드를 확인하십시오.
이 단계의 QA 활동
- 각 스토리에 인수 기준을 추가합니다. 아래 예시를 참조하십시오.
개발 단계
Bahmni의 일반적인 테스트 피라미드
코드를 작성할 때 개발자가 자동화된 단위 테스트도 작성하도록 권장합니다.
적용할 수 있고 실현 가능한 경우 개발자가 자동화된 통합 테스트와 기능 테스트도 작성합니다. 다음 예시를 참조하십시오.
- 단위 테스트: 예시 1, 예시 2. 통합 테스트: 예시 1, 예시 2. 기능 테스트: 예시 1, 예시 2.
기존 테스트 모음은 개별 모듈의 소스 코드 또는 저장소에서 확인하십시오. 테스트는 JavaScript나 spec 등 서로 다른 기술로 작성될 수도 있습니다.
- 전담 QA 인력이 없는 경우가 많으므로 자동화된 단위 테스트와 기타 테스트를 통해 작성된 코드의 품질을 보장합니다. 기여자는 커뮤니티 프로세스를 따라 PR을 제출해야 합니다. 검토자가 코드와 테스트 범위에 충분히 확신해야 PR이 병합되므로 검토 의견을 존중하십시오. 일부 기능은 개발 환경 테스트를 요청할 수 있습니다. PR을 등록하면 관련 Travis CI 빌드가 시작되므로 보고된 오류를 확인하고 수정하십시오. 유지관리자·검토자는 PR을 검토하고 병합할 때 명백한 문제가 없는지도 확인해야 합니다. PR이 병합되면 Bahmni CI/CD가 빌드를 실행하고 관련 단위·기능 테스트를 수행하며 QA 환경에 배포할 수 있습니다. 자동 배포되지 않으면 유지관리자에게 최신 빌드를 QA 환경에 반영해 달라고 요청하고 기능을 검증하십시오.
테스트 단계
테스트 단계는 내부적으로 두 하위 단계로 나뉩니다.
1단계: 회귀 테스트
릴리스의 모든 스토리 개발이 완료되면 개발 동결을 선언하고 이후에는 버그 수정만 허용합니다. 해당 릴리스에 적극적으로 참여하거나 기능을 개발한 커뮤니티 회원들이 모여 회귀 테스트를 수행합니다. 커뮤니티 테스트에 공개하기 전에 버전의 안정성을 확인하는 것이 목적이며 일반적으로 2주가 걸립니다.
2단계: 커뮤니티 테스트
버전이 충분히 안정적이라고 판단되면 커뮤니티 테스트를 시작합니다. 이 버전을 릴리스 후보라고 하며 릴리스 관리자가 참여 방법과 함께 Talk 커뮤니티 채널에 기여 요청을 게시합니다.
- 지정된 기간(일반적으로 2주 이상) 동안 공개 QA 인스턴스에서 커뮤니티 테스트를 수행합니다. 커뮤니티에 정기적으로 진행 상황을 알립니다. 수정 여부는 보통 스탠드업 회의에서 결정하며 논쟁적이거나 중요한 문제는 Talk 채널에서도 논의합니다. 해결할 수 없는 문제가 있으면 커뮤니티가 판단하여 릴리스 노트에 기록합니다.
릴리스 단계
- 기능 문서를 만들고 영상과 위키를 업데이트합니다.
- 릴리스 노트를 작성하고 검토합니다.
- 최종 빌드를 업로드하면 유지관리자가 주로 대상 환경 설치를 중심으로 최종 테스트를 수행합니다.
- Talk, Twitter 등의 커뮤니티 채널에 릴리스를 공지합니다.
부록 - 소프트웨어 개발의 테스트 유형
일반적인 소프트웨어는 아래 다이어그램과 같이 여러 유형의 테스트를 거칩니다.
각 테스트 유형의 의미는 관련 문서에서 자세히 설명합니다.
Bahmni Wiki · CC BY-SA 4.0