음성 테스트란 무엇입니까? 예제가 포함된 테스트 케이스

음성 테스트

음성 테스트 소프트웨어 애플리케이션에서 예상치 못한 입력 데이터와 조건을 확인하는 데 사용되는 소프트웨어 테스트 유형입니다. 예상치 못한 데이터나 조건은 잘못된 데이터 유형에서 강력한 해킹 공격에 이르기까지 무엇이든 될 수 있습니다. 부정적 테스트의 목적은 소프트웨어 애플리케이션이 부정적인 입력으로 인해 충돌하는 것을 방지하고 품질과 안정성을 개선하는 것입니다.

단지 긍정적인 테스트를 수행함으로써 시스템이 정상적인 조건에서 작동하는지 확인할 수 있습니다. 100% 오류 없는 시스템을 보장하려면 시스템이 예상치 못한 조건을 처리할 수 있는지 확인해야 합니다.

음성 테스트의 예

일반적으로 부정적인 테스트의 예로 간주되는 리프트의 경우를 생각해 보십시오.

우리 모두는 리프트의 기능을 알고 있습니다. 이는 층 번호를 누르는 것과 같이 리프트가 특정 층으로 이동하는 것과 같은 리프트 요구 사항으로 간주됩니다.

리프트가 지정된 층에 도달하면 문이 자동으로 열립니다.

이제 리프트에 대한 몇 가지 부정적인 시나리오를 고려해 보겠습니다. 그 중 일부는,

음성 테스트 긍정적인 테스트
인원(체중)이 지정된 한도를 초과하면 어떻게 되나요? 지정된 인원만 엘리베이터에 들어갈 것이라고 가정합니다.
엘리베이터 안에서 누군가 담배를 피우거나 화재를 일으키면 어떻게 되나요? 엘리베이터 내부에는 연기나 불이 없을 것입니다.
운영 중 정전이 발생하면 어떻게 되나요? 리프트 작동 중에 정전이 발생하지 않습니다.

이 모든 사례는 부정적인 테스트를 받게 됩니다. 이것의 중요한 점은 위에서 언급한 모든 일이 발생하지 않을 것이라고 확신할 수 없으므로 이를 억제해야 한다는 것입니다.

과체중 조건을 확인하고 구현 시 과체중 조건이 있는 경우 리프트가 비정상적으로 작동하는 경우를 생각해 보세요. 이는 시스템의 신뢰성에 잠재적인 영향을 미칠 수 있으며 심지어 생명에 위험을 초래할 수도 있습니다. 이것은 부정적인 테스트가 무엇인지와 그 중요성을 설명합니다.

소프트웨어에도 같은 사례가 적용됩니다. 부정적 테스트의 경우, 우리는 정상적인 운영 절차에서 벗어났습니다. 몇 가지 예를 살펴보겠습니다.

예를 들어 등록 양식을 생각해 보세요.

음성 테스트 긍정적인 테스트
이메일 필드에 잘못된 이메일 ID를 입력해 보세요. 이메일 필드에는 유효한 이메일 ID만 입력됩니다.
전화번호 입력란(문자)에 잘못된 전화번호를 입력해 보세요. 숫자 필드에는 숫자만 입력됩니다.
지정된 경계를 벗어난 크기의 이미지 업로드 지정된 경계 이하의 크기를 가진 이미지만 업로드됩니다.
다음과 같은 잘못된 파일 업로드 XML, SQL 등 이미지 업로드 필드의 파일 jpg.png 등 유효한 이미지 형식만 업로드하세요.

앞서 말했듯이, 우리는 이러한 모든 부정적인 경우에 우리 시스템이 제대로 작동하는지 확인해야 합니다. 누군가가 숫자 필드에 문자를 입력하려고 하는데 시스템이 숫자를 예상하고 있기 때문에 예상치 못한 데이터를 처리할 수 없어 결국 시스템이 충돌하는 경우를 생각해 보십시오. 아니면 누군가가 뭔가를 하려고 하면 어떻게 될까요? SQL 인젝션 데이터베이스에서 모든 데이터를 지웁니다. 우리는 그러한 잠재적인 손실을 감당할 수 없습니다. 그래서 부정적인 테스트가 중요합니다.

음성 테스트를 수행하는 이유는 무엇입니까?

테스트는 시간과 비용이 많이 드는 작업이므로 '무엇', '어떻게', '얼마나' 테스트할 것인지 결정하는 것이 정말 중요합니다. 우리는 시스템에서 부정적인 테스트를 해야 할지 여부를 현명하게 선택해야 합니다. 그러니 부정적인 테스트의 중요성을 살펴보겠습니다.

조직 관점

고객에게 좋은 품질의 제품을 제공하는 것은 조직의 책임입니다. 이를 달성하려면 부정적인 테스트를 수행해야 합니다.

실패에 대한 확인의 일환으로 조직은 부정적인 테스트를 수행해야 합니다.

어쩌면 100% 오류 없는 시스템을 구축할 수는 없지만, 부정적인 테스트를 수행하려면 실패를 방지하기 위해 모든 조치를 취했는지 확인해야 합니다.

영향은 우리가 고려해야 할 요소 중 하나입니다. 우리가 전자상거래 사이트에서 긍정적인 테스트를 수행했고 모든 것이 괜찮은지 확인했다고 가정해 보세요. 하지만 누군가가 SQL 주입을 수행하여 모든 데이터를 지울 수 있는 허점이 우리 시스템에 있다면 어떻게 될까요? 이는 큰 보안 침해가 될 것입니다. 이러한 유형의 사례를 피하려면 음성 테스트도 수행해야 합니다.

공개적으로 공개된 애플리케이션(주로 웹사이트)의 경우, 우리는 애플리케이션의 사용 절차를 별로 통제할 수 없다는 점을 항상 염두에 두어야 합니다. 따라서 그러한 모든 사례가 포함되고 억제되어 있는지 확인하기 위해 부정적인 테스트를 수행해야 합니다.

우리가 주의해야 할 또 다른 점은 시스템을 파괴할 기회를 노리는 블랙 해커들이 많이 있다는 것입니다. 해킹은 부정 테스트에서 다루는 중요한 사례입니다.

클라이언트 관점

고객은 부정적인 테스트가 필수인지 확인하기 위해 항상 취약점이 없는 제품을 기대합니다.

전자상거래, 온라인 주식 등과 같은 민감한 제품인 경우 보안 및 부정적인 테스트는 필수입니다.

부정적인 테스트와 관련하여 고객의 유일한 관심사는 비용입니다. 그러나 일단 영향이 분석되면 부정적인 테스트를 수행할지 여부를 결정하는 것은 고객의 몫입니다.

부정적인 테스트를 수행하는 방법

부정적인 테스트를 수행하려면 가능한 모든 경우를 고려해야 합니다. 즉, 가능하다면 우리는 그것을 고려해야 한다. 테스트 케이스 그것이 올바른 사용 방법이 아니더라도 상관없습니다. 예를 들어, 이메일 필드를 보면 올바른 이메일 형식 외에 넣을 수 있는 모든 가능한 입력에 대해 생각해 보세요. 이미지 업로드 옵션을 볼 때도 마찬가지로 가능한 모든 파일로 테스트해야 합니다.

부정적인 테스트 케이스를 만들 때 입력을 우선시해야 합니다. 그렇지 않으면 많은 케이스가 발생할 수 있습니다. 예를 들어, '.png' 파일만 입력해야 하는 이미지 필드의 경우 'jpeg', 'xml', 'xls' 등과 같이 업로드할 수 있는 옵션이 많을 수 있습니다. 따라서 XML과 같은 옵션의 우선 순위를 지정해야 합니다. SQL jpeg 및 xls보다 더 큰 영향을 미칠 수 있으므로 SQL 및 XML 사례를 먼저 처리해야 합니다. 이처럼 시간과 테스트 비용을 절약하려면 실행 전에 사례의 우선순위를 정해야 합니다.

네거티브 테스트의 장점과 단점

다른 모든 테스트 기술과 마찬가지로 주로 '어디서', '언제', '어떻게' 사용할 것인지에 따라 네거티브 테스트에도 장단점이 있습니다. 이것을 살펴 보겠습니다.

음성 테스트의 장점

  • 우리 모두 알고 있듯이 부정적인 테스트는 제품의 품질을 보장하는 데 매우 중요합니다. 좋은 품질의 제품은 취약점이 없는 제품이므로 부정적인 테스트가 매우 중요합니다.
  • 부정적인 테스트를 수행하면 가능한 모든 사례가 포함되는지 확인할 수 있습니다. 의도적으로 또는 의도하지 않게 부정적인 테스트 사례가 발생할 가능성이 있습니다. 따라서 모든 사례가 포함되는지 확인하려면 긍정적인 테스트와 함께 부정적인 테스트를 수행해야 합니다.
  • 부정적인 테스트는 실제 서비스를 시작하기 전에 고객에게 더 많은 확신을 줄 것입니다.

음성 테스트의 단점

  • 소프트웨어 엔지니어링에서는 어떤 경우에는 부정적인 테스트가 시간과 에너지 낭비가 됩니다. 많은 경우 과도한 음성 테스트는 필요하지 않습니다. 예를 들어, 한 사람이 사용하도록 애플리케이션을 만든 경우 동시에 100명의 사용자가 시스템을 사용하는 경우를 고려할 필요가 없습니다. 따라서 부정적인 테스트 케이스의 조건을 결정하는 것은 매우 중요합니다. 특정 시스템에 대해 부정적인 테스트를 수행할 필요가 없는 경우가 있을 것입니다.
  • 부정적인 테스트 사례를 만들려면 숙련되고 경험이 풍부한 사람이 필요합니다.
  • 고객에게 부정적인 테스트는 출시에 불필요한 지연을 초래하고 비용을 추가하는 또 다른 요인입니다.
  • 팀이 부정적인 테스트에 더 많은 시간과 에너지를 소비할 가능성이 있습니다. 테스터가 부정적인 테스트에 많은 시간과 에너지를 소비하여 긍정적인 테스트에 대한 집중도가 낮아질 가능성이 있습니다.