spatialguy의 얼음집: "소년이여 신화가 되어라!"의 ruby on rails에서 test를 쓰지 않으면, 실제로 반도 안 쓰는 것 에서 트랙백.
요즘의 프로그래머들이 다뤄야하는 현실의 문제는 매우 복잡하다. 뭐하나 간단(?)한 것만 짜려고해도,
등등, 산적한 현실의 벽과 싸워야 한다. 그리고 발 한 번 헛디디면, 언젠가 터지는 버그가 안에 곱게(…) 자리잡게 된다.
이런 복잡한 프로그래밍 환경과 맞서는 방법으로 최근…이라기보단 이미 좀 된 과거부터 대세(…이 단어는 싫어하지만)가 된 것 중 하나인 테스트 주도 개발이다. 여기에서 사용되는 개념이,
정도가 있다. Spat. 군이 언급한게 이런거고, 이런 안전띠(?)없이 프로그래밍 하는 일은 장인의 반열에 오르지 않고서야 쉬운 일이 아닐 거다. 비슷한 이유로 이클립스에는 대부분의 개발환경에서 xUnit 류를 실행하는 실행옵션들이 존재 한다 — 예를 들어 python 개발 환경인 pyDev의 실행 옵션은 python, pyUnit, jython 환경들이 있다. MS의 VS도 Team System 이상의 팩키지에는 테스트 용 환경들이 있고, 기업 환경급에서 널리 쓰이는 개발도구들은 이런 자동화된 각 여러 테스트 단계들을 잘 지원하는 것들이 여럿 나와 있다.
즉, RoR은 요즘 나온 환경이라서 저게 보이기 쉬운 곳에 있는 것 뿐이고, 현존하는 주요 언어들 — 한참된 C++부터, 몇 년 안된 python이나 ruby, C#에 이르기까지 — 은 TDD용 환경에 해당하는 test, testUnit, test-fixture, mock-object 같은 것들을 잔뜩 껴안고(?)있다. …다만 안 쓰는 사람들이 많은게 문제지 (…)
덤으로 소스 코드를 분석하거나, "이게 좀 이상한거 같다" 하는 식으로 보고하는 도구들 — covertura라거나 vtune이라거나 소스코드 복잡도 분석툴들 — 도 언어마다 잔뜩 있다. 그리고 이런 류의 툴은 사용자 수나 기업환경에서 많이 쓰이는 애들에 더 많이(비싼걸로) 존재하기도 한다…
ps. 덤으로 웹 응용 쪽에서 사용하는 breakpoint에 대한 얘기를 했는데, 이걸 데스크탑 응용이나 서버 응용 쪽에서 놓고 보면 코어 덤프, 로그 등등이 되겠지…
SW자체에서야 큰 차이 없을꺼고;
A모군 — 그러니까 너희 회사(…) — 하는 거 보니까, 하드웨어 시뮬레이션 해서 테스트하긴 하던데;
Written by rein on June 01, 2008 at 5:59pm
실제로 보기 힘든 예외상황 (특히 디바이스 드라이버보다 밑단 혹은 네트웍 스택 밑단) 인 경우엔 사실 시뮬레이터 말곤 별 대책(?)이 없기도 하다. 재현이 거의 불가능하거든 -_-;;
AT&T처럼 버그 하나에 한 팀 투입해서 2년 넘게 추적할 수 있는 곳이라면 모를까(…)
ps. 작년 중순에 모 사의 모 팀에서 윈도우 드라이버로 네트웍 예외상황 시뮬레이션 하는 거 시도하는 것 같던데.
Written by rein on June 01, 2008 at 11:41pm
안전띠 없이…하는곳도 있습지요…저희 팀 이랄까.
ㅡ _-;
덕분에 여러분들의 3G 생활이 즐겁지아니합니까? (응? -.-;;;)
Written by kalstein on June 02, 2008 at 1:41pm
[...] 프로그래머를 위한 안전띠 [...]
Jump to comments