과정 종료까지 이제 얼마 안 남았습니다...!
마지막까지 최선을 다해봐야겠어요.
그동안 늘 해왔던 것처럼... 겸손한 마음으로 성실하게 임해야겠습니다.
● 성취
이번 주에는 제출해야 하는 문서가 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 컨퍼런스 다녀올 준비를 해야겠어요.
휴가 쓴 보람 알차게 느끼고 오겠습니다!!
+) 부족한 부분이 있으면 댓글로 말씀해 주세요! 겸허한 마음으로 더 공부하겠습니다.
'활동 > SK네트웍스 Family AI 캠프 2기' 카테고리의 다른 글
SK네트웍스 Family AI 캠프 2기 : 24th week (10월 4주차 + 10월 회고) (3) | 2024.10.28 |
---|---|
SK네트웍스 Family AI 캠프 2기 : 23th week (10월 3주차) (2) | 2024.10.21 |
SK네트웍스 Family AI 캠프 2기 : 22th week (10월 2주차) (3) | 2024.10.14 |
SK네트웍스 Family AI 캠프 2기 : 21th week (10월 1주차) (0) | 2024.10.07 |
SK네트웍스 Family AI 캠프 2기 : 20th week (9월 4주차 + 9월 회고) (3) | 2024.09.30 |