3

우리는 자동 테스트를 사용하여 웹 응용 프로그램의 기능을 확인합니다. 테스트 사례의 주장을 덜 복잡하고 융통성있게하기 위해 테스트 코드가 페이지의 요소를 찾고 검증하는 데 도움이되는 'TestIDs'즉 HTML 마크 업에 ID가 도입되도록 고려하고 있습니다. 또한이 TestID는 페이지의 제한된 데이터로 인해 현재 불가능한보다 구체적인 통합 테스트를 허용합니다.HTML 마크 업에서 테스트 자동화를위한 테스트 ID는 무엇입니까?

그러나, 여기에 우리가 주저 무엇을 만드는 것입니다 :

  • 도입 테스트 ID는 이 (가)
  • 보안을 테스트하기 위해 테스트 변경을 의미합니다 - 우리가 내부 도메인 개체 ID 및 기타 정보를 공개 할 것이라고 그렇지 않은 것 페이지에 표시되지 않음
  • 표준 - 우리가 의도 한 의미 론적 사용을 위반할 가능성이있는 마크 업에 TestID를 입력하는 방법에 따라 요소 또는 속성 (예 : 등 'ID'또는 '클래스의 속성, 다른 HTML 요소)
  • 간섭 - TestIDs 사용자에게 불필요한 마크 업 (이다)와 (페이지 크기를 증가 - TestIDs가 응용 프로그램 코드와
  • 성능을 방해 할 수 큰 페이지에서만 의미가 있음)

테스트/스테이징 HTML 제한은 프로덕션에서 사용되는 코드를 테스트하고 테스트/스테이징을 원하지 않기 때문에 좋은 생각으로 보이지 않습니다. 환경이 다르게 행동해야합니다. 사실, 우리는 현재 릴리스 후에 라이브 시스템에 대해 테스트 스위트의 일부를 실행합니다.

당신은 TestID가 좋은 생각이라고 생각합니까? 그렇다면 어떻게 마크 업에 넣을까요?


내가 무슨 말 증명하기 위해 일부 샘플 마크 업 :

<!-- this test id allows an integration test to verify that 
    the carrot 188271 is in fact green but exposes the id to the user --> 
<tr id="testid-carrot-id-188271"> 
    <td class="color">green</td> 
    <td class="size">doesn't matter</td> 
</tr>

답변

3

더 쉽고 우수한 테스트의 이점이인지 된 위험을 능가한다고 말할 수 있습니다.나는 당신이 다음과 같은 것에 대해 이야기하고 있다고 가정합니다 : id = 'resultDetail'을 페이지의 결과 세부 요소에 추가하여 자동 테스트를 찾는 것이 더 쉽습니다. 나는 솔직히 저것에있는 해를 보지 않는다. 지나치게 단순한 견해를 가지고 있다면 아마도 여러분은 여러분이 생각하고있는 것을 더 잘 이해할 수 있도록 샘플 마크 업을 던질 수 있습니다.

샘플 마크 업을 본 사용자에게 ID를 제공하는 데 문제가 없습니다. 많은 응용 프로그램에서 도메인 ID를 노출합니다. 사실, 내 경험에 비추어 볼 때, 종종 그 도메인 아이디는 UI의 핵심적인 부분입니다 - 종종 ID는 더 상세한 정보를 얻고 편집하고 삭제할 수있는 링크가 될 것입니다 ...

3

당신은 XPath는 등의 요소를 식별하는 다른 것을 사용하여 생각 해 봤나? 귀하의 페이지가 얼마나 동적인지 전혀 모르겠지만 XPath는 원하는 요소가 무엇인지 구체적으로 나타낼 수 있습니다.

개인적으로 테스트 ID를 사용하여 프로덕션 HTML을 부 풀리지 않을 것입니다.

+0

우리 사이트 * 매우 * 역동적이며 (사용자 정의!), 안정적이고 안정적인 XPath 표현을 찾아 내 (테스트!) 매우 어렵게 만듭니다. –

5

라이브 사이트에서 테스트 용 코드는 절대 두지 않습니다. 그건 그냥 나쁜 원칙이고 해킹을 초대하는 것입니다.

테스트 ID가 페이지의 다른 ID와 충돌하지 않고 ID가 고유해야하며 라이브 코드에서 참조하지 않는 한 테스트 ID가 형식화되어 있으면 (테스트 할 수없는 경우) 여기에 더 큰 문제가 있다고 판단 할 때) 테스트 사이트와 ID가없는 라이브 사이트 사이에는 동작에 차이가 없어야합니다.

필자의 의견으로는 테스트 코드가 개발 사이트에서 올바르게 실행되도록 디자인하는 것이 가장 좋습니다. 실제로 제거하면 실제 사이트가 손상되지 않습니다. 내 사이트가 제대로 작동하는지 확인하기 위해 정기적으로 라이브 버전을 테스트해야하는 경우 걱정할 것입니다.