E D R , A S I H C RSS

BackLinks search for "UnitTest"

BackLinks of UnitTest


Search BackLinks only
Display context of search results
Case-sensitive searching
  • 1002/Journal
         Refactoring 을 하기전 Todo 리스트를 정리하는데만 1시간정도를 쓰고 실제 작업을 들어가지 못했다. 왜 오래걸렸을까 생각해보면 Refactoring 을 하기에 충분히 Coverage Test 코드가 없다 라는 점이다. 현재의 UnitTest 85개들은 제대로 돌아가지만, AcceptanceTest 의 경우 함부로 돌릴 수가 없다. 왜냐하면 현재 Release 되어있는 이전 버전에 영향을 끼치기 때문이다. 이 부분을 보면서 왜 JuNe 이 DB 에 대해 세 부분으로 관리가 필요하다고 이야기했는지 깨닫게 되었다. 즉, DB 와 관련하여 개인 UnitTest 를 위한 개발자 컴퓨터 내 로컬 DB, 그리고 Integration Test 를 위한 DB, 그리고 릴리즈 된 제품을 위한 DB 가 필요하다. ("버전업을 위해 기존에 작성한 데이터들을 날립니다" 라고 서비스 업체가 이야기 한다면 얼마나 황당한가.; 버전 패치를 위한, 통합 테스트를 위한 DB 는 따로 필요하다.)
         Prometheus 코드를 다시 checkout 하고 UnitTest 깨진 부분을 보면서 기존의 TDD 진행 보폭이 얼마나 컸는지가 보였다. (다시 Green Bar 를 보이게끔 하기에 진행해야 할일이 많았으니까. Extractor Remote Test 가 no matched (정규표현식에서 매칭 실패)로 깨졌을때 생각해야 할 일이 두가지이다. 하나는 HTML 이 제대로 받아졌는가(또는 HTML 이 도서관에서의 에러코드를 반환하는가), 하나는 extractor 가 그 구실을 제대로 하는가. 그런데, 테스트 코드를 보면 저 두가지가 묶여있다.
  • AcceptanceTest
         요새는 CustomerTest 라고 표현하기도 한다. (UnitTest 를 ProgrammerTest 라고 부른다고 할때 상대적인 개념일듯).
  • Armdroid/6회차
          * UnitTest는 나름 기대했던 주제인데, 잠깐 짤막하게 하느라 그리 유용한 정보는 얻지 못함.
          * UnitTest도 재밌었음
  • BoaConstructor
          4. 재사용될 것 같은 모듈들에 대해 UnitTest 를 붙여나간다. 추후 추출용.
         UnitTest 가 있는 것만으로도 언제든지 리팩토링할 수 있다는 믿음이 있다면..~ 혼자서 프로토타입 플밍 할때는 그냥 StepwiseRefinement & UnitTest 조합도 괜찮은 것 같다. 빨리 기능을 얻은뒤 기능들 보고 중간에 CRC 해가면서 유용할만한 Object들을 추출해나가는 것도. 언제든지 Object 뽑아낼 자신이 있으니까.
  • CppUnit
         C++ 에서 UnitTest를 하기 위한 UnitTestFramework. http://sourceforge.net/projects/cppunit/ 에서 다운 받을 수 있다.
         C++ 의 또다른 형태의 UnitTestFramework 로 CxxTest 가 있다.
          * Library 화일 생성 : {{{~cpp ...cppunitexamplesexamples.dsw }}} 을 연뒤 {{{~cpp WorkSpace }}}의 {{{~cpp FileView }}}에서 {{{~cpp CppUnitTestApp files }}} 에 Set as Active Project로 맞춰준다.(기본값으로 되어 있다.) 그리고 컴파일 해주면 lib 폴더에 library 화일들이 생성될 것이다.
         = UnitTest TestCase의 작성 =
         코드를 보면 알겠지만, ASSERT 문들에 대해서 전부 매크로를 이용한다. 만일 이를 다른 언어들의 UnitTest Framework 처럼 assertEqual 이나 assert 문으로 쓰고 싶다면, 다음의 문장을 cppunit library 를 include 하기전에 추가해준다.
         kldp.net 에 c 를 위한 UnitTest Framework 프로젝트가 있었네요. http://kldp.net/projects/act/
         UnitTest
  • CubicSpline/1002
          * Python 코드에 대한 이해. UnitTest, TestFirstProgramming 에 대한 이해.
         === UnitTest Code ===
  • Eclipse
          * quick fix, UnitTest, [Refactoring], [CVS], 그리고 방대하고 다양한 플러그인들이 제일 마음에 든다. 툴을 사용하는 재미가 있다. - [임인택]
  • ExtremeProgramming
         ExtremeProgramming 은 경량개발방법론으로서, RUP 등의 방법론에 비해 그 프로세스가 간단하다. XP 에서의 몇몇 개념들은 일반적인 프로그래밍에서도 유용하게 쓰일 수 있다. 특히 TestDrivenDevelopment(TestFirstProgramming) 의 개념과 Refactoring, UnitTest는 초기 공부할때 혼자서도 실습을 해볼 수 있는 내용이다. 개인 또는 소그룹의 훈련으로도 이용할 수 있을 것이다.
         개발시에는 PairProgramming 을 한다. 프로그래밍은 TestFirstProgramming(TestDrivenDevelopment) 으로서, UnitTest Code를 먼저 작성한 뒤 메인 코드를 작성하는 방식을 취한다. UnitTest Code -> Coding -> ["Refactoring"] 을 반복적으로 한다. 이때 Customer 는 스스로 또는 개발자와 같이 AcceptanceTest 를 작성한다. UnitTest 와 AcceptanceTest 로서 해당 모듈의 테스트를 하며, 해당 Task를 완료되고, UnitTest들을 모두 통과하면 Integration (ContinuousIntegration) 을, AcceptanceTest 를 통과하면 Release를 하게 된다. ["Refactoring"] 과 UnitTest, CodingStandard 는 CollectiveOwnership 을 가능하게 한다.
          * UnitTest: 모든 클래스들에 대한 자동화된 테스트 코드들.
  • GuiTesting
         See Also wiki:Wiki:GuiTesting, wiki:Wiki:GuiUnitTesting, [http://www.xp123.com/xplor/xp0001/ JavaGuiTesting] , ["GuiTestingWithMfc"], ["GuiTestingWithWxPython"]
         ["UnitTest"]
  • HypersonicSql
         In-Memory DB 모드는 UnitTest 시에 쓸만하다. JDBC 접속 방법 그대로 사용하면 된다.
  • JUnit
         Java 언어를 위한 UnitTest Framework.
          JUnit 에서 UnitTest (PyUnit) 에서처럼 testing message 나오게 하려면 어떻게 해야 하죠..? -임인택
  • Java
          ||["JUnit"]||["Java"] ["UnitTest"] Framework||
          ||["ServletUnit"] || 서블릿 ["UnitTest"] Framework ||
  • JavaStudy2002/참고자료
         ["JUnit"] - Java 언어를 위한 UnitTest Framework (위키페이지)[[BR]]
  • MineFinder
          * 지뢰찾기 프로그램의 윈도우 핸들을 얻고 해당 메세지를 보내어서 지뢰찾기 프로그램을 구동하는 루틴 관련 SpikeSolution. (아.. UnitTest 코드 넣기가 애매해서 안넣었다. 궁리해봐야 할 부분같다.)
  • MockObjects
         UnitTest를 위한 일종의 보조객체.
         사용 예2) Datatbase 와 관련된 프로그래밍에 대해서 UnitTest를 할때, DB Connection 에 대한 MockObject를 만들어서 DB Connection을 이용하는 객체에 DB Connection 객체 대신 넣어줌으로서 해당 작업을 하게끔 할 수 있다. 그리고 해당 함수 부분이 제대로 호출되고 있는지를 알기 위해 MockObject안에 Test 코드를 넣어 줄 수도 있다.
         그리고 위와 같은 경우 UnitTest 코드의 중복을 가져올 수도 있다. 이는 상속과 오버라이딩을 이용, 해결한다.
         ["ExtremeProgramming"], ["UnitTest"]
  • NUnit
         [http://nunit.org/ NUnit] 은 .Net 언어들을 위한 UnitTest Frameworks 이다.
         See Also UnitTestFramework
  • NUnit/C#예제
         == 단축키로 콘솔에서 UnitTest 실행하기 ==
  • PairProgramming
          * 하지만 UnitTest도 그렇듯이, 많은 장점을 가진 방법을 완벽하지 않다는 이유로 사용하지 않는다는 것은 아쉬운 일일 것이다.
  • PragmaticVersionControlWithCVS/Getting Started
         파일을 수정, UnitTest를 거치면 수정한 내용을 저장소에 저장해야할 것이다.
  • PragmaticVersionControlWithCVS/HowTo
         VersionControl 은 개발팀이 해야할 3가지 실천과제중의 한개. ( UnitTest, Automation )
  • ProjectPrometheus
          * 지금 Release 이후 버그 잡는중이라는. ^; ["Ant"] 배포하고 컴파일 하고 UnitTest 돌려서 테스트 에러 안나는것 확인한것 까진 좋았는데, 문제가 발생하는군요. 계속 궁리중이라는.~ --["1002"]
  • ProjectPrometheus/AcceptanceTestServer
         해당 AcceptanceTest 의 Run 를 클릭하면, WEB 에서 해당 AcceptanceTest (UnitTest 작성 코드) 를 실행하고, 그 결과를 그대로 화면에 출력한다. 그러면 해당 테스트에 대한 결과를 확인할 수 있다.
  • ProjectPrometheus/CookBook
         === ZeroPageServer 에서 UnitTest ===
         ZeroPageServer 에 릴리즈 한뒤 UnitTest 하기.
  • ProjectPrometheus/Journey
          * UnitTest 들이 드디어 다시 녹색바. 그리고 서블릿에 있던 로직 부분을 Extract, 테스트들을 붙여줌.
  • ProjectZephyrus/ClientJourney
          * TDD 가 아니였다는 점은 추후 모듈간 Interface 를 결정할때 골치가 아파진다. 중간코드에 적용하기 뭐해서 궁여지책으로 Main 함수를 hard coding 한뒤 ["Refactoring"] 을 하는 스타일로 하긴 하지만, TDD 만큼 Interface가 깔끔하게 나오질 않는다고 생각. 차라리 조금씩이라도 UnitTest 코드를 붙이는게 나을것 같긴 하다. 하지만, 마감이 2일인 관계로. -_- 스펙 완료뒤 고려하던지, 아니면 처음부터 TDD를 염두해두고 하던지. 중요한건 모듈자체보다 모듈을 이용하는 Client 의 관점이다.
  • PyIde/FeatureList
          * UnitTest Runner
  • PyUnit
          * PyUnit는 Python 에 기본적으로 포함되어있는 UnitTest Framework library이다. 하지만, UnitTest작성에 대한 기본적인 개념들을 쉽게 담고 있다고 생각하여 공부중. (솔직히 C++로 UnitTest할 엄두 안나서. --; Python으로 먼저 프로토타입이 되는 부분을 작성하고 다른 언어로 포팅하는 식으로 할까 생각중)
         PyUnit에서는 TestCase는 unittest모듈의 TestCase 클래스로서 표현된다.testcase 클래스를 만들려면 unittest.TestCase를 상속받아서 만들면 된다.
         import unittest
         class DefaultWidgetSizeTestCase(unittest.TestCase):
         import unittest
         class SimpleWidgetTestCase(unittest.TestCase):
         import unittest
         class SimpleWidgetTestCase (unittest.TestCase):
         import unittest
         class WidgetTestCase (unittest.TestCase):
         Test case 인스턴스들은 그들이 테스트하려는 것들에 따라 함께 그룹화된다. PyUnit는 이를 위한 'Test Suite' 메커니즘을 제공한다. Test Suite는 unittest 모듈의 TestSuite class로 표현된다.
         widgetTestSuite = unittest.TestSuite ()
          suite = unittest.TestSuite ()
         class WidgetTestSuite (unittest.TestSuite):
          unittest.TestSuite.__init__(self, map(WdigetTestCase, "testDefaultSize", "testResize")))
         unittest 모듈에는 makeSuite 라는 편리한 함수가 있다. 이 함수는 test case class 안의 모든 test case를 포함하는 test suite를 만들어준다. (와우!!)
         suite = unittest.makeSuite (WidgetTestCase, 'test')
         alltests = unittest.TestSuite ((suite1, suite2))
         runner = unittest.TextTestRunner ()
         ["UnitTest"], ["ExtremeProgramming"]
  • PythonLanguage
          * TestFirstProgramming, UnitTest(PyUnit 참고), ["Refactoring"] 등의 방법론을 같이 접목시키면 더욱 큰 효과를 발휘할 수 있다.
  • REFACTORING
          * 기존의 "디자인 후 코딩' 법칙과 반대된다. (TestFirstProgramming 에서 UnitTest - ["Refactoring"] 이 맞물려 돌아간다)
          * Refactoring 을 하기 위해서는 UnitTest code가 필수적이다. 일단 처음 Refactoring에 대한 간단한 원리를 이해하고 싶다면 UnitTest 코드 없이 해도 좋지만, UnitTest code를 작성함으로서 Refactoring 에 대한 효과를 높일 수 있다. (Refactoring 중 본래의 외부기능을 건드리는 실수를 막을 수 있다.)
  • RefactoringDiscussion
          * 코드의 의도가 틀렸느냐에 대한 검증 - 만일 프로그램 내에서의 의도한바가 맞는지에 대한 검증은 UnitTest Code 쪽으로 넘기는게 나을 것 같다고 생각이 드네요. 글의 내용도 결국은 전체 Context 내에서 파악해야 하니까. 의도가 중시된다면 Test Code 는 필수겠죠. (여기서의 '의도'는 각 모듈별 input 에 대한 output 정도로 바꿔서 생각하셔도 좋을듯)
         우리에겐 프로그램의 옳음(correctness)이 일차적입니다. 이것은 ["UnitTest"]나 Eiffel 같은 DBC 언어로 상당한 정도까지 보장 가능 합니다.
  • ScheduledWalk/석천
         StructuredProgramming 기법으로 StepwiseRefinement 하였습니다. 문제를 TopDown 스타일로 계속 재정의하여 뼈대를 만든 다음, Depth First (트리에서 깊이 우선) 로 가장 작은 모듈들을 먼저 하나하나 구현해 나갔습니다. 중반부터는 UnitTest 코드를 삽입하기를 시도, 중후반부터는 UnitTest Code를 먼저 만들고 프로그램 코드를 나중에 작성하였습니다.
          1. 순차적으로 - 왼쪽 -> 오른쪽 순서로. 실행 순서에 따라 구현한다. (실행 순서와 상관없이 독립적으로 따로 생각하여 구현할 수 있습니다. 이는 UnitTest 참조)
         (관련 페이지 참조, 또는 ["TestFirstProgramming"], ["UnitTest"])
          UnitTestAll();
         void UnitTestAll();
  • SeminarHowToProgramIt
         (See Also ["PyUnit"], ["UnitTest"], ["JUnit"], ["CppUnit"]. C 언어를 사용하시는 분들은 ASSERT 문으로 UnitTest 부분을 어느정도 대신할 수 있습니다.)
  • SeminarHowToProgramItAfterwords
          * ["neocoin"] : UnitTest에서 추구한 프로그램의 설계에서 Divide해 나가는 과정은 여태 거의 디자인 타임에서 거의 수행을 했습니다. 그래서 여태 Test를 위한 코드들과 디버그용 코드들을 프로그램을 작성할때마다 그런 디자인에도 많은 시간을 소요했는데, 아예 프로그램의 출발을 Test에서 시작한다는 발상의 전환이 인상 깊었습니다. --상민
  • TestCase
         See Also ["UnitTest"]
  • TestDrivenDevelopmentByExample/xUnitExample
         C++로 UnitTest프레임워크를 만들기 전에 책에 있는 파이선 예제를 따라하고 있습니다. 따라가는 과정은 책에 있습니다.
  • TestFirstProgramming
         어떻게 보면 질답법과도 같다. 프로그래머는 일단 자신이 만들려고 하는 부분에 대해 질문을 내리고, TestCase를 먼저 만들어 냄으로서 의도를 표현한다. 이렇게 UnitTest Code를 먼저 만듬으로서 UnitTest FrameWork와 컴파일러에게 내가 본래 만들고자 하는 기능과 현재 만들어지고 있는 코드가 하는일이 일치하는지에 대해 어느정도 디버깅될 정보를 등록해놓는다. 이로서 컴파일러는 언어의 문법에러 검증뿐만 아니라 알고리즘 자체에 대한 디버깅기능을 어느정도 수행해주게 된다.
         ExtremeProgramming에서는 UnitTest -> Coding -> ["Refactoring"] 이 맞물려 돌아간다. TestFirstProgramming 과 ["Refactoring"] 으로 단순한 디자인이 유도되어진다.
          * wiki:Wiki:CodeUnitTestFirst, wiki:Wiki:TestFirstDesign, wiki:Wiki:TestDrivenProgramming
          * wiki:Wiki:ExtremeProgrammingUnitTestingApproach
         테스트 코드 작성에 대해서는 UnitTest 와 PyUnit, CppUnit 를 참조하라.
         이 경우에도 ["MockObjects"] 를 이용할 수 있다. 기본적으로 XP에서의 테스트는 자동화된 테스트, 즉 테스트가 코드화 된 것이다. 처음 바로 접근이 힘들다면 Mock Server / Mock Client 를 만들어서 테스트 할 수 있겠다. 즉, 해당 상황에 대해 이미 내장되어 있는 값을 리턴해주는 서버나 클라이언트를 만드는 것이다. (이는 TestFirstProgramming 에서보단 ["AcceptanceTest"] 에 넣는게 더 맞을 듯 하긴 하다. XP 에서는 UnitTest 와 AcceptanceTest 둘 다 이용한다.)
  • TestSuiteExamples
         여러 UnitTestFramework에서 TestSuite를 사용하는 예제들
         import unittest
         class AllTests(unittest.TestSuite):
          unittest.main(argv=('','-v'))
         import unittest
          return unittest.defaultTestLoader.loadTestsFromNames( ('ThePackage.test_file1','ThePackage.subpack.test_file2'))
          unittest.TextTestRunner(verbosity=2).run(suite())
         [프로그래밍분류], TestDrivenDevelopment, UnitTest
  • UnitTest
         TestFirstProgramming 을 하게 되면 해당 프로그램을 작성해 나가는 과정이 UnitTest 작성중 남게 된다. 이는 일종의 WhiteBoxTesting 이 된다. 또한, 해당 모듈이 제대로 돌아가는지에 대한 결과도 체크하므로 BlackBoxTesting 의 역할을 한다. 즉, ExtremeProgramming 에서의 UnitTest 는 두가지 테스트의 성격을 같이 포함하고 있다. (Gray Box Testing)
         보통 테스트 코드를 작성할때는 UnitTestFramework Library들을 이용한다. 각 Language 별로 다양한데, C++ 사용자는 ["CppUnit"], Java 는 ["JUnit"], Python 은 ["PyUnit"] 등을 이용할 수 있다. PyUnit 의 경우는 2.1부터 기본 모듈에 포함되어있다.
         SoftwareEngineering 에 있어서 UnitTest 는 '단위 모듈에 대한 테스트' 이다. 즉, 해당 기능이 제대로 돌아감을 확인하는 테스트가 UnitTest 이다.
         우리는 실제로 프로그래밍을 하는 중간중간에 결과값을 출력해봄으로서 제대로 돌아감을 확인한다. 이 또한 UnitTest 라 할 수 있겠다. (단, Manual Test 로 분류해야 하겠다.) 올바른 결과값인지 확인하는 과정을 코드로서 만들어 넣는다면 이 테스트는 자동화시킬수 있을 것이다.
         예를 든다면, 다음과 같은 것이 UnitTest Code 가 될 수 있겠다.
         C 에서의 UnitTest Code 작성시에는 assert 문으로 비슷한 기능을 구현 할 수 있다.
  • UnitTestFramework
         UnitTest code 작성을 위한 Framework
  • VendingMachine/재니
          ''클래스 수가 많아서 복잡해진건 아닌듯(모 VendingMachine 의 경우 Requirement 변경에 따라 클래스갯수가 10개 이상이 되기도 함; 클래스 수가 중요하다기보다도 최종 완료된 소스가 얼마나 명료해졌느냐가 복잡도를 결정하리라 생각). 단, 역할 분담할때 각 클래스별 역할이 명료한지 신경을 쓰는것이 좋겠다. CoinCounter 의 경우 VendingMachine 안에 멤버로 있어도 좋을듯. CRC 세션을 할때 클래스들이 각각 따로 존재하는 것 같지만, 실제론 그 클래스들이 서로를 포함하고 있기도 하거든. 또는 해당 기능을 구현하기 위해 다른 클래스들과 협동하기도 하고 (Collaboration. 실제 구현시엔 다른 클래스의 메소드들을 호출해서 구현한다던지 식임). 역할분담을 하고 난 다음 모의 시나리오를 만든뒤 코딩해나갔다면 어떠했을까 하는 생각도 해본다. 이 경우에는 UnitTest 를 작성하는게 좋겠지. UnitTest 작성 & 진행에 대해선 ["ScheduledWalk/석천"] 의 중반부분이랑 UnitTest 참조.--["1002"]''
  • VisualStudio
         의외로 Debugger 를 이용하지 않는 사람들이 있다. UnitTest 를 작성하면서 프로그래밍을 하지 않는다면, Debugger는 불가피하다. 학교 프로그래밍 수업때 정식으로 가르치지 않기 때문에 MSDN이나 온라인의 강좌, 알고 있는 학우들에게 물어보아 배울수 있다.
  • comein2
          * ExtremeProgramming 관련 UnitTest , Refactoring
  • 데블스캠프2002/진행상황
          * ["RandomWalk2"] 를 ObjectOrientedProgramming 으로 구현하기 - 위의 Python 관련 실습동안 ["1002"] 는 ["RandomWalk2"] 에 대해서 C++ Prototype을 작성. (["RandomWalk2/ClassPrototype"]) 이를 뼈대로 삼아서 ["RandomWalk2"] 를 작성해보도록 실습. 해당 소스에 대한 간략한 설명, 구현의 예를 설명. 중간에 객체들에 대한 독립적인 테스트방법을 설명하면서 assert 문을 이용한 UnitTest 의 예를 보였다.
  • 데블스캠프2004/금요일후기
         Finding(s) : 가르치는 것은 곧 배우는 것이다. 집에오다가 배아파서 많이 괴로웠다. (이놈의 버스 신호에는 왜 이리 잘 걸리는지;; ). 무언가 프로그램을 짜고싶은데 특별히 흥미를 끄는게 없다. -_- KentBeck 왈, TDD를 해볼 때 특정 언어에 대한 UnitTest Framework를 만들어보라고 하던데.. 한번 해볼까?;;;
Found 44 matching pages out of 7540 total pages

You can also click here to search title.

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:28:20
Processing time 0.0157 sec