TDD�^BDD�̎v�z�ƃe�X�e�B���O�t���[�����[�N�̊֌W�𐮗����悤�F���܂��畷���Ȃ�TDD/BDD������i2�j�i1/3 �y�[�W�j

TDD�^BDD�̎v�z�ɐG��A�t���[�����[�N�Ƃ���xUnit�AJBehave�AxSpec�ACucumber�ATurnip�ATestDox���Љ��B

» 2014�N03��25�� 18��00�� ���J
[�����CSTAR�i�e�X�g������������j]

�@�O��́u�e�X�g�쓮�J���^�U�镑���쓮�J�����n�߂邽�߂̊�b�m���v�ł��Љ�������悤�ɁA���܂��܂ȃe�X�e�B���O�t���[�����[�N������܂��B�Ⴆ��TDD���̂́AKent Beck�i�P���g�E�x�b�N�j���������w�e�X�g�쓮�J�������x�i�s�A�\���G�f���P�[�V�������j�̒��ŏq�ׂĂ���悤�ɁA�u���͋Z�@����ѐ݌v�Z�@�ł���A���ۂɂ͊J���S�ẴA�N�e�B�r�e�B���\�������邽�߂̋Z�@�v�ł��B

�@TDD�i�e�X�g�쓮�J���j�^BDD�i�U�镑���쓮�J���j�����H���邱�ƂƁA����e�X�e�B���O�t���[�����[�N���̗p������J�������肷�邱�Ƃ𕪂��čl���Ă����Ȃ��ƁATDD���邱�Ƃ��ړI�ɂȂ��Ă��܂�����A����e�X�e�B���O�t���[�����[�N���g�����Ƃ��ړI�ɂȂ��Ă��܂����肷��ꍇ������܂��B

�@�{�L���ł́ATDD�^BDD�Ɗe��e�X�e�B���O�t���[�����[�N�̊֌W�𐮗����Ă����܂��B

�@�O���TDD�̊T�v�Ɛi�ߕ��A�ړI�ƌ��ʁA���j�A���܂��܂Ȏ�@�ւ̓W�J�A�ۑ�ɉ����ABDD�̊T�v�Ǝ�ށA�d�������l�����Ȃǂ�������܂����B��̓I�ɂ́A���̌��t��������܂����BTDD�̃X�e�b�v�ł���RED�^GREEN�^REFACTOR�A�C���T�C�h�A�E�g�A�A�E�g�T�C�h�C���AATDD�ABDD�ATests as Document�ASpecification By Example�Ȃǂł��B��������́A�����̌��t���g���ĉ�����܂��B

�uTDD�^BDD�t���[�����[�N�v�Ƃ������t

�@��‚��̏��ЁAOSS�A�u���O�ł͓���̃e�X�e�B���O�t���[�����[�N���w���āuTDD�t���[�����[�N�v�uBDD�t���[�����[�N�v�Ƃ��Ă��܂��B���̂悤�ȗ�͑��̃c�[���ł������A�Ⴆ�Γ���̃^�X�N�Ǘ��c�[�����w���āu�A�W���C���c�[���v�Ə�����Ă��邱�Ƃ�����܂��B

�@���ꎩ�̂ɓ��ʂȈӐ}������Ƃ͎v���܂��񂪁A�i�Ⴆ�΁j�u�J���o���v���g��������Ƃ����āA���̑g�D���A�W���C���ł��邩�ǂ��������܂�킯�ł͂Ȃ��̂Ɠ����悤�ɁA����e�X�e�B���O�t���[�����[�N���g��������Ƃ����āA���ꂪTDD�^BDD�ł��邩�͕ʂł��B�����I�ɏ����ƁuTDD��BDD���T�|�[�g����e�X�e�B���O�t���[�����[�N�v���炢�Ȃ��̂ł��傤�B

�@��������Ⴂ����ƁA�uTDD�t���[�����[�N���g���΁ATDD���ł���悤�ɂȂ�v�uBDD�t���[�����[�N���g���Ă��邩��A�e�X�g�R�[�h���d�l���Ƃ�����v�uTDD�t���[�����[�N�𓱓�����΁A�i�����オ��v�uTDD�t���[�����[�N���g���Ă���̂�TDD���ł��Ȃ��̂͂��������v�ȂǂƂ����咣�����܂�܂��B

�@��������́A�v�z�Ƃ��Ă�TDD�^BDD�A�c�[���Ƃ��Ă�TDD�^BDD�ɕ����Ĉ��p�������Đ������܂��B

�v�z�Ƃ��Ă�TDD�^BDD

�@TDD�^BDD�̊T�v�Ɋւ��Ă͑O��ň����܂����B�ȒP�ɂ܂Ƃ߂�ƁA���̂悤�ɂ����܂��B

  • TDD��RED�^GREEN�^REFACTOR����
  • �e�X�g�t�@�[�X�g�ł���
  • �����Ώۂ̃��[�U�[�̗���Ńe�X�g����

�@���[�U�[�́A���ꂩ��������悤�Ƃ��Ă�����̂��g���l�ł��B���郂�W���[����N���X���������悤�Ƃ��Ă���Ƃ��́A���̃��W���[����N���X���g���l���A���[�U�[�ł��B�����Ƒ傫���Ȃ��āA�G���h���[�U�[���猩����@�\�ɂȂ�΁A�G���h���[�U�[�i��v���_�N�g�I�[�i�[�j�����[�U�[�ł��B���[�U�[�͎����Ώۂɂ���ĕς��܂��B

�@����ɉ�����TDD�ABDD���ꂼ��Ŏ��̂悤�Ȃ��Ƃ������Ă��܂��B

TDD

�@TDD�𐢂ɍL�߂�L�b�J�P�������Kent Beck���́A�����w�e�X�g�쓮�J������x�̒��Ŏ��̂悤�Ɍ���Ă��܂��B

�����e�X�g�����s�����ꍇ�����A�V�����R�[�h�������B�d������菜���B2�‚̋K���̓v���O���~���O�̃^�X�N�ɂ����鏇�Ԃ��Ӗ�����B

  1. ���b�h�F���삵�Ȃ��e�X�g�����������쐬����B�����炭�ŏ��̓R���p�C���ł��Ȃ�
  2. �O���[���F�e�X�g�������ɓ��삳����B���̂��߂ɂ́A�ǂ̂悤�ȃR�[�h�ł��悢
  3. ���t�@�N�^�����O�F�e�X�g�𓮍삳���邽�߂����ɍ쐬���ꂽ�d����S�Ď�菜��

�@�܂�TDD�̃G�L�X�p�[�g�Ƃ��Ēm����Robert.C.Martin���́A�����wClean Code�x�i�A�X�L�[�E���f�B�A���[�N�X���j�Ŏ��̂悤�Ȍ����������Ă��܂��B

3�‚̌��������Ȃ��������i�߂�B

  1. ���s����e�X�g���ł���܂Ńv���_�N�g�������Ă͂����Ȃ�
  2. ���s����e�X�g������ꍇ�ɂ͂���ȏ�e�X�g��lj����Ă͂����Ȃ�
  3. �e�X�g�𐬌�������v���_�N�g������ꍇ�ɂ͂���ȏ�v���_�N�g��lj����Ă͂����Ȃ�

�@�����ă��j�b�g�e�X�g�͎��̂悤�ł���ׂ��Ƃ�����Ă��āA5�‚̃|�C���g�𓪕���������āuF.I.R.S.T.�v�ƌĂ�ł��܂��B

  1. Fast�i�����ł���j�F�e�X�g�͍����ł��邱��
  2. Independent�i�Ɨ����Ă���j�F�e�X�g�͂��݂��Ɋ֘A���ׂ��ł͂Ȃ��B�e�X�g�͍D���ȏ����Ŏ��s�ł���ׂ�
  3. Repeatable�i�Č���������j�F�e�X�g�͂ǂ�Ȋ‹��ł��Č��”\�ł���ׂ�
  4. Self-Validating�i���Ȍ��؉”\�j�F�e�X�g�́A2�‚̌��ʁA���������s���̂ǂ��炩���o�͂���ׂ�
  5. Timely�i�K����������j�F�e�X�g�͕K�v�ȂƂ��ɂ���������ׂ�

�@�܂��ATDD�ɂ�����e�X�g�R�[�h�͐����I�œǂ݂₷�����͂ł���ׂ��ł��B�Ⴆ�΁A�Ώۂ̃��\�b�h�ɑ΂�������ł͂Ȃ��A�u�Ώۂ��ǂ̂悤�ȕω��𐶂ނ̂��v�������ׂ��ł��B���̂��߂Ƀ��[�e�B���e�B�I�ȃ��\�b�h���������Ƃ�����ł��傤�B�e�X�g�R�[�h�����܂�ɂ����\�b�h�̃h�L�������g�ɂȂ��Ă���ꍇ�́A�݌v���B���ł���”\���������ł��B

BDD

�@TDD��i�߂Ă������ŁA�u�����e�X�g���ׂ����v�u�e�X�g�Ƃ͉����v�Ƃ������₢�ɑ΂��Ă̐����Ƃ��āuTest�v�ł͂Ȃ��uBehavior�v�Ƃ������t���g���Đ�����������J���҂ɂƂ��ė������₷�������A�Ƃ���Dan North���̌o������BDD�͐��܂�܂����B

�@���{�I��TDD��BDD�͈�킸�A����܂ł�TDD�̌�b�ł͓`���ɂ�������������������������A�e���v���[�g��^���邱�ƂŊ������n�[�h����������Ƃ��������������Ă��܂��B

�@�Ⴆ��TDD�ł́A�e�X�g�R�[�h�ɂ‚��Ď��ۂ̃e���v���[�g�I�Ȏw�j�͎�����Ă��炸�A�����I�œǂ݂₷�����͂ɂ��邩�ǂ����́A�v���O���}�[�̍ٗʂɔC����Ă��܂����i�ǂ݂₷���e�X�g���\�b�h�ł��邱�Ƃ��T�|�[�g����c�[���Ƃ��ẮuAgileDox�v�uTestDox�v�i��q�j�Ƃ����c�[�������݂���j�B

�@������BDD�ł́A���̂悤�Ȍ�b�𓱓����܂��B

  • �uGiven xxx. When yyy. Then zzz.�v�F�e�X�g�R�[�h��ǂ݂₷������e���v���[�g�B�uxxx�ł���Ƃ��ɁAyyy����ƁAzzz�ɂȂ�v�Ƃ����悤�Ɏ菇�I�ɂ��ēǂ݂₷������
  • �uGiven�v�F���O��Ԃ�\������
  • �uWhen�v�F�h���⑀���\������
  • �uThen�v�F�����Ԃ�\������
  • �ux should y: �e�X�g���̂��u�Ώہix�j���ǂ��ł���iy�j�ׂ����H�v�ƕ\������

�@BDD�̎����I�ȊJ�c�ł���Dan North�������g�̃u���O�i���{���j�Ŏ��̂悤�ȕ\�����c���Ă��܂��B

�\���͂̂���e�X�g���͎��s�����Ƃ��ɖ��ɗ��B

  • �o�O�𖄂ߍ���ł��܂����B�����q���B�����@�F�o�O�𒼂�
  • �Ӑ}���ꂽ�U�镑���͕ς�炸�֘A�������������A�ǂ����ʂ̏ꏊ�Ɉڂ���Ă����B�����@�F�e�X�g���ړ����A�ꍇ�ɂ���Ă͕ύX����
  • �U�镑�������͂␳�����Ȃ��B�V�X�e���̑O�񂪕ς���Ă��܂��Ă���B�����@�F�e�X�g���폜����

�@�uGiven�v�uWhen�v�uThen�v�Ƃ�����b�̏̂���ׂ��_��1�‚́A�����I��FSM�i�L����ԋ@�B�̗��B��ԑJ�ڐ}���v�������ׂĂ��������j��DSL�ł���AFSM�Ƃ��Ċ������Ă��镶�͂ɂ��邱�Ƃ��A���p�^�[�����������Ȃ����Ƃ��ł���A�Ƃ������Ƃł��BBDD��FSM��DSL��񋟂��邱�ƂŁA���l���ɂ͓ǂ݂Â炢�Ɗ�������\�t�g�E�F�A�d�l�̍��ӂ̂��₷���A�ێ琫����A�����₷���ɍv�����Ă���Ƃ����Ă����ł��傤�B

�v�z�̂܂Ƃ�

�@BDD��TDD�̕\�����@��v���Z�X��������������@�_�ł���A������Ȃ����̂⍪�{�I�ɈقȂ���̂ł͂���܂���BTDD�^BDD�Ƃ́u���ǂ��J�����v���O���~���O�ɂ���Ďx���邽�߂ɁA��̂悤�ȃv���Z�X��K�C�h���x�[�X�Ƀ\�t�g�E�F�A�J�������邱�Ɓv�ƌ��������Ă������ł��傤�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