�m�ˌ��C���^�r���[�n
����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
-- �����́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
-- �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
©2012 OGIS-RI Co., Ltd. |
|