ObjectSquare [2012 �N 10 ����]

�m�ˌ��C���^�r���[�n

separator line

�g�ݍ��݃A�W���C���R�[�` James Grenning ����ˌ��C���^�r���[( �O�� )

 Jonathan

����8���ɃA�����J�E�e�L�T�X�B�_���X�ŊJ�Â��ꂽ Agile 2012 �ɂ� James Grenning ����ɃC���^�r���[�����{�����Ă��������܂����BJames ����́A�g�ݍ��݃\�t�g�E�F�A�J���ɂ�����A�W���C���J���̃R�[�`�E�g���[�i�[�E�R���T���^���g�A�wTest Driven Development for Embedded C�x[1] �̒��ҁA�A�W���C���\�t�g�E�F�A�J���錾�̒���17����1�l�A�����ăA�W���C���Ȍ��ς��@�u�v�����j���O�|�[�J�[�v[2] �̍l�Ď҂ł�����܂��B

�C���^�r���[�ł́A���{�́u Test Driven Development for Embedded C�Ǐ��� �v�Q�������o�[���狓�������ȉ��̘b��ɂ‚��Ă̎���������q�˂�`�Ői�߂܂����B

�E �g�ݍ��݃\�t�g�E�F�A�ɑ΂���A�W���C���J����TDD�̓���
�E ���f�����O��A�[�L�e�N�`���݌v�� TDD �̊֌W
�E �]���̃e�X�g��TDD�̊֌W
�E �A�W���C���J���ł̃V�X�e���e�X�g�̉^�p

������萔��ɓn��AJames����ւ̓ˌ��C���^�r���[�̌��ʂ����`�����܂��B


1. James Grenning����̂���܂ł̌o��

-- �����́A�C���^�r���[�̋@����������܂��Ă��肪�Ƃ��������܂��B�ŏ��� James ����̂���܂ł̂��o�� [3] �‚��ĊȒP�ɐ������Ē����܂���ł��傤���H

�����ł��ˁA�̘̂b���炵�܂��傤���B�������Z���̍��A�R���s���[�^�������Ă���F�B�����܂����B���̃R���s���[�^�̓v���O�������p���`�J�[�h�Ɉ�����Ďg�����̂ł����B�v���O�����𓮂������߂ɁA�킴�킴���̖��������ɍs���Ȃ��Ă͂����Ȃ��Ĕ��ɂЂǂ����̂̂悤�Ɏv���܂����B�Ȃ̂ŁA���̓����̓R���s���[�^������Ă��܂����ˁB

-- �i �� �j

70�N��A���͑�w���ł����B���l��͂̍u�`����u���āABASIC �Ńj���[�g���@�̃V�~�����[�V������������̂ł����A���Ɋy�����������Ƃ��o���Ă��܂��B����ŁA�R���s���[�^�̍u�`����u���A�v���O���~���O�ɂ̂߂荞��ōs���܂����B�u�y�����v���ꂪ�ŏ��̑̌��ł��B

�ŏ��̎d���̓A�����J�A�M�q��� [4] ���琿���������V�C�}�\���V�X�e���̊J���ł��B�~�J�ʂ̌X�����Ⴄ�F�ŕ\������V�X�e���̃n�[�h�E�F�A�ƃ\�t�g�E�F�A�̗������������`�[���ŊJ�����܂����B���ꂪ�ŏ��̑g�ݍ��݂̎d���ł��B

2�–ڂ̎d���ł́A80�N��� Robert Martin [5] �ƈꏏ�� Teradyne [6] �Ƃ�����Ђœ����܂����B�ނ́u Bob ��������v�ƌĂ΂�Ă���l�ł��ˁBBob ��80�N��㔼�ɑސE���āAObject Mentor [7] �Ƃ����f���炵���R���T���e�B���O��Ђ��N�Ƃ��܂����B����90�N�㔼�΂܂� Teradyne �ɂ��āA���̌�� Bob �̉�Ђɓ���܂����B

Bob �̉�Ђł́A�I�u�W�F�N�g�w���݌v�̃R�[�`���O�A�g���[�j���O�A�R���T���e�B���O�̋Ɩ������܂����B�R���T���e�B���O�Ƃ����d���̐����̂��߁A�g�ݍ��݈ȊO���܂߂āA���푽�l�Ȏd����S�����܂����B

90�N��ɓ��ɂ�����̂� XP �̓����ł��B���̓����AXP�� �g�ݍ��݃V�X�e���J�������l�ԂɂƂ��Ă��d�v�Ȃ��̂��Ƃ�����ۂ��󂯂܂��� [8] �B�g�ݍ��݃V�X�e���J���̖��̈�‚��n�[�h�E�F�A����������Ă��Ȃ��󋵂Ń\�t�g�E�F�A���J�����Ȃ���΂����Ȃ����Ƃł����A���� XP �Ɏ��g�ޒ��Ő��i�R�[�h����n�[�h�E�F�A�ւ̈ˑ�������菜���”\���ɂ‚��čl���܂����B�������邱�ƂŁA�n�[�h�E�F�A��҂������ă\�t�g�E�F�A�̊J����i�߂邱�Ƃ��ł��邩��ł��B

���̓����A�������g�݂����Ă��� Motorola �Ǝd���������Ƃ͍K�^�������Ǝv���Ă��܂��B���̎��́AC++ �őg�ݍ��݃V�X�e�����J�����Ă��āA�����̃n�[�h�E�F�A��OS��K�v�Ƃ��Ă��܂����B�������̓C���^�t�F�[�X�܂Ŏ������āA�V�~�����[�V�����Œ��̓�����m�F�����肵�܂����B

���̌�A���΂炭���đg�ݍ��݃V�X�e���J���t�@�����X�ŃA�W���C���J���ɂ‚��ďЉ��悤�ɂȂ�܂��� [9] �B�����͒N���A�W���C���J���ɂ‚��Ĕ��\���Ă��܂���ł�������ˁB�g�ݍ��݃V�X�e���J���ɑ΂���A�W���C���J���� TDD �̓����ɋ��������l�ɘb�����悤�Ƃ��܂������A�Q���҂���̍ŏ��̔����́u�i�������Ȃ������Ɂj�Ӂ[��A�ʔ��������ˁB�����ł��ł����炢���ȁB�v�Ƃ������̂ł����B�u��������A�Ȃ�ŌN�͂��̃J���t�@�����X�ɂ���񂾁H�N�������ɂ��闝�R�͂Ȃ��B�ǂ����悻�ɍs���Ă���B�v�����v���܂����B�K�^�Ȃ��ƂɃJ���t�@�����X�̌�A�g�ݍ��݃V�X�e���J���҂ɂƂ��ďd�v�Ȃ��̂𗝉����āA�������肷��悤�Ȃ��Ƃ͂���܂���ł����B

���̌�A2008 �N�� Renaissance Software Consulting �Ђ��N�Ƃ��āA���݂͊�Ƃɑ΂���A�W���C���J���̓������x�����Ă��܂��B

-- James����̓A�W���C���\�t�g�E�F�A�J���錾�������������o�[�̈�l�ł���ˁB���̊����ɂǂ̂悤�ɎQ�������̂ł��傤���H

���X�́ABob �� Alistair Cockburn [10] ���A�W���C���\�t�g�E�F�A�J���錾�̎��g�݂��n�߂܂����BBob ����́u���^�B�ɃX�L�[�ɍs�����v�ƕ�������Ă����̂ŃX�L�[����D���Ȏ��͎Q�����邱�Ƃɂ��܂��� [11] �B

--�i�΁j

���̓����A���� XP �ɂ‚��Ď��g�ݎn�߂��΂���ł����BBob Martin �� Martin Fowler [12] �Ƃ����� XP �̎w���ҒB����v���N�e�B�X�������Ă��炦�邱�Ƃ��ł��Ĕ��ɍK�^�ł����B �����āA�~�[�e�B���O�ł͔��ɖʔ����b���ł��A�����ɖ����Ă��܂����B

���������Ƃ̈�‚��A�ނ�̍l�����͂��̓����嗬�������l�����ƈ���Ă������Ƃł��B90�N��Ɉ�ʓI�������̂́u�������J���v���Z�X������΁A�J���҂͂����Ə�肭��邾�낤�v�Ƃ������̂ł����B�������A�A�W���C���\�t�g�E�F�A�J���錾�����Ɍ������������o�[�̈ӌ��́u�X�L���̂���D�ꂽ�J���҂�����΁A�ނ玩�g���w�K���ĊJ���v���Z�X�����߂�Ηǂ��v�ł��B

����Ƃ͑ΏۓI�ɁA�����̉�Ђł̓\�t�g�E�F�A�J���̊Ǘ���J���v���Z�X�̉��P�̘b������Ƃ��A��Ђ�����ė~�����ʂ�Ɏd���������悤�Ƃ��܂��BIT�Y�Ƃ̂���Ă��邱�Ƃ́u�����ɂ͎��ւ��”\�ȃv���O���~���O���j�b�g�̊J���҂�����B�ނ炪�J���v���Z�X�ɏ]���΁A�\�t�g�E�F�A�̖��͂Ȃ��Ȃ邾�낤�B�v�Ƃ������́B�������A�A�W���C���\�t�g�E�F�A�J���錾�ʼn�X������Ă���̂͐l�̏d�v���ł��B����͋����ׂ����̂ł����B

2. �g�ݍ��݃\�t�g�E�F�A�ɑ΂���A�W���C���J����TDD�̓���

 Jonathan

-- �g�ݍ��݃\�t�g�E�F�A�J����TDD�𓱓����鎖��͑����Ă���̂ł��傤���H

�m���ɋ����͎�����Ă��܂��B���͂��̎�ނ̃v���N�e�B�X�́A�Y�ƊE�Ɏ󂯓������K�v������Ǝv���Ă��܂��B TDD ���󂯓�����邩�ǂ����́A�@���̖��ɂȂ�ł��傤�B����̓\�t�g�E�F�A�̌��ׂ͐[���Ȗ��������N��������ł��B��肪�N������ł͊�Ƃ̎Љ�I�n�ʂ�ۂ•��@�͂���܂���B�����炭���{�ł������ł��傤�B�����A�����u debug later programming �v�ƌĂ�ł����@�A�‚܂������Ƀf�o�b�O�����ăo�O�����‚����@�𑱂���Ȃ�A���i�̕i�����y�����Ă���ƌ����邩������܂���B�@���̖��ɂȂ邱�Ƃ͔�����ׂ����ƍl����̂ŁATDD �𓱓����Ăق����Ƃ͎v���܂��B������\�t�g�E�F�A�̌��ׂ͎Y�Ƃɑ΂��ĉe����^��������ł��傤�B

-- �g�ݍ��݃\�t�g�E�F�A�J����TDD�𓱓������Ԃ̃��`�x�[�V�����͉��ł��傤���H

�F����A�J���Œɂ݂������Ă���̂ŁA���̓��`�x�[�V��������n�߂邱�Ƃ��D���ł��BTDD �̓�������������ŏ��̃��`�x�[�V�����̓o�O�̒ǐՂł��傤�B

�����g���[�j���O����鎞�͎��O�ɃA���P�[�g�����A3�‚̐����𓚂��Ă��炢�܂��B����͊J�����Ԃɂ����� (1) �����̔䗦�A(2) �e�X�g�̔䗦�A(3) �f�o�b�O�̔䗦�ł��B�ʏ�A�e�X�g�ƃf�o�b�O�͎�����葽���Ȃ�܂��B�����āA��Ƃ͘J�͂̂قƂ�ǁA��̓I�ɂ� 50% �ȏ���o�O�̏����ɔ�₵�Ă��܂��B

���́A�V���� TDD �ɋ������������l�ɑ΂��ăo�O�̖h�~���ŏd�����Ă��邱�Ƃ��������܂��B�����ATDD �̃A�v���[�`�ɏ]���Ȃ�A�������Ƀo�O�����o�����̂ŁA�����̃o�O�𖢑R�ɖh�����Ƃ��ł��܂��B�S�Ăł͂���܂��񂪁A�����͖h���܂��B��ƌo�c�҂ɘb�����鎞���ATDD ���o�O��h�~����d�g�݁A������ debug later programming �̖��ɂ‚��Đ������Ă��܂��B�����A�R�[�h�̌��ׂɂ�郊�X�N����菜�����ł���΁A�J���͂��ǂ����̂ɂȂ�ł��傤�B

����1�ƒ��`�x�[�V����������܂��B�蓮�e�X�g�������”\�ł͂Ȃ��Ƃ������Ƃł� [13]�B�e�X�g���蓮�ł��Ȃ�A������Ƃ����C�������������V�����@�\��lj����鎞�ɑS�Ă̋@�\�������Ńe�X�g����K�v������܂��B�����Ȃ�ƃe�X�g�̍H��������ł��Ȃ��Ȃ�܂��B���̒m���Ă������ł́A�e�X�g�H����Ⴍ�ۂ‚ɂ̓e�X�g�����������邵������܂���B

���̉e���Ƃ��āA�K�؂ɏ����ꂽ�e�X�g�R�[�h�͎��s�”\�ȃh�L�������g�ɂȂ�܂��B����͊J���̌�ɓ�����2����p�̂悤�Ȃ��̂ł��B

-- �����̌���ł̓e�X�g�R�[�h���Ȃ����i�R�[�h�������ATDD �̓���������ȏꍇ������܂��B���̏ꍇ�A�ǂ̂悤�ɑΏ�����Ηǂ��ł��傤���H

�܂��͏������n�߂�ׂ��ł��B�e�X�g�R�[�h���Ȃ��ꍇ�ł��A�V�����@�\��lj����鎞�ɁA�����悤�Ƀe�X�g���lj����܂��B�����̃R�[�h�ɕύX�������鎞�A�ύX�̑O�ɕύX�Ώۂ̃R�[�h���e�X�g�n�[�l�X [14] �ɒlj����A�R�[�h�̐U�镑���ɂ‚��Ċm�M�𓾂邽�߂ɂ����‚��e�X�g�������A�R�[�h�̏C����Ƃ��e�X�g�ŋ쓮���܂��B

Michael Feathers [15] �����K�V�[�R�[�h�ɑ΂���e�X�g�ɂ‚��āu���K�V�[�R�[�h���P�K�C�h�v�Ƃ����f���炵���{�������Ă��܂��B���̖{�̑�13�́uAdding Tests to Legacy Code�v�ɂ��A���i�R�[�h���瓮��Ώۂ̃n�[�h�E�F�A�Ɉˑ����������𕪗����A�i�K�I�Ƀe�X�g�n�[�l�X�ɒlj�����葱���ɂ‚��ď����Ă���̂ŎQ�l�ɂ��Ă��������B

-- �g�ݍ��݃V�X�e���J���ł́A��ʓI�Ƀ\�t�g�E�F�A�J���ȊO�ɂ��n�[�h�E�F�A�J����QA�����Ɏ��Ԃ�������A����ȍ�Ƃł��B�A�W���C���J��������ŁA�ǂ�ȑ΍􂪂���̂ł��傤���H

QA �̃v���Z�X�ɂ����Ă͔����I�ȃA�v���[�`���l����Ɨǂ��ł��傤�B����� QA �S���҂��e�C�e���[�V�����ɂ����ĊJ���҂���������ʕ��ɑ΂��ăe�X�g�����������ł��B�J���҂��C�e���[�V�����̎d���� 1�`2 �T�ԂŊ������AQA �S���҂��e�X�g���A���ʕ��̎󂯓�����s���܂��B

���̎��� QA �S���҂����e�X�g�́A�P�̃e�X�g��荂�����x���̃e�X�g�ł��B�����‚����O������A�U�镑���쓮�J���iBehavior Driven Development; BDD�j[16]�A�X�g�[���[�e�X�e�B���O�A�󂯓���e�X�g�쓮�J���iAcceptance Test Driven Development; ATDD�j[17]�A�����e�X�g�ȂǂƌĂ΂�Ă��܂��B���̂悤�ȁu���s�”\�Ȏd�l�v���������߂̃c�[���Ƃ��āAFitNesse/CSlim [18] �ACucumber�Arobotframework �Ȃǂ�����܂��B

�����g�̓n�[�h�E�F�A�ɂ‚��Ă͂��܂����񋟂ł��܂���BTimo Punkka �� Neil Johnson [19] ���n�[�h�E�F�A�̗̈�ɃA�W���C����K�p������g�݂����Ă��܂��B�ނ�̃u���O���Q�l�ɂȂ�ł��傤�B

�܂��A���[���J�����痈������1�‚̋����[���A�C�f�A�Ƃ��ăo�����[�E�X�g���[���E�}�b�s���O [20] ������܂��B���̎�@�ɂ��A�v���Z�X�����āA���ʂ�x����r���ł��܂��B�o�����[�E�X�g���[���E�}�b�s���O�ɂ‚��Ċw��ŁA�����̃v���Z�X�ɓK�p���Ă݂�Ɨǂ���������܂���B

-- �A�W���C���J���ɂ����ăe�X�g�̖������S�̋��E���ǂ��ݒ肷��̂ł��傤���H�J���҂��ǂ��܂ł��e�X�g���A�ǂ����� QA �S���҂��e�X�g����ׂ��ł��傤���H

�Ȃ����E���K�v���ƍl����̂ł��傤���H

�V�X�e�����J�������ł́A�����̃e�X�g���ׂ��|�C���g������܂��B�ǂ��ɓ��͂�}�����邩�A�����Ăǂ��̔��������邩�A�����̑I����������܂��B�V�X�e���������Ă��邩�A�����ē��������邩���m�F�����ŕK�v�ȃe�X�g��lj����邽�߂ɂ́A��X�͋��E���z���ăe�X�g����K�v������܂��B

QA �S���҂͗v������������Ă��邩�m�F����e�X�g���쐬���܂����A QA �S���҂��K�������v���O���~���O�̃X�L��������킯�ł͂Ȃ��ł��傤�B���̂��߁A�����e�X�g���������n�߂̍��͊J���҂� QA �S���҂ƈꏏ�� QA �̃e�X�g���������ƂɂȂ邩������܂���B���ɂ́A�ǂ��e�X�g����������̓I�ɋ����邱�ƂɂȂ�ł��傤�B

�����̋��E�ɂ‚��Ă���قNjC�ɂ��Ȃ��ł��������B��������K�v�ȃe�X�g���������߂Ƀ`�[���Ƃ��ē����܂��傤�B



�ȏオ�O���̓��e�ł��B����������҉������B


<�⑫>

[1] ���Ђ̓��e�ɂ‚��Ă�2012�N9�������J�����ЏЉ�L�����Q�ƁB

[2] �ڂ����́u�v�����j���O�|�[�J�[�E�I�u�W�F�N�g�Q�[���ŃA�W���C���Q�[���I Agile 2011 Conference�v���Q�ƁB

[3] �ڍׂȌo���� James ����̃T�C�g���Q�ƁB

[4] �A�����J�̉^�A�Ȃ̉����@�ւŁA�q��A���̈��S�ێ���S�����镔�ǁB

[5] �A�W���C���J���錾�̒��҂̈�l�B�����ɂ́w�A�W���C���\�t�g�E�F�A�J���̉��` - �I�u�W�F�N�g�w���J���̐_���Ə��̋Z�x�A�wClean Code - �A�W���C���\�t�g�E�F�A�B�l�̋Z�x�A�wClean Coder - �v���t�F�b�V���i���v���O���}�ւ̓��x�Ȃǂ�����B

[6] �G���N�g���j�N�X�Y�ƌ����̎����������u�Ő��E�ő�̃��[�J�[�B

[7] 1991�N�ARobert Martin �ɂ���Đݗ����ꂽ��ƁB�I�u�W�F�N�g�w���J����XP/Agile�̓����x�����s�Ȃ��Ă���B

[8] �����̑O�����ɂ����� XP ���l�Ă��� Kent Beck �ƒ��Ƀy�A�� TDD ��������o������ATDD �̎��p�����ӎ�����悤�ɂȂ����ƌ��y���Ă���B

[9] Object Mentor �Ђ̃T�C�g�� 2002�N�� James ���̘_���iPDF�j�uExtreme Programming andEmbedded Software Development�v���f�ڂ���Ă���A2000�N�㏉������g�ݍ��݃V�X�e���J���̕����XP���[�ւ��Ă������Ƃ�����������B

[10] �A�W���C���J���錾�̒��҂̈�l�B�����ɂ́w�A�W���C���\�t�g�E�F�A�J���x��w���[�X�P�[�X���H�K�C�h - ���ʓI�ȃ��[�X�P�[�X�̏������x�Ȃǂ�����B

[11] �~�[�e�B���O�̓A�����J�E���^�B�̃X�L�[���]�[�g�n�ōs��ꂽ�B�o�܂ɂ‚��Ă�The Programatic BookShelf�́uAgile @ 10 - Ten Authors of The Agile Manifesto Celebrate its Tenth Anniversary�v�i�����j��James���̋L���ɂ�������Ă���B

[12] �A�W���C���J���錾�̒��҂̈�l�B�����ɂ́u�h���C���������� �p�^�[���Ŋw��DSL�̃x�X�g�v���N�e�B�X46�����v�A�u���t�@�N�^�����O - �v���O�����̑̎����P�e�N�j�b�N�v�A�u�G���^�[�v���C�Y �A�v���P�[�V�����A�[�L�e�N�`���p�^�[���v�Ȃǂ�����B

[13] James����̃u���O�G���g���uManual Test is Unsustainable�v�ŏڂ����Љ��Ă���B

[14] �\�t�g�E�F�A�e�X�g�ŗp������e�X�g���s�p�̃\�t�g�E�F�A�̂��ƁB

[15] Object Mentor�Ђ̃V�j�A�g���[�i�A�����^�[�A�R���T���^���g�B���N�A�A�W���C����XP�̃v���N�e�B�X�A�I�u�W�F�N�g�w���݌v�̃����^�����O��g���[�j���O���s�Ȃ��Ă���B

[16] TDD ����h�������J����@�ł���A�J�����e�X�g�ŋ쓮����_�͋��ʂ��Ă���BTDD �ł̓v���O�����̓��삪���������ǂ������m�F���邽�߂̃e�X�g�������̂ɑ΂��ABDD�ł̓v���O�����́u�U�镑���v�����R����ɋ߂��`�ŗv���d�l�Ƃ��ċL�q����Ƃ����Ⴂ������B BDD �̊T�v�A��̓I�ȃe�X�g�R�[�h�A�e�X�e�B���O�t���[�����[�N�̎g�����ɂ‚��Ă� �uIBM developerWorks - �R�[�h�i����Nj�����: �r�w�C�r�A�쓮�J���𕑑�ɂ����`���v��uRubyistMagazine - �X�̓X�y�b�N�̃X �y�� 1 ��z RSpec �̊T�v�ƁARSpec on Rails (���f����)�v���Q�ƁB

[17] TDD ����h�������J����@�ł���A�J�����e�X�g�ŋ쓮����_�͋��ʂ��Ă���BTDD �ł͊J���҂��P�̃e�X�g�̃��x���Ń\�t�g�E�F�A�̕i�����J���҂̊ϓ_�Ō��؂���̂ɑ΂��AATDD �͌ڋq���󂯓���e�X�g�̃��x���Ń\�t�g�E�G�A�̕i�������[�U�[�̊ϓ_���猟�؂���Ƃ����Ⴂ������B�ڂ����́uITPro - �u�U�߂�e�X�^�[�v���A�W���C���J���̕i����ۏ؂����v���Q�ƁB

[18] Agile2011�ɁuHow CSlim and Fitnesse Can Help You Test Your Embedded System: Doug Bradbury�v�Ƃ����Z�b�V����������AFitness��CSlim�̑g�ݍ��킹�őg�ݍ��ݕ���ɓK�p���Ⴊ���邱�Ƃ�������B

[19] Neil Johnson���́uAgileSoC�v�Ƃ�����H�݌v�ւ̃A�W���C���J���K�p��񏥂��Ă���ASystem Verilog�p�̃e�X�e�B���O�t���[�����[�N�Ƃ���SVUnit���J�����Ă���B

[20] ���[�����Y�Z�@�̂ЂƂ‚ł���A���i��T�[�r�X������҂ɓ͂���̂ɕK�v�ȍޗ��Ə��̗���𕪐͂��邽�߂Ɏg�p�����B

separator line
©2012 OGIS-RI Co., Ltd.
Index Next
Index Next