문제

소프트웨어가 개발되면 유닛, 통합, 기능, 매뉴얼 등 다양한 유형의 테스트가 완료됩니다. 레거시 코드 (테스트 없음)가있는 현재 프로젝트 (SQL Server를 사용한 Winforms)에서는 많은 버그가 있습니다. 수동 + 테스트 (주로 통합)를 사용하여 제거하려고합니다.

그러나 여전히 일부 버그는 탈출 할 수 있습니다.

예를 들어 (가상의 시나리오) - 고객이 지난 6 개월 동안 상품의 상품을 구매 한 경우 6 개월 동안 한 번 구매할 때 약간의 할인을 받아야합니다.

그러나 어떤 이유로 든 (코드의 버그) 시스템은 그렇게하지 않습니다. 어떻게 그러한 시나리오를 해결해야합니까? 설명과 같은 시나리오를 찾는 데이터베이스에서 스크립트를 실행해야합니까? 시나리오의 또 다른 확장은 고객이 특권을 받으면 선물을 보내야하지만 시스템이 누락되어야합니다.

생각?

도움이 되었습니까?

해결책

"설명과 같은 시나리오를 찾는 데이터베이스에서 스크립트를 실행해야합니까?"

"문제를 수정하기 위해 데이터베이스에 스크립트를 넣으십시오"라는 의미입니까? 아니요.

아니. 절대. 어떠한 상황에서도. 독특한 특수 사례 논리를 추가하여 버그를 중심으로 작업하는 것은 실제로 매우 나쁜 생각입니다.

  1. 독특한 특수 사례 논리에 고유 한 버그가 있으면 버기 코드를 추가하여 버기 코드를 수정하려고합니다. 순 손실.

  2. 시스템을 향상 시키려고 할 때는 말이되지 않는이 독특한 특수 사례 논리가 있습니다.

    ㅏ. 운이 좋으면 작업해야 할 버그를 수정하면 중복됩니다. 지금 뭐야? 제거 할 사본은 무엇입니까?

    비. 그렇지 않으면 다른 코드와 모순됩니다. 지금 뭐야? 어느 것이 맞는지?

"문제를 찾아서 디버깅하기 위해 데이터베이스에 스크립트를 넣으십시오"라는 의미라면 그렇습니다. 짧은 시간 동안 버그를 찾고 수정하려면 모든 도구를 사용하여 처분하십시오. 일단 발견되고 고정되면이 스크립트는 쓸모없고 ~ 해야 하다 삭제하십시오.

"응용 프로그램을 테스트하기 위해 데이터베이스에 스크립트를 작성하십시오"라는 의미라면 그렇습니다. 그것이 단위 테스트 스크립트의 것입니다. 그것을 써.

데이터베이스에 넣은 스크립트를 만드는 것보다 단위 테스트를 만드는 것이 훨씬 좋습니다. 단위 테스트가 최선의 접근법입니다.

다른 팁

자동화 된 테스트 수영장이 있어야합니다. 이 테스트 스위트는 사양에 필요한 모든 시나리오를 구현합니다. 할인이 작동하는 것을 테스트하기 위해 6 개월 동안 기다릴 수 없으므로 실제 구현은 모조품 구현 (예제는 Java이지만 다른 언어로는 동일한 원칙이 적용됨), 예를 들어 6 개월이 지났다는 "시뮬레이션". 어설 션을 사용하여 테스트를 자동화 할 수 있습니다.

전체 테스트 스위트가 준비되면 모든 테스트가 코드의 리팩토링/변경 후에 (이전과 마찬가지로) 통과하면 리팩토링으로 인해 기능이 없음을 확인할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top