E D R , A S I H C RSS

Test First Programming

�� ��드를 만들기 �� ��당 ��드�� ������� ������ ��드를 먼�� 만드는 기법.

��떻게 보면 답법과� 같다. 로그래머는 ��단 ������ 만들려고 ��는 부��� 대�� 내리고, TestCase를 먼�� 만들�� ���로�������다. ��렇게 UnitTest Code를 먼�� 만듬��로UnitTest FrameWork�� ������러��게 내가 본래 만들고�� ��는 기능과 �� 만들����고 ��드가 ��는���� ������는���� 대�� ��느��� 디�깅될 ��보를 ���놓는다. ��로������러는 ������ 문법��러 검��뿐만 ��고리�� ������ 대�� 디�깅기능 ��느��� ������게 된다.

��������드는 로그래머가 ��려고 ��는��, �� ���를 담낸다. ��는 �� 로그램�� ��떠�� ��나리��로 돌��가를 먼�� ��각��보는 기��를 ����공����다. Test가 가능�� ��드는 run ������떤 결과를 낼��를 ������ ��드��다. �� 경�� ��당 모��� 때가 �������� 그 목��를 ���게 ��는 ���� ����다.

��������드 ����가 ������ ���먼������ ��기� ��다. ������ ��드를 만들면������ ��려는 ��과 문���������� �����다.

��������드가 �� ��다. ����만, ��������드가 모든 ��러를 ���� 못��다는 ����로 많�� �그들 �� ��������드를 ������ �� ����는 ��다.

ExtremeProgramming���는 UnitTest -> Coding -> Refactoring �� 맞물려 돌다. TestFirstProgrammingRefactoring ��로 단�� 디������ �����다.

��TestDrivenDevelopment 라고 ��다. 단 Test 를 먼�� ����는게 닌, Test ��� 개발�� 것��다. TestDrivenDevelopment�� 2�� Refactoring 과� 같다고 ��각. --1002


���� ������ :
������ ��드 ���� 대���는 UnitTest �� PyUnit, CppUnit������라.

Test Code Refactoring

로그램�� 길����다보면 Test Code 또�� 같�� 길����게 된다. ��느��� Test Code 가 길������는 기능�� 대�� ��������드를 ����려고 �� 때���복�� ����난다. �� 경����는 Test Code 를 Refactoring ���� ��는데, �� 경�� ������면 ������ ��드�� �������려뜨릴 다. ������ ��드 ����가 ��나�� 다��먼��가 되므로, ��당 ��������드�� ���는 ���게 남�Refactoring ���� ��다.

Test - Code Cycle

������를 ����는 때�� Code 를 ����는 때�� ��기가 길���록 ��들다. ��기가 �무 길����다고 ��각되면 다������라.

Test Code Approach

Test Driven �� 대�� ��근 방법��는 End-To-End (BlackBoxTesting) ���� ��근 방법과 WhiteBoxTesting �� ��근방법�� 겠다.

���� 경��는 ������ '부�결과 - 부�결과' 를 ����나가면����목��로 ��근��는 방법��다. ��는 ��떻게 보면 Functional Approach �� ������다. (Context Diagram ����로 ��� Divide & Conquer �� 나가면� 가�� ���� 모� ������내고, 그 모� ��나��나�� ��복��나가는 방법)

���� 경��는 ��당 ��드�� 구��를 ��������나가는 방법��로, ��당 ��드�� ���� ����� ������ 맞게 ��되��가는��를 ������나가는 방법��다. ��는 MockObjects�������� ��근�� 다. ��, ��당 ��������려는 모� MockObject로 구��고, ����되기 ��는 ���들�� ��대로 ����되��를 (MockObjects �� mockobject.py �� ExpectationCounter�� ����) ��������나 ��당 데���� ��가 & ����관련 ���들�� ��대로 ����되��를 ������는 방법 (ExpectationList, Set, Map ��� ����) ���로��근�� 나� 다.

Test - Code ��기가 길다고 ��각되��나, ������ 가능�� 경���� 대�� ��디��가 떠��르�� ���� 경��, ��근 방법 다르게 가��보는 것� ��나�� 방법�� 될 겠다.

��나리���� ����

Test Code 를 ���� ������만, ��런 경���� 다. PairProgramming ��는 �� �������게
'�����는 Socket Class 를 만들 ��례��. ������볼까'

�����가 먼�� ��드를 ��긴 는데, ��드가 ����럼 ���� 되�� ����다. 문��가 뭘까 고민��다가 다��과 같�� ��근��봤다.
'��� ������는 ��������. ��� 만들���라������고, ��� 만들 ��래��로 write 를 ��면 ��기 ���놓�� �������� 내가 ��력�� 메��가 그대로 ����될���' ��, �� 결과를 미리 그려보는 것��다.

까보다 �� ��게 ��되고, 그 결과를 ���로 ����고, 결과를 ���로 ������뒤 '료' 다. TFP 라면 ��를 ��드로 ������ ��동�� �� 것��다. ��동��된 ������는 ����로�� �� 모� ������� ����� 내가 ��는 기능들�� �� ��동��������다.

Random Generator

Random �� ��리가 ���� ��는 값��다. ��를 ����부������를 ��려고 ��는 것�� ���� ��근�� 되�� 못��다. �� 경����는 Random Generator 를 MockObjects 로 구���� �� 가능�� Random 값�� 나����� 뒤, ������를 �� 겠다.

Server - Client

�� 경����� MockObjects������ 다. 기본����로 XP���� ������는 ��동��된 ������, �� ������가 ��드�� 된 것��다. ���� 바로 ��근�� ��들다면 Mock Server / Mock Client 를 만들�������� �� 겠다. ��, ��당 ������ 대�� ��미 내��되�� 는 값����는 ����라������를 만드는 것��다. (��는 TestFirstProgramming ���보단 AcceptanceTest �� ��는게 더 맞��긴 ��다. XP ���는 UnitTest �� AcceptanceTest 둘 다 ������다.)

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:28:11
Processing time 0.0221 sec