TDD�̊T�v�Ɛi�ߕ��A�ړI�ƌ��ʁA���j�A���܂��܂Ȏ�@�ւ̓W�J�A�ۑ�ɉ����ABDD�̊T�v�Ǝ�ށA �d�������l�����Ȃǂ��������B
�@2000�N�㏉���ɊJ����@�Ƃ��Ċm�����ꂽ�u�e�X�g�쓮�J���v�iTest Driven Development�A�ȉ��uTDD�v�j�́A���̌�10�N���̊Ԃŕ��y���i�݁A���Ⓙ�����Ȃ��J���X�^�C����1�ƂȂ��Ă��܂��B�����ł��u�A�W���C���A�J�f�~�[�v�uTDD Boot Camp�v�Ȃǂɂ�鐄�i�E���y�������e�n�Ŋ��������A�F�m���L�����Ă��܂����B
�@�Ȃ�TDD�͒a�����炱��܂ł̊ԂɁA���܂��܂ȍH�v����H��̃m�E�n�E������Ă��܂����B�܂�TDD�̕��y�ɉe�����A���̂��܂��܂ȁu�e�X�g�t�@�[�X�g�v��@���䓪���Ă��Ă��܂��B
�@�{�e�ł́A��������TDD�̔��W��A�U�镑���쓮�J���iBehavior Driven Development�A�ȉ��uBDD�v�j�ȂǑ��̃e�X�g�t�@�[�X�g��@�ւ̓W�J�ɂ��Ă�������܂��B
���ҏW�����F�\�t�g�E�F�A�́u�e�X�g�v���̂��̂̊T�v���ނɂ��Ēm�肽�����͋L���uJUnit��Eclipse���g���Ċw�ԁA�g�e�X�g�h�̏펯�v���Q�Ƃ��Ă��������B
�@TDD�Ƃ̓e�X�g�t�@�[�X�g�ɂ��lj��E�ύX�ƁA���t�@�N�^�����O�ɂ��v���P��2�̊����Z���ŌJ��Ԃ��ĊJ����i�߂Ă�����@�ł��B���̎菇�́uRED�v�i�e�X�g�����s��������ԁj�A�uGREEN�v�i�e�X�g�𐬌���������ԁj�A�uREFACTOR�v�i���t�@�N�^�����O�����Ă���i�K�j��3�X�e�b�v�������ɉT�C�N���ŕ\������܂��B
�@TDD�̐i�ߕ��ɂ��āA�ȒP�ȗ����������Ă����܂��B����͗�Ƃ��āA���邤�N������uisLeapYear()�v���ނɁA�e�X�e�B���O�t���[�����[�N�uGoogle Test�v���g����C++�̃R�[�h���������闬���������܂��B
�@�ŏ��ɁA���s�����e�X�g�R�[�h���L�q���܂��B�܂��A�e�X�g�����s�\�ɂ��邽�߂ɁA�e�X�g�ΏۃR�[�h�̓e�X�g�����s������悤�ɉ��������܂��B
TEST(isLeapYearTest, 4�Ŋ�����N�͂��邤�N�Ɣ��肷��) { EXPECT_EQ(true, isLeapYear(8)); }
bool isLeapYear(int year) { return false; }
�@�e�X�g���s���m�F������A���s�𐬌��ɕς��邽�߂ɁA���L�̂悤�Ƀe�X�g�ΏۃR�[�h���C�����܂��B
bool isLeapYear(int year) { if (year % 4 == 0) { return true; } return false; }
�@�e�X�g�������m�F�ł�����A�V���ȃR�[�h���������߂ɁA���s����e�X�g��lj����܂��B
TEST(isLeapYearTest, 4�Ŋ�����N�͂��邤�N�Ɣ��肷��) { EXPECT_EQ(true, isLeapYear(8)); } TEST(isLeapYearTest, 100�Ŋ�����N�͂��邤�N�łȂ��Ɣ��肷��) { EXPECT_EQ(false, isLeapYear(200)); }
�@�e�X�g���s���m�F������A���L�̂悤�Ƀe�X�g�ΏۃR�[�h��lj��E�ύX���āA�e�X�g�����s���琬���ɕω������܂��B
bool isLeapYear(int year) { if (year % 4 == 0) { if (year % 100 == 0) { return false; } return true; } return false; }
�@�R�[�h�̃l�X�g�������Ȃ��Ă������߁A�����Łu���t�@�N�^�����O�v�����{���܂��B���t�@�N�^�����O�ł́A�e�X�g���������Ă��邱�Ƃ��m�F������A���L�̂悤�ɃR�[�h�����ꂢ�ɂ��܂��B��Ɗ�����A�e�X�g���Ď��s���ăe�X�g���������Ă��邱�Ƃ��m�F���܂��B
bool isLeapYear(int year) { if ((year % 4 == 0) && (year % 100 != 0)) { return true; } return false; }
�@���̂悤�ɁA�܂��e�X�g�����s�����A���ɂ���𐬌�������悤�Ƀe�X�g�Ώۂ�lj��ύX���銈���ƁA����̗ǂ��^�C�~���O�Ń��t�@�N�^�����O���ׂ����J��Ԃ��Ă����̂��ATDD�̊�{�I�ȗ���ł��B
�@TDD�̎�ȖړI�Ƃ��ẮA�y���ȃt�B�[�h�o�b�N�̊m���A���ꂢ�œ����R�[�h�̊m���Ȃǂɂ��A�J���̉��P���������Ă��܂��B
�@TDD�̌��ʂƂ��ẮA�Ⴆ�Αg�D�Ƃ��ēW�J�����ꍇ�A���s�H����15������25���������������ɁA���ז��x��4������9���ቺ�����ăf�o�b�O���߂�H�������������A�g�[�^���̑��H�����팸����Ƃ��������Ⴊ����Ă��܂��i�Q�l�wRealizing quality improvement through test driven development: results and experiences of four industrial teams.�xNachiappan Nagappan, E. Michael Maximilien, Thirumalesh Bhat and Laurie Williams�i2008�j�j�B
�@TDD�̓e�X�g�t�@�[�X�g�Ɋ�Â��J����@�ł��B�e�X�g�t�@�[�X�g�ɂ��ẮA�v���O���~���O��@�uXP�ieXtreme Programing�j�v�̎��H��@��1�Ƃ��Ắu�e�X�g�t�@�[�X�g�v���O���~���O�v�������ł����A���̊�{�`��XP�����܂��O��1980�N�ゲ�납�����Ă��܂����i�������A�e�X�g���ŏ��ɏ����Ƃ����A�C�f�A�́A1950�N�ォ�猩���邻���ł��i�Q�l�wTen Years Of Test Driven Development�x�j�j�B
�@��������A�v���O���~���O����uSmalltalk�v�̃R�~���j�e�B�𒆐S�ɋ�̓I�ȃc�[�����@����������Ă����܂��B
�@��̓I�ɂ́A���j�b�g�e�X�g�t���[�����[�N�uxUnit�v�t�@�~���̎n�c�ƂȂ�uSUnit�v�iSmalltalk�����e�X�e�B���O�t���[�����[�N�j�̊J���A�e�X�g�����p�������t�@�N�^�����O�̍l������TDD�̌��^�ƂȂ�v���O���~���O��@�̊m���Ȃǂ��A���̎����ɍs���܂����B
�@�����āA�����~�ςɊ�Â���2002�N�ɁuTDD�̌��T�v�ƌĂ�邱�ƂƂȂ�wTest Driven Development By Example�x�i�M��w�e�X�g�쓮�J�������x�s�A�\���G�f���P�[�V�������j��Kent Beck�i�P���g�E�x�b�N�j���ɂ���Ď��M����܂����B���̏��Ђ�RED�AGREEN�AREFACTOR�̃T�C�N������̓I�Ȏ菇��A�uFake It�v�uAssert First�v�Ȃ�TDD���\������p�^�[����̌n�I�ɐ������ĉ�����Ă���A�����O��킸�ATDD�̕��y���x������̂ƂȂ�܂����B
�@���Ȃ݂ɏ�����TDD�i�Ⴆ�wTest Driven Development By Example�x�j�́A�K�p�Ώۂ�K���͈͂��i�炸�A�����e�X�g���g�����u�����e�X�g�v�Ȃǂ��͈͂Ɋ܂߂Ă��܂����B�����A���H�E�����̂��₷����c�[���̏[���x�Ȃǂ���ATDD�̓v���O���~���O��@�Ƃ��ĔF�m�E���y���Ă������ƂɂȂ�܂��B
�@�Ȃ��A�v���O���~���O��@�Ƃ��Ă�TDD�́A���[�U�[���l�̌����[�U�[�Ƃ̃R���{���[�V�����Ƃ������A�����̃e�X�g�t�@�[�X�g�̖����ɑΉ����Ȃ��Ȃ��Ă��܂��B�����������̂�⊮������̂Ƃ��āA�e�X�g�t�@�[�X�g�v���O���~���O�ɂ����ẮA�u����e�X�g�쓮�J���v�iAcceptance Test Driven Development�A�ȉ��uATDD�v�j������Ă��܂��B
Copyright © ITmedia, Inc. All Rights Reserved.