사용자로부터 텍스트 입력을 받아 새로운 텍스트 파일로 저장하고, 그 결과를 검증하는 GUI 기반 Python Tkinter 애플리케이션이 있다고 가정해 보겠습니다. 저장된 파일에는 사용자가 입력한 텍스트가 그대로 담기며, 우리는 이 파일을 열어 사용자 입력이 올바르게 처리되었는지 확인할 수 있습니다.
기능 테스트(Functional Testing)란?
기능 테스트에서는 주로 백엔드 API, 데이터베이스, 사용자와 서버 간의 통신, 입출력(Input/Output) 등에 초점을 맞춥니다. 즉, 애플리케이션이 요구사항에 따라 의도한 대로 동작하는지를 검증하는 것이 핵심입니다.
기능 테스트 전략을 활용해 애플리케이션을 점검하려면 먼저 사용자 요구사항과 기대되는 입력/출력을 명확히 이해해야 합니다. 사전 분석 단계를 거친 후, 다양한 테스트 케이스를 바탕으로 애플리케이션을 테스트하게 됩니다.
예를 들어, 사용자 입력을 받아 시스템에 텍스트 파일 형태로 저장하는 GUI 기반 Tkinter 애플리케이션을 생각해 볼 수 있습니다.
예제 코드
from tkinter import *
win = Tk()
win.geometry("700x600")
# 제목 라벨 생성
title_label = Label(win, text="Enter the File Name")
title_label.pack(anchor='n')
# 제목 입력창 생성
title_entry = Entry(win, width=35)
title_entry.pack(anchor='nw')
# 저장 버튼 및 함수 정의
def save():
# 제목 입력창과 텍스트 입력창의 내용을 가져옴
# 해당 내용을 기록할 파일 생성
file_title = title_entry.get()
file_contents = text_entry.get(0.0, END)
with open(file_title + ".txt", "w") as file:
file.write(file_contents)
print("File successfully created")
file.close()
pass
# 파일 내용을 저장할 버튼 생성
save_button = Button(win, text="Save The File", command=save)
save_button.pack()
# 텍스트 입력창 생성
text_entry = Text(win, width=40, height=30, border=4, relief=RAISED)
text_entry.pack()
win.mainloop()실행 결과
위 코드를 실행하면 다음과 같은 창이 나타납니다.
파일 이름을 입력하고 Save The File 버튼을 클릭하면, 입력한 이름 그대로 “Tutorials.txt”라는 파일이 저장됩니다.
이후 파일이 저장된 위치로 이동하여 해당 텍스트 파일을 외부 프로그램으로 열어 보면, 사용자가 입력한 텍스트와 동일한 내용이 담겨 있는 것을 확인할 수 있습니다. 이처럼 저장된 파일의 내용을 직접 검증함으로써 애플리케이션의 입출력 기능이 올바르게 작동하는지 기능 테스트를 수행할 수 있습니다.