�e�X�g�쓮�J���^�U�镑���쓮�J�����n�߂邽�߂̊�b�m���F���܂��畷���Ȃ�TDD/BDD������i1�j�i1/3 �y�[�W�j

TDD�̊T�v�Ɛi�ߕ��A�ړI�ƌ��ʁA���j�A���܂��܂Ȏ�@�ւ̓W�J�A�ۑ�ɉ����ABDD�̊T�v�Ǝ�ށA �d�������l�����Ȃǂ��������B

» 2014�N03��05�� 18��00�� ���J
[��ڗm�P�CSTAR�i�e�X�g������������j]

����̎�ȓ��e


u܂畷ȂTDD/BDDṽCfbNX

�A�ږڎ�

�@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

�e�X�g�쓮�J���iTDD�j�Ƃ�

�@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

5�X�e�b�v�ŕ�����TDD�̐i�ߕ�

�@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

�y1�z���s����e�X�g�R�[�h������

�@�ŏ��Ɂ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));
} 
�e�X�g�R�[�h
bool isLeapYear(int year)
{
    return false;
}
�e�X�g�ΏۃR�[�h

�y2�z�e�X�g�����s���琬���ɕω�������悤�Ƀe�X�g�ΏۃR�[�h������

�@�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�ΏۃR�[�h

�y3�z�e�X�g�����s������e�X�g�R�[�h��lj�����

�@�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�R�[�h

�y4�z�e�X�g�����s���琬���ɕω�������悤�Ƀe�X�g�ΏۃR�[�h������

�@�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;
}
�e�X�g�ΏۃR�[�h

�y5�z�e�X�g�𐬌���Ԃɂ����܂܃��t�@�N�^�����O����

�@�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;
}
�e�X�g�ΏۃR�[�h

�@���̂悤�ɁA�܂��e�X�g�����s�����A���ɂ���𐬌�������悤�Ƀe�X�g�Ώۂ�lj��ύX���銈���ƁA����̗ǂ��^�C�~���O�Ń��t�@�N�^�����O���ׂ����J��Ԃ��Ă����̂��ATDD�̊�{�I�ȗ���ł��B

TDD�̖ړI�ƌ���

�@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�̗��j

�e�X�g�t�@�[�X�g��XP�ȑO��1980�N��ɒ�

�@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

xUnit�t�@�~���̎n�c�uSUnit�v

�@��������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

SUnit

�uTDD�̌��T�v�̓o���TDD�̕��y

�P���g�E�x�b�N���i�L���uXP�Ƌ{�{�����̏����ւ̎��O�A�P���g�E�x�b�N�v�����p�j

�@�����ā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

�󂯓���e�X�g�쓮�J���iATDD�j�Ƃ�

�@�Ȃ��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

�@�@�@�@�@�@ 1|2|3 ���̃y�[�W��

Copyright © ITmedia, Inc. All Rights Reserved.

'; this.insertTarget = document.querySelector('#cmsBody .subscription') || document.querySelector('#cmsBody .inner'); }; BodyAdIMSWithCCE.prototype = Object.create(BodyAdContent.prototype); BodyAdIMSWithCCE.prototype.activate = function () { refreshGam('InArtSpecialLink'); } // global reference window.itm = itm; //entry point BodyAdEventBase.polyfill(); const bodyAdManager = BodyAdManager.getInstance(); bodyAdManager.addEventListener(BodyAdManager.EVENTS.READY, function (ev) { bodyAdManager.loadAdvertise(); }); bodyAdManager.init(); })();
�X�|���T�[����̂��m�点PR

���ڂ̃e�[�}

Microsoft  WindowsőO2025
AI for GWjAO
[R[h^m[R[h Zg by IT - ITGWjArWlX̒SŊ􂷂gD
Cloud Native Central by IT - XP[uȔ\͂gD
�V�X�e���J���m�E�n�E �y�����i�r�zPR
���Ȃ��ɂ������߂̋L��PR

RSS�ɂ‚���

�A�C�e�B���f�B�AID�ɂ‚���

���[���}�K�W���o�^

��IT�̃��[���}�K�W���́A �������A���ׂĖ����ł��B���Ѓ��[���}�K�W�������w�ǂ��������B