본문 바로가기

활동/SK네트웍스 Family AI 캠프 2기

SK네트웍스 Family AI 캠프 2기 : 25th week (11월 1주차)

과정 종료까지 이제 얼마 안 남았습니다...!

마지막까지 최선을 다해봐야겠어요.

그동안 늘 해왔던 것처럼... 겸손한 마음으로 성실하게 임해야겠습니다.

 

 

● 성취

이번 주에는 제출해야 하는 문서가 4개나 있었어요.

가뜩이나 개인적인 사정들 때문에 몸과 마음이 지쳤어서 그런지 더 버겁게 느껴졌어요.

그래도 포기하지 않고 할 일들을 다 끝냈다는 점에서 뿌듯함이 느껴집니다.

 

아무리 힘든 상황에 놓여 있어도 책임은 져야 합니다.

그것이 제가 정의하는 삶입니다.

저는 그렇게 삶을 배웠습니다.

 

삶 앞에서 도망갈 바에 정면승부 하는 것이 오히려 마음이 편합니다...

위버멘쉬의 자세로!

 

+) 그래도 가끔 하소연 들어주는 친구들아 고마워...^^

 

● 학습 & 개선

이번 주간에는 시스템 아키텍처, LLM 활용 소프트웨어, 자체 LLM 인공지능, 테스트 계획 및 결과 보고서 등을 문서로 제출해야 했습니다.

 

다른 문서들은 작성해 본 전적이 있는데 '테스트 계획 및 결과 보고서'는 이번에 처음 작성한 문서였습니다.

그래서 문서 작성 전에 앞서 다양한 자료를 찾아봤습니다.

 

오늘은 '테스트 계획 및 결과 보고서'를 작성하면서 알아본 내용에 대해 공유하려고 합니다.

 

# 테스트 계획 및 결과 보고서 작성법

'테스트 계획 및 결과 보고서 작성법'는 특정 기능이 제대로 작동하는지 확인하는 절차를 문서화한 것입니다.

+) Tip : '테스트 케이스 작성법'이라고 검색하면 현직 QA(Quality Assurance)분들이 작성하신 정보글들이 아주 많습니다.

이 문서를 통해 소프트웨어가 요구사항을 만족하는지, 오류 없이 작동하는지 검증할 수 있어요.

 

테스트 케이스 문서를 작성하기 전에 앞서 '요구사항'부터 먼저 분석하면 좋습니다!

저도 테스트 계획 및 결과 보고서를 작성하느라 2주차에 제출한 '요구사항 정의서'를 다시 훑어봤네요....!

 

그 다음으로 테스트 시나리오를 설계합니다.

테스트 시나리오는 테스트 케이스의 큰 틀을 의미합니다. 

한 기능에서 발생할 수 있는 테스트 케이스들의 집합이라고 생각하면 됩니다!

 

이렇게 만들어진 시나리오를 바탕으로 테스트 케이스를 작성할 수 있어요.

이때 각 테스트 케이스는 '테스트 ID, 테스트 조건, 테스트 데이터, 예상 결과, 실제 결과' 등의 항목으로 구성되어 있습니다.

 

테스트 케이스는 이런 식으로 작성할 수 있어요!

테스트 ID 테스트 조건 테스트 데이터 예상 결과
TC-LOGIN-01 ID/PWD가 일치할 때 ID : user01, PWD : 1234 '로그인 성공' 메시지 표시 및 메인 페이지 이동

 

 

요구사항 정의서를 읽고 테스트 케이스를 여러 개 만든 다음, 기능을 잘 수행하는지 확인하면 됩니다.

테스트 결과도 표에 함께 기록하면 좋아요. 아래 예시처럼요!

 

테스트 ID 테스트 조건 테스트 데이터 예상 결과 테스트 결과
TC-LOGIN-01 ID/PWD가 일치할 때 ID : user01,
PWD : 1234
'로그인 성공' 메시지 표시 및 메인 페이지 이동 Passed

 

 

 

# Python과 테스트 케이스 검증 (pytest 라이브러리)

Python에서는 pytest 라이브러리를 사용하여 테스트 케이스 검증 많이 합니다.

+) 요건 우리 멘토님께서 알려주신 정보입니다...! 멘토님 너무 좋으셔요💕

 

• pytest 라이브러리 설치

# bash
pip install pytest

 

먼저 pytest 라이브러리를 설치합니다.

 

• 테스트 케이스 코드 작성

# Python
# test_login.py
def test_login_success():
    user_id = "user01"
    password = "pass1234"
    assert login(user_id, password) == "로그인 성공"

 

그 다음으로 검증하려는 테스트케이스를 코드로 작성합니다.

단, 테스트하려는 파일 이름이 test_로 시작하고, 각 테스트 함수 이름도 test_로 시작해야 합니다.

 

• pytest 실행

# Bash
pytest

 

테스트 파일이 있는 폴더에서 위 명령어를 실행하면 테스트를 할 수 있습니다.

 

# 여러 입력값 테스트

# Python
# test_login.py
import pytest

@pytest.mark.parametrize("user_id, password, expected", [
    ("user01", "pass1234", "로그인 성공"),
    ("user02", "wrongpass", "로그인 실패"),
    ("", "pass1234", "아이디를 입력하세요"),
    ("user01", "", "비밀번호를 입력하세요"),
])
def test_login(user_id, password, expected):
    assert login(user_id, password) == expected

 

하나의 테스트 함수에 여러 입력값을 테스트하고 싶은 경우에는 '@pytest.mark.parametrize' 데코레이터를 활용하면 좋습니다!

 

# 사전조건 및 후속 작업 정의

# Python
# test_login.py

# 사전조건
def setup_method():
    # 예를 들어, 테스트용 데이터베이스 초기화 등 준비 작업
    print("테스트 준비")

# 후속작업
def teardown_method():
    # 테스트가 끝난 후 정리 작업
    print("테스트 정리")

 

사전조건과 후속작업은 위와 같은 코드 형태로 정의할 수 있습니다.

이렇게 하면 다음 작업으로 넘어갈 때 아주 편리해요!

 

고되고 지친 일들을 겪어도 잘 헤쳐나가는 제 자신에게 오늘 칭찬을 해줄래요....!

새벽 넘어서 서류 제출하고, 아침까지 블로그 작성하느라 조금 피곤하긴 하지만 스스로가 기특하게 느껴집니다...^^

 

주늑들지 말고 꾸준히 줏대 있는 자세로 살아가겠습니다!

좀 자고 일어나서 SK AI 컨퍼런스 다녀올 준비를 해야겠어요.

 

휴가 쓴 보람 알차게 느끼고 오겠습니다!!

 

+) 부족한 부분이 있으면 댓글로 말씀해 주세요! 겸허한 마음으로 더 공부하겠습니다.