본문으로 건너뛰기
고급약 30분

ISO/IEC 25023 측정량을 실제 측정 절차로 옮기기

측정량을 정의하는 법은 모듈 25에서 다뤘다. 문제는 정의와 실측 사이가 비어 있다는 것이다. 8대 품질 특성을 어떤 환경에서 어떤 도구로 몇 번 재고, 그 결과를 어떤 서식에 남겨 제품설명서 수치로 환산할지.

  • #ISO25023
  • #품질측정
  • #측정절차
  • #GS인증
  • #환경매트릭스
  • #자체시험

개념

정의와 실측 사이의 빈칸

모듈 25 레슨 3에서 25023의 측정량을 다뤘다. 품질 특성을 공식·단위·데이터 출처를 갖춘 지표로 바꾸는 일이었고, 지표 하나를 직접 정의하는 연습까지 했다. 모듈 31에서는 그 반대쪽 끝을 다뤘다 — 측정이 끝난 뒤 결과를 성적서에 어떻게 적는지.

그 사이가 비어 있다. 정의된 측정량을 실제로 재는 절차 다.

25023 측정량 정의        →   [ 이 레슨 ]   →   성적서·제품설명서 수치
(모듈 25 레슨 3)              측정 절차          (모듈 31, 이 모듈 레슨 3)
 
빈칸에 들어가는 것
  무엇을 대상으로 · 어느 환경에서 · 어떤 도구로 · 몇 번 · 어떤 서식에

이 빈칸을 채워 두는 이유는 인증 때문만이 아니다. 채워 두지 않으면 기관이 잰 값과 우리가 잰 값이 달라도 왜 다른지 설명할 수 없다. 그 상황이 결함 라운드에서 가장 소모적인 장면이다(레슨 5).

측정 절차서의 일곱 칸

측정량 하나에 대해 채워야 할 칸은 정해져 있다. 서식으로 만들어 두면 측정량이 늘어도 같은 틀로 확장된다.

칸무엇을 적나비우면 생기는 일
1. 측정 대상어느 기능·화면·API·트랜잭션시험원과 다른 지점을 잰다
2. 측정 환경다섯 축(하드웨어·소프트웨어·네트워크·데이터·시점)값이 재현되지 않는다
3. 도구·방법도구와 버전, 설정, 측정 지점도구 차이가 값 차이로 온다
4. 절차 단계준비 → 실행 → 수집 → 정리사람마다 다르게 잰다
5. 반복·표본반복 횟수, 워밍업, 제외 구간하루치 운을 능력으로 착각한다
6. 기록 서식원자료와 집계표의 형태사후 검증이 불가능하다
7. 판정기준값과 결정 규칙"적합"이 의견이 된다

2번은 모듈 31 레슨 2의 다섯 축을 그대로 쓴다. 5번은 모듈 32 레슨 3의 반복성·재현성 구분이 그대로 적용된다. 7번은 모듈 31 레슨 3의 결정 규칙이다. 이 레슨의 일은 그 조각들을 하나의 절차서로 묶는 것 이다.

8대 특성을 실제로 어떻게 재는가

GS 시험의 품질평가는 8대 특성으로 구성된다. 특성마다 측정의 성격이 달라서, 같은 절차서 틀에 넣어도 채워지는 내용이 크게 다르다.

특성실무에서 재는 형태주의할 점
기능적합성기능 목록 대비 케이스 통과율, 기능 구현 완전성기능 목록이 곧 분모다(레슨 3)
성능효율성응답시간·처리량·자원 사용률백분위로. 평균만 적으면 안 된다
호환성환경 조합별 동작, 타 시스템 연동조합 폭발 관리가 핵심
사용성문서·UI 일관성, 도움말·오류 메시지의 적절성주관 평가로 흐르기 쉬워 근거를 남긴다
신뢰성장시간 안정성, 장애 복구, 결함 밀도측정 기간을 미리 못 박는다
보안성인증·권한·암호화·로그보유 인증으로 면제 경로가 있다(레슨 1·2)
유지보수성모듈 구조, 로그·설정의 분리, 변경 용이성코드 지표는 도구 버전에 민감하다
이식성설치·제거·환경 이관, 지원 환경 범위설명서 절차와 일치해야 한다(레슨 3)

두 줄만 따로 보자.

성능효율성 은 모듈 31 레슨 4가 이미 상세히 다뤘다 — 백분위, 분포, coordinated omission. 여기서 더할 것은 부하 모델을 제품설명서 문장과 맞추는 일 이다. 설명서에 "동시 사용자 500명"이라고 적었다면, 그것이 동시 접속 세션 500인지, 초당 요청 500인지, 활성 사용자 500인지가 정해져야 같은 것을 재게 된다. 이 정의가 없으면 우리 측정과 기관 측정이 3배 차이가 나기도 한다.

사용성 은 가장 많이 흔들리는 항목이다. 주관이 개입하는 만큼 근거를 남기는 방식으로 재야 한다 — 오류 메시지 일람과 각 메시지가 원인·조치를 담고 있는지의 체크, 용어 일관성 목록, 도움말 접근 경로의 존재 여부처럼 세어 셀 수 있는 형태 로 바꾸는 것이다.

호환성 — 조합 폭발을 줄이는 것이 절차 설계다

호환성 측정에서 실무자가 가장 먼저 만나는 벽은 환경 조합이다.

OS 3 × DB 3 × 웹서버 2 × 브라우저 4 = 72 조합
→ 기능 30개를 72 조합에서 다 돌리면 2,160회

전부 재는 것은 현실적이지 않고, 필요하지도 않다. 두 가지 수단이 있다.

첫째, 지원 범위를 문서에서 닫는다. 레슨 3의 규칙이 여기서 값을 낸다. "모든 브라우저 지원"을 "Chrome·Edge 최신 2개 버전"으로 바꾸면 조합이 절반 이하로 줄어든다. 측정 비용을 줄이는 가장 싼 방법은 약속을 좁히는 것 이다.

둘째, 조합을 설계한다. 모듈 3에서 다룬 페어와이즈(pairwise)가 그대로 쓰인다. 모든 조합이 아니라 모든 쌍 을 덮는 조합 집합을 뽑으면 72개가 10여 개로 줄어든다. 그리고 전 기능을 전 조합에서 돌리는 대신 계층을 나눈다.

전 기능 × 기준 환경 1개          ← 기능적합성의 본체
핵심 기능 × 페어와이즈 조합       ← 호환성 확인
설치·기동 × 전 지원 환경          ← 이식성 (가장 값싸고 자주 깨진다)

세 번째 줄이 실전 감각이다. 기능은 대개 환경에 둔감한데 설치와 기동은 환경에 아주 민감 하다. 지원 환경 전부에서 설치만 돌려 보는 것이 비용 대비 발견율이 가장 높다.

반복 횟수와 워밍업 — 몇 번 재야 하는가

성능 측정에서 "몇 번 재야 하나"는 답이 있는 질문이 아니지만, 결정 규칙은 만들 수 있다.

워밍업        JIT·캐시·커넥션 풀이 안정되기 전 구간은 제외한다
              (제외한다는 사실과 구간을 기록에 남긴다)
반복          같은 조건에서 최소 3회. 값의 산포를 보고 늘린다
조건 간 반복  날짜·재배포를 바꿔 최소 1회 더 ★
채택값        평균이 아니라 백분위. 조건 간 차이는 별도로 기록

별표가 모듈 32 레슨 3의 재현성이다. 하루에 30번 재서 얻은 좁은 산포를 근거로 제품설명서에 수치를 적으면, 기관이 다른 날 다른 환경에서 잰 값이 그 수치를 넘는 일이 생긴다. 제품설명서 숫자는 우리 최고 기록이 아니라 재현되는 하한 이어야 한다.

자체 측정값을 제품설명서 수치로 환산하기

레슨 3에서 "실측값보다 보수적으로 적는다"고 했다. 그 보수성을 감으로 정하지 않는 방법이 있다.

설명서 기재값 = 재현되는 값에서 안전 마진만큼 물러난 값
 
  재현되는 값   조건을 바꿔 반복했을 때도 만족한 값 (최악 조건 기준)
  안전 마진     조건 간 산포 + 시험 환경 차이 + 제품 변경 여지

구체적인 예로 보자.

단계값
기준 환경 반복 측정 p951.12 s
날짜·재배포를 바꾼 조건의 p951.38 s ← 재현되는 값
시험 환경 차이 여지(공유 인프라·데이터량)+20% 가정
설명서 기재 후보약 1.7 s
설명서 기재값2.0 s 이내 (권장 사양·동시 500 기준)

마지막 줄이 방어된 문장이다. 1.12를 근거로 "1.2초 이내"라고 적었다면 결함 라운드가 한 번 더 돌아간다. 마진 하나가 한 달을 만든다.

마진을 크게 잡는 것이 손해처럼 느껴진다면, 영업용 자료와 사양서를 분리하는 것이 답이다(레슨 3의 규칙 ④). "보증은 2초, 실측은 1.1초" 라는 두 숫자를 함께 관리하면 양쪽이 다 산다.

기관 측정과 우리 측정이 다를 때

다를 수 있고, 실제로 다르다. 중요한 것은 차이를 설명할 수 있는가 다. 설명 가능한 상태를 만드는 것이 이 레슨의 최종 목적이다.

차이가 났을 때 순서대로 대조할 항목은 이미 정해져 있다.

1. 측정 대상이 같은가        같은 API·트랜잭션·시나리오인가
2. 부하 모델 정의가 같은가   '동시 사용자'의 정의
3. 환경 다섯 축이 같은가     특히 데이터량과 네트워크
4. 측정 지점이 같은가        클라이언트 측정인가 서버 측정인가
5. 집계 방식이 같은가        백분위 산출, 오류 포함 여부, 워밍업 제외

이 목록으로 대조하려면 우리 쪽 절차서와 원자료가 남아 있어야 한다. 남아 있지 않으면 협의는 "우리 환경에서는 잘 나왔습니다"로 끝나고, 그 문장은 아무것도 바꾸지 못한다. 모듈 31 레슨 6의 클레임 대응과 모듈 32 레슨 4의 원자료 보관이 여기서 합쳐진다.

실무에서 왜 필요한가

측정 절차서는 인증을 한 번 받고 버리는 문서가 아니다. 두 곳에서 계속 쓰인다.

첫째, 변경인증 이다(레슨 6). 다음 버전에서 같은 측정량을 다시 재야 할 때, 절차서가 있으면 같은 방식으로 재고 비교할 수 있다. 없으면 매번 새로 재는 셈이라 값의 변화가 제품 변화인지 측정 변화인지 알 수 없다.

둘째, 평소의 성능 회귀 감시 다. 인증용으로 만든 절차를 CI에 얹으면 릴리스마다 같은 지표가 쌓인다. 이 데이터가 있으면 제품설명서 수치를 올릴 근거도, 성능 저하를 조기에 잡을 근거도 생긴다. 모듈 14의 지속적 테스팅과 모듈 16의 비기능 테스트가 인증 작업과 만나는 지점이다.

그리고 이 작업은 QA가 개발과 대화하는 언어를 바꾼다. "느린 것 같다"가 아니라 "기준 환경 p95가 1.12초에서 1.51초로 올랐고 조건 간 산포는 변하지 않았다"고 말할 수 있게 된다.

채용시장에서의 위치

성능·비기능 측정을 절차로 설계할 수 있는 사람은 도구를 쓸 수 있는 사람보다 훨씬 적다. 공고에는 "성능 테스트 경험", "비기능 요구사항 검증" 으로 적히지만, 면접에서 갈리는 지점은 도구 사용 경험이 아니라 반복 설계와 값의 재현성 을 설명할 수 있는지다.

인증 맥락에서는 이 역량이 곧 일정 단축으로 환산된다. 자체 측정으로 설명서 수치를 방어해 둔 회사는 성능 항목에서 결함이 나오지 않고, 그 차이가 분기 일정을 만든다.

면접에서 힘 있는 답변의 형태는 이렇다. "제품설명서 수치를 개발 환경 최고 기록으로 적어 두었던 것을 바꿨습니다. 날짜와 재배포를 바꿔 세 조건에서 반복 측정하고, 최악 조건 p95에 20% 마진을 얹어 기재값을 정했습니다. 같은 절차를 CI 주간 작업으로 옮겨서, 이후에는 릴리스마다 같은 지표가 쌓입니다."

실습 과제

과제 1 — 측정 절차서 한 장 쓰기 (30분)

제품설명서에 적힌(또는 적을) 수치 하나를 골라 본문의 일곱 칸을 채운 절차서를 만든다.

측정량      :
1 측정 대상 :
2 측정 환경 : (다섯 축)
3 도구·방법 : (도구·버전·설정·측정 지점)
4 절차 단계 :
5 반복·표본 : (워밍업 제외 구간 / 반복 / 조건 간 반복)
6 기록 서식 : (원자료 경로 · 집계표 형식)
7 판정      : (기준값 · 결정 규칙)

완성 후 동료에게 주고 그 사람이 같은 값을 낼 수 있는지 묻는다. 못 한다고 답하면 어느 칸이 부족한지 표시한다.

과제 2 — 환경 조합 줄이기 (25분)

우리 제품의 지원 환경을 나열해 총 조합 수를 계산하고, 세 가지 방법으로 줄인다.

가. 지원 범위를 문서에서 좁혀 줄인 조합 수
나. 페어와이즈로 뽑은 조합 수
다. 계층 분리(전 기능×기준환경 / 핵심기능×페어와이즈 / 설치×전환경) 후 총 실행 수

원래 실행 수와 '다'의 실행 수를 비교하고, 줄이면서 포기한 것이 무엇인지 한 줄로 적는다. 포기한 것이 없다고 답하면 다시 생각한다.

과제 3 — 설명서 수치 환산 (25분)

성능 지표 하나에 대해 본문의 환산 표를 실제로 채운다. 실측이 어려우면 기존 측정 이력이나 모니터링 데이터를 쓴다.

| 단계 | 값 | 근거 |
| 기준 환경 반복 p95 | | |
| 조건 바꾼 p95 (재현되는 값) | | |
| 안전 마진 근거 | | |
| 설명서 기재값 | | |

그리고 영업에 전달할 "두 숫자 문장"을 만든다 — 보증선과 실측값을 함께 말하는 한 문장이다.

과제 4 (선택) — 사용성을 셀 수 있게 바꾸기 (20분)

사용성 평가 항목을 세어 셀 수 있는 형태 로 재정의한다. 최소 다섯 개를 만들고, 각각에 측정 방법과 판정 기준을 붙인다.

예: 오류 메시지 중 '원인과 조치'를 모두 담은 비율
    측정 방법 — 전체 오류 메시지 일람에서 두 요소 포함 여부 계수
    판정 기준 — 90% 이상

주관적 인상을 숫자로 바꾸는 연습이고, 이 발상은 사내 품질 지표에도 그대로 쓰인다.

자가 체크리스트

  • 측정량 정의와 실측 사이에 절차라는 단계가 있다는 것을 안다
  • 측정 절차서의 일곱 칸을 말하고 각 칸이 비었을 때의 문제를 안다
  • 8대 특성별로 재는 형태가 어떻게 다른지 설명할 수 있다
  • '동시 사용자' 같은 용어의 정의를 먼저 맞춰야 하는 이유를 안다
  • 사용성을 세어 셀 수 있는 형태로 바꿀 수 있다
  • 환경 조합 폭발을 줄이는 두 수단(범위 좁히기·페어와이즈)을 안다
  • 계층 분리에서 설치·기동을 전 환경에 돌리는 이유를 설명할 수 있다
  • 워밍업 제외와 반복 설계의 원칙을 안다
  • 조건 간 반복이 왜 필요한지(재현성) 안다
  • 설명서 기재값을 최악 조건 + 안전 마진으로 환산할 수 있다
  • 보증선과 실측값을 분리해 관리하는 이유를 안다
  • 기관 측정과 우리 측정이 다를 때 대조할 다섯 항목을 안다

흔한 실수

측정 대상을 말로만 합의한다. "로그인 응답시간"이 어느 요청까지 포함하는지 정하지 않으면 같은 것을 재지 않는다.

개발 환경 최고 기록을 설명서에 적는다. 재현되지 않는 값은 보증선이 될 수 없다.

반복을 하루 안에서만 한다. 좁은 산포는 측정능력이 아니라 그날의 환경 상태다.

워밍업을 포함해 잰다. 초기 구간이 섞이면 값이 나빠지고, 제외했다는 기록이 없으면 나중에 설명할 수 없다.

전 조합을 다 재려 한다. 조합 폭발을 설계로 줄이지 않으면 일정이 먼저 무너진다.

설치 시험을 기준 환경에서만 한다. 설치·기동은 환경에 가장 민감한 영역이다.

사용성을 인상으로 평가한다. 근거가 남지 않아 지적에 대응할 수 없다.

원자료를 남기지 않는다. 기관 값과 다를 때 대조할 근거가 사라진다 (모듈 32 레슨 4).

참고 자료

낯선 말 풀이

이 레슨에 나온 약어입니다. 본문에서도 처음 나올 때 점선으로 표시해 두었습니다 (제목과 링크 글자는 그대로 둡니다).

API — 응용 프로그램 인터페이스
프로그램끼리 주고받는 창구. 사람이 화면 버튼을 누르는 대신, 프로그램이 정해진 주소로 요청을 보내 답을 받는다.
GS — 지에스 인증
국내 소프트웨어 품질 인증. 받으면 공공 조달에서 유리해진다.
UI — 사용자 인터페이스
사람이 직접 보고 누르는 부분 — 화면, 버튼, 입력창.
p95 — 95 백분위
느린 쪽 5%를 뺀 나머지가 이 안에 들어온다는 뜻. 100번 중 95번이 그 시간 안에 끝났다는 말이다.
CI — 지속적 통합
코드를 올릴 때마다 자동으로 합쳐서 빌드하고 시험까지 돌리는 방식.
QA — 품질보증
만든 것이 쓸 만한지 확인하고, 애초에 덜 망가지게 만드는 방법을 정하는 일. "테스트"는 그 일의 일부다.
ISO/IEC — 국제표준화기구·국제전기기술위원회 공동 표준
두 국제 단체가 함께 낸 표준이라는 표시. 뒤에 붙는 숫자가 문서 번호다.
ISO — 국제표준화기구
여러 나라가 모여 "이건 이렇게 하자"를 문서로 정하는 단체. 그 문서 자체를 번호로 부른다.
TTA — 한국정보통신기술협회
국내 정보통신 표준을 만들고 시험·인증도 하는 기관.

용어집 전체 보기