2009-05-19 2 views
0

일종의 일정이 포함 된 웹 응용 프로그램을 작성하고 있습니다. 특정 작업 후에 일정이 업데이트되고 사용자가 무언가 일이 발생한 페이지를 방문 할 때 발생합니다.주어진 시간에 어떤 일이 일어날 지 기능적으로 테스트하는 방법은 무엇입니까?

그런 종류의 기능에 대한 기능 (수락) 테스트를 작성하는 방법에 대한 아이디어가 있으십니까?

저는 셀렌을 사용하여 이러한 엔드 투 엔드 테스트를 작성하고 있습니다. 내가 가지고있는 유일한 아이디어는 서버가 /set-fixed-time?time=...과 같은 URL을 방문하여 주어진 날짜를 사용하게 한 다음 테스트 방문 /set-real-time을 방문한 후입니다.

서버에서 사용자 지정 개체를 사용하여 현재 시간을 가져오고 해당 개체 중 하나를 방문하면 해당 개체가 스왑됩니다.

답변

2

개발자 테스트는 괜찮지 만 동의 테스트는 모의하지 않고 수행해야합니다 (모의 코드에 버그가있을 수 있음). 수락 테스트가 3 일을 기다려야한다면 트리 날짜를 기다리거나 서버 시간을 변경하여 우회를 통과 할 수 있습니다. 나는 시험을 위해 단지 백도어를 남겨 두는 것이 나쁜 생각이라고 생각한다. (일부 테스터는 손으로 그것을 테스트 할 수 있고,/set-real-time을 잊는 것보다).

+0

좋은 점, 감사합니다. 시스템 시간 대신 시간 공급자를 사용하는 것을 잊을 수도 있습니다. 프로덕션 환경에서 이러한/set - * - time 서비스를 사용하지 않도록 설정합니다. –

0

원숭이에 동의합니다. 개발자가 가장 잘 처리합니다.

하이브리드를 사용해 볼 수도 있습니다. 수락 테스트가 생산 현장의 변경되지 않은 시뮬레이션에서 실행되어야하거나 웹 인터페이스 만 사용하도록 허용되거나 관리자로 변경하거나 코드를 실행할 수없는 이유는 없습니다. 또한 전체 서버의 시간을 변경할 필요가 없으므로 의도하지 않은 결과가 발생할 수 있습니다. 사용자가 마지막으로 업데이트 된시기를 대신 변경할 수 있습니다.

Selenium을 프로그램에서 구동 할 수 있으므로 하이브리드 셀렌 및 코드 테스트에서 코드를 사용하여 사용자의 "마지막 업데이트시기"를 설정 한 다음 Selenium 테스트를 실행하여 결과를 확인할 수 있습니다. 그 시간이 끝나기 직전, 시간이 다 떨어지기 바로 전에 시도해보십시오.