10년 경력의 소프트웨어 테스팅 엔지니어——인터페이스 자동화 테스팅에 대해 이야기하다

어젯밤 테스트 교환 그룹에서 이전 테스트 드라이버가 인터페이스 자동화 테스트의 내용을 공유하는 것을 듣고 인터페이스 자동화에 대한 더 깊은 이해를 얻었으며 회사의 다음 인터페이스 자동화 구현에 대한 더 많은 아이디어를 제공했습니다.

이 블로그에서는 인터페이스 자동화에 대한 기능 테스트의 발전과 인터페이스 자동화에 대한 몇 가지 사항에 대해 이야기하겠습니다. . .

머리말

자동 테스트는 최근 몇 년 동안 뜨거운 주제이며 물론 미래의 소프트웨어 테스트 개발 추세입니다. 앞으로 기능 테스트와 같은 비핵심 테스트 작업은 아웃소싱될 것입니다.

소프트웨어 테스트 산업에서 계속해서 발전하려면 핵심 경쟁력이 있어야 하며 자동화된 테스트 기술을 마스터하는 것은 필수 기술입니다.

"구글 소프트웨어 테스팅 방법"이라는 책에 소개되어 있습니다: 구글에서 자동화 테스트 작업의 70%는 단위 테스트에 집중하고, 20%는 인터페이스 테스트에 집중하고, 나머지 10%는 UI 테스트에 집중합니다.

Google과 같은 완벽한 메커니즘과 엔지니어 문화를 가지고 있지 않고 Google에서 모든 것을 복사할 필요는 없지만 Internet 2.0 시대에 가장 눈부신 회사로서 Google의 기술 개발 방향, 프로세스 관리 등은 가까운 장래에 도달할 방향이라고 할 수 있습니다. 우리에게 맞는 것을 선택하고 실행하는 것이 지금 우리가 해야 할 일입니다.

현재 국내 인터넷 산업은 여전히 ​​급속한 발전 단계에 있으며 프로세스 표준화가 필요하며 끊임없이 변화하는 발전 속도를 따라가려면 끊임없는 학습, 자기 개선 및 시대의 흐름을 따라잡을 수 있는 내부 원동력이 필요하며 끊임없이 새로운 것을 이해하고 접촉해야 합니다. 동요는 못하더라도 시대에 도태되는 집단은 될 수 없다. 말하자면 오준의 책'탑 오브 더 웨이브'와 '실리콘 밸리의 미스터리' 2권을 추천합니다.흥미로운 아동화는 가서 볼 수 있습니다. . .

1. 인터페이스 테스트의 필요성과 의의

인터페이스, 즉 API, 애플리케이션 프로그래밍 인터페이스는 주로 인터페이스 테스트의 필요성과 중요성에 대해 설명합니다.

인터페이스 테스팅은 다중 시스템 플랫폼 구조로 구현되어 매우 효율적인 비용-편익 비율을 가지고 있습니다.

인터페이스 테스트는 본질적으로 매우 복잡한 플랫폼에 효율적인 결함 감지 및 품질 감독 기능을 제공합니다.플랫폼이 복잡할수록 시스템이 커질수록 인터페이스 테스트의 효과는 더욱 분명해집니다.

일반적으로 인터페이스 테스트는 주로 다음 세 가지 측면에 반영된 높은 복잡성 시스템 품질 및 저비용 경제적 이익의 고유한 요구 사항에 의해 구동되는 최상의 솔루션입니다.

1. 테스트 비용 절감

데이터 모델 계산에 따르면 하위 계층의 프로그램 버그는 상위 계층에서 약 8개의 버그를 유발할 수 있으며 하위 계층의 버그는 전체 네트워크의 충돌을 일으킬 가능성이 더 높습니다. 인터페이스 테스트는 시스템 복잡성이 증가할 때 저비용 및 고효율 솔루션을 제공할 수 있습니다.

2. 인터페이스 테스트는 단위 테스트와 다릅니다.

인터페이스 테스트는 사용자 관점에서 시스템 인터페이스를 포괄적이고 효율적이며 지속적으로 감지하는 것입니다.

3. 더 높은 혜택

인터페이스 테스트를 자동화 및 지속적인 통합으로 실현 시스템의 복잡성과 크기가 증가하면 인터페이스 테스트 비용이 낮아지고 그에 따라 혜택 출력이 높아집니다.

2. 인터페이스 테스트를 수행하려면 어떤 기술이 필요합니까?

인터페이스 테스트를 수행하기 위해 필요한 기술은 기본적으로 다음과 같습니다.

비즈니스 흐름: 시스템과 내부 구성 요소 간의 비즈니스 논리 상호 작용을 이해합니다.

데이터 흐름: 인터페이스의 I/O 이해(입력/출력: 입력 및 출력)

프로토콜: http 프로토콜( HTTP 프로토콜 소개 ), TCP/IP 프로토콜 제품군( TCP 프로토콜 소개 ) 포함

도구: 도구는 작업을 보다 효율적으로 완료하는 데 도움이 될 수 있습니다.일반적으로 사용되는 인터페이스 테스트 도구에는 jmeter, loadrunner, soapui, postman 등이 있습니다.

데이터베이스 지식: 데이터베이스에서 지식을 얻는 것이든, 데이터의 랜딩을 확인하는 것이든, 인터페이스가 데이터에 대해 어떤 작업을 수행하는지 확인해야 하므로 데이터베이스 지식(사실 추가, 삭제, 수정 및 확인)이 매우 필요합니다.

보충: 인터페이스 문서의 몇 가지 필수 사항: 완전성, 일관성, 내결함성;

3. 인터페이스 자동화 테스트

1. 수행방법

첫째, 단일 인터페이스의 정확성과 부드러움을 보장하기 위해 단일 인터페이스를 디버그합니다(성능 테스트의 벤치마크 테스트와 유사).

둘째, 데이터 흐름과 비즈니스 흐름을 명확히 합니다.

마지막으로 N 인터페이스 테스트 스크립트를 함께 연결하고 실행합니다.

가장 중요한 점은 너무 복잡하게 생각하지 말고 가장 기본적이고 간단한 것부터 하면 절반 이상은 성공할 수 있다는 점입니다.

행동하는 것으로 충분합니다. 생각이 많으면 행동하는 것이 좋습니다. 가장 먼저 고려해야 할 사항인 인터페이스 자동화 테스트를 구현하십시오!

2. 시작하기 전에 알아야 할 사항

현재 테스트 개체에는 몇 페이지가 포함되어 있습니까?

각 페이지에 관련된 인터페이스는 몇 개입니까?

어느 단계에서 호출됩니까?

각 인터페이스에는 어떤 필드가 포함되어 있습니까?

각 필드에 해당하는 데이터베이스의 테이블은 무엇입니까?

각 테이블의 필드는 무엇을 의미합니까?

각 인터페이스는 테이블에서 어떤 종류의 작업을 수행합니까?

3. 자동화 프레임워크

프레임워크란 무엇입니까? 완전한 링 또는 환경, 플랫폼 및 인터페이스 테스트 스크립트를 실행하기 위해 원하는 모든 것의 완전한 세트로 이해할 수 있습니다. 일반적으로 자동화된 테스트 프레임워크에는 다음 사항이 포함됩니다.

데이터 풀: 즉, 일반적으로 다음을 포함하여 데이터 패키지에 통합된 테스트 데이터의 스토리지 관리입니다.

log(로그 파일), report(테스트 보고서 파일, 일반적으로 xml 형식), case-data(단일 인터페이스의 테스트 데이터, 일반적으로 json 형식), server-data(인터페이스 서비스의 직렬 연결 데이터, Excel로 관리할 수 있음)

스크립트 관리 센터: 인터페이스 테스트 스크립트의 통합 관리, 저장 및 스케줄링 센터 일반적으로 사용되는 도구에는 maven, ant 등이 포함되거나 프로그래밍 언어에서 단위 테스트 프레임워크에서 제공하는 기능을 사용하고 적합한 것을 선택할 수 있습니다.

실행 플랫폼: 일반적으로 이러한 테스트 스크립트는 도구의 도움으로 실행됩니다. 도구는 위에서 언급한 도구(jemter, loadrunner, soapui 등)를 사용할 수 있습니다. 마찬가지로 올바른 것을 선택하는 것이 중요합니다.

지속적인 통합 도구: 가장 일반적인 도구는 Jenkins이며, 그 기능은 외부 프로그램의 호출 실행을 모니터링하고, 일정 작업을 예약하거나 트리거하고, 테스트 스크립트 실행 및 기타 기능을 수행하는 것입니다.

통신 서비스: dubbo, spring_boot, thrift 및 기타 RPC, REST 동기 호출 서비스

테스트 결과 통계 관리 센터: testlink와 같은 목적은 테스트 결과를 자동으로 업데이트 및 업로드하고 나중에 최적화하기 위해 더 나은 통계 테스트 결과를 제공하는 것입니다.

위에서 많이 말했지만 실제로 그 의미는 데이터와 스크립트의 분리, 테스트 결과 알림의 자동 제출, 테스트 스크립트 및 테스트 데이터의 유지 관리 편의성 향상 등입니다. . .

내가 사용하고 있는 프레임워크는 jemter+maven+Jenkins+dubbo+MySQL...

인터페이스 자동화 테스트에 관해서는 기본적으로 위의 내용입니다.물론 실제 상황에 맞는 프레임워크를 선택하고 구현하는 것이 핵심입니다.행동을 취해야만 짠맛이 돌아설 수 있습니다. . .

다음은 지원 정보입니다.[소프트웨어 테스트]를 하는 친구에게 가장 포괄적이고 완전한 준비 창고가 되어야 합니다.이 창고는 또한 가장 어려운 여정을 함께했습니다.당신에게도 도움이 되기를 바랍니다!

소프트웨어 테스트 인터뷰 애플릿

소프트웨어 테스트 문제 은행은 수백만 명의 사람들이 최대로 채웠습니다! ! ! 누가 알겠어! ! ! 전체 네트워크에서 가장 포괄적인 퀴즈 미니 프로그램으로, 지하철이나 버스에서 휴대폰을 사용하여 퀴즈를 풀 수 있습니다.

다음 인터뷰 질문 섹션이 다룹니다.

1. 소프트웨어 테스팅의 기초이론, 2. 웹, 앱, 인터페이스 기능 테스팅, 3. 네트워크, 4. 데이터베이스, 5. 리눅스

6. 웹, 앱, 인터페이스 자동화, 7. 성능 테스트, 8. 프로그래밍 기본 사항, 9. 시간 인터뷰 질문, 10. 공개 테스트 질문, 11. 보안 테스트, 12. 컴퓨터 기본 사항

정보 획득 방법:

추천

출처blog.csdn.net/myh919/article/details/131831413