[소프트웨어 테스트 인터뷰] 가장 완벽한 네트워크, 자동 테스트 인터뷰 질문 요약(답변 포함)


머리말

인터뷰 질문 1: 자동화 테스트를 해본 적이 있습니까?

소프트웨어 테스트 인터뷰 질문: https://www.bilibili.com/video/BV1Lq4y137aR/

답변:
저는 xx 프로젝트에서 웹 자동화 테스트를 구현했습니다.우리 프로젝트에서 자동화 테스트 프레임워크 기술을 구축했습니다: python+selenium+pytest/unittest+ddt+jenkins, 그리고 POM 레이어드 모드(객체 지향 사고), 데이터 -drive 엑셀+ddt의 드라이브 모드를 사용하여 이 자동화 테스트 구현 프로젝트에서 해당 모듈 및 테스트 케이스의 자동 코드 작성을 담당하고 있습니다.

xx 프로젝트 기술 스택에서 인터페이스 자동 테스트 플랫폼 구축을 구현했습니다: python+django+pytest+vue+ddt+jenkins

인터뷰 질문 2: 회사에서 자동 테스트를 어떻게 구현합니까?

1. 현재 회사에서 자동화를 구현하고 있으며 자동화 구현 프로세스를 수행할 수 있기를 바랍니다.
2. 회사에서 이미 자동화를 구현하고 있으며 이를 통해 배우고 싶습니다.

1) 자동화 비율은 어느 정도인지 프로젝트 팀의 자동화 가능성 분석
프로젝트 주기는 1년 이상이며 요구 사항은 자주 변경되지 않으며 자동화 스크립트는 지속적으로 반복적으로 사용할 수 있습니다
. 자동화 도구 셀레늄 로봇 프레임워크 연구 및 데모 시연
3) 리더에 의해 자동화된 테스트 프레임워크를 구축하고 프로젝트에서 단계별로 구현하고 프레임워크의 문제점을 발견하고 개선합니다. 4) 자동화를 처리하고
사용 문서 및 사양을 구성합니다. 문서
5) 맞춤형 보고서를 생성하고 프레임워크를 지속적으로 개선

인터뷰 질문 3: 인터페이스 자동화 테스트 프레임워크에서 인터페이스 연결을 어떻게 처리합니까?

우편 배달부와 jmeter는 인터페이스 연결을 어떻게 처리합니까?

답변:
json 추출기, 정규 표현식, 쿠키 추출기

1. 별도의 extract.yaml 파일을 통해 관련 필드를 모두 저장 중간에 추출된 변수는 모든 테스트 케이스 이전에 Clear됨 unittest를
통해 Clear
: setup_class
pytest: conftest+fixtrue
2. 테스트 케이스의 yaml에서 다음을 전달합니다. level 키워드 추출은 json 추출을 지원하는 정규식 추출을 추출한다.
3. 다른 인터페이스의 yaml 파일에서 {{}} 또는 ${}로 추출한다.

인터뷰 질문 4: 처음부터 자동화된 인터페이스 자동화 테스트 프레임워크를 독립적으로 구축했습니까?

답변:
xx 프로젝트에서 구축한 인터페이스 자동화 테스트 프레임워크에 사용된 핵심 기술:
request+pytest+allure+parametrize+jenkins
패키징: 기본 페이지 기본 패키징, 테스트 케이스 패키징...

보조 캡슐화 요청, 로그 수집 모듈 yaml 구성 파일 캡슐화

이 패키지 프로젝트의 규칙:
YAML 형식 사용 사례 규칙
1. 첫 번째 수준 키워드를 포함해야 합니다: name request validation
2. 요청 키워드 아래에 method, url, data를 포함해야 합니다. 데이터가 없으면 default value {}
3 , 변수를 추출하려면 1단계 키워드 extract를 사용합니다. {}를 사용하여 json 추출 및 일반 추출(.+?) 및 (.*?) 값을 지원합니다.
4. 메소드를 호출하여 debug_talk.py에서 debugTalk 클래스의 메소드를 호출하는 핫 로딩을 사용할 수 있습니다. 5. equals 및 주장의 종류를 포함 6. 매개변수를 csv 파일의 데이터 드라이버로 사용하고, {}를 통해 메서드를 호출합니다. 5. 지원은 동일하며 두 종류의 주장을 포함합니다. 6. 매개변수를 csv 파일의 데이터 드라이버로 사용하고 전달합니다.메서드 5 호출 , eq u a ls 지원 어설 6 포함 , 매개 변수 cs v 파일 데이터 드라이버로 사용 , csv 형식의가져 오기 ( appid )

웹 및 인터페이스 자동화
자세한 내용:
웹: 프레임 처리 방법, 드롭다운 상자 처리 방법, 여러 페이지, 팝업 창 작업, 마우스 작업(호버링), 스크롤 막대, 키보드, 처리 방법 인터페이스: 인터페이스 암호화 인터페이스
서명

인터뷰 질문 5: 특정 비즈니스 시나리오와 결합하여 어떻게 테스트합니까?

예를 들어 더블 일레븐 쿠폰은 당일 사용 가능, 100불 사용시 50% 할인, 특가는 못 쓰나요?

수요 분석을 위한 말 그대로 테스트 포인트
1. 더블 11쿠폰 당일 사용 가능(한계값)
2. 지출 100 - 50(한계값)
3. 특가 사용 불가

기타 시나리오
1. UI 검사: 쿠폰 금액. 쿠폰은 회색으로 표시되지 않으며, 유효기간이 표시됨
2. 쿠폰 상태 : 수령 및 미사용, 수령 및 사용, 사용, 사용 후 환불
3. 쿠폰 자동 선택 가능 여부 및 다른 쿠폰과 중복 사용 여부 확인 중첩 사용, 최대 쿠폰의 스마트한 선택, 쿠폰 선택 전환
4, 반품 장면에서 쿠폰을 사용하여 구매한 상품의 반품 금액, 쿠폰 환불 가능 여부
5, 쿠폰 반복 수령 가능 여부 등

인터뷰 질문 6: 프런트엔드와 백엔드 버그를 구별하는 방법은 무엇입니까?

패킷을 캡처하여 프론트엔드 매개변수를 확인하고 백엔드에서 반환된 데이터를 비교합니다.
또한 백그라운드 로그를 분석할 수 있습니다
...
먼저 테스트 환경 문제 또는 오용으로 인한 요인을 제거한 다음 동일한 단계를 수행하여 재생이 되지 않을 경우 이전에 직접 복사 로그의 스크린샷은 개발용입니다.

다시 나타나면 패킷 캡처 도구를 사용하여 요청 및 응답 데이터를 볼 수 있습니다. 요청이 잘못되면 프런트엔드 문제이고 응답이 잘못되면 백엔드 문제입니다.

스테이터스 코드도 살펴볼 수 있는데 일반적으로 4로 시작하면 클라이언트 문제이고, 예를 들어 401이면 비인가, 403이면 접근금지, 404는 페이지를 찾을 수 없다는 뜻이다. 5는 서버의 문제이고 500은 내부 서버 오류입니다.

인터뷰 질문 7: 분산 테스트 아키텍처 및 사용 사례 동시성을 달성하는 방법은 무엇입니까?

그러나 분산 테스트 아키텍처와 관련된 모든 시스템은 일반적으로 UI 자동화를 기반으로 하며 SeleniumGrid는 특히 사용하기 쉬운 분산 아키텍처 배포 서비스입니다.

현재 주류 분산 테스트 프레임워크 배포는 마스터-슬레이브 노드 형식을 기반으로 합니다. 분산 아키텍처를 구현하기 위해 게이트웨이 + N 자식 노드 구성

사용 사례 동시성은 Jenkins의 자체 분산 배포 모드를 달성하기 위해 다중 스레드 모드를 사용하는 것이 좋습니다.
또한 마스터-슬레이브 노드를 기반으로 합니다.

인터뷰 질문 8: POM 자동화 테스트 아키텍처를 구현하는 방법은 무엇입니까?

여러 사람으로 구성된 팀에서 자동화 작업 개발을 해결하는 방법: 아키텍처
테스트 프레임워크 구조 정의:
기본 클래스, 페이지 개체 클래스, 테스트 사례, 테스트 데이터, 구성, 기능...

인터뷰 질문 9: 프레임워크는 어떻게 설계되었습니까? 프레임워크는 어떻게 설계되었나요?

기술:
키워드 기반 + 데이터 기반

사용자 지정 키워드 클래스를 생성하고 후속 호출을 위해 클래스에 모든 캡슐화 기능을 넣기 위해 일반적으로 사용되는 작업 동작의 보조 캡슐화

Excel 데이터 드라이브의 우선 순위를 지정하고 Python 시작 메커니즘 + openpyxl 모듈을 결합하여 Excel 데이터 내용의 읽기 및 실행을 실현하고 표준화된 Excel 파일의 테스트 사례 형식을 정의합니다.

로그 정보 구성, 프레임워크 테스트 환경 구성, 서버 구성, 데이터 파일 읽기 경로 구성, 공용 매개 변수 구성 등과 결합하여 구성 모듈의 세부 R&D 관리를 수행합니다.

재최적화는 Unittest/Pytest 기반의 사용 사례 관리 구현을 고려하고 데이터 읽기를 위한 구동 매개변수를 정의합니다.

HTMLTestRunner 또는 Allure 테스트 보고서 통합, 메일 상속, Jenkins 통합을 통해 자동화된 테스트 구성 실현

분산 테스트 프레임워크 배포의 기술 구현 + 사용 사례의 동시 구현

POM 테스트 프레임워크 구현

인터페이스 테스트의 일반적인 버그

1. 특수 값을 부적절하게 처리하면 프로그램이 비정상적으로 종료될 때 충돌이 발생합니다(사용자가 명시적인 정보를 제출하지 않음)
2. 유형 경계 오버플로로 인해 일관성 없는 데이터 읽기 및 쓰기가 발생합니다(값이 목록에서 확인됨) 쿼리가 실제 항목 수와 일치하지 않음)
3. 값 경계 값을 벗어나면 올바른 오류 메시지가 반환되지 않음
4. 권한이 처리되지 않으면 다른 사용자 정보에 액세스할 수 있음(보고서 내보내기에는 역할 권한이 필요하며 모든 사람이 액세스할 수 있음) 참조) 5. 논리검증이 완벽하지 않을 경우 허점을 이용하여 부당한 이익을 얻을 수 있음 ( 현금
계좌의 입출금은 동결 및 동결 해제)
상태가 미납, 결제대기, 결제취소, 결제환불대기, 환불취소) 7.
배열타입의 항목 개수가 0개이거나 항목이 반복되는 경우 프로그램이 비정상적으로 종료됨

계속 업데이트

다음은 내가 컴파일한 2023년에 가장 완벽한 소프트웨어 테스트 엔지니어 학습 지식 아키텍처 시스템 다이어그램입니다.

1. Python 프로그래밍 입문부터 숙달까지

사진 설명을 추가해주세요

2. 인터페이스 자동화 프로젝트 실전

사진 설명을 추가해주세요

3. 웹 자동화 프로젝트의 실전

사진 설명을 추가해주세요

4. 앱 자동화 프로젝트의 실전

사진 설명을 추가해주세요

5. 1차 제조사 이력서

사진 설명을 추가해주세요

6. DevOps 시스템 테스트 및 개발

사진 설명을 추가해주세요

7. 일반적으로 사용되는 자동화 테스트 도구

사진 설명을 추가해주세요

여덟, JMeter 성능 테스트

사진 설명을 추가해주세요

9. 요약(마지막에 약간의 놀라움)

인생은 마라톤과 같아서 끈질기게 달려야만 결승점에 도달할 수 있습니다. 믿음으로 전진하고 절대 포기하지 마십시오. 열심히 일하는 한 성공은 그리 멀지 않을 것입니다.

꿈은 현재 이상이며 정복을 기다리는 먼 곳이 아직 있습니다. 포기하지 않고 버티는 한, 그 여정이 힘들어도 고치를 깨고 나비가 되어 영광스럽게 피어날 수 있습니다. 우리만의 광채를 만들기 위해 함께 노력합시다!

인생은 너무 짧습니다. 무의미한 일에 인생을 낭비하지 마십시오. 하루하루를 붙잡고 굳건히 앞으로 나아가며 끊임없이 자신을 뛰어넘는다. 언제든지 열정과 열정을 유지하고 끝까지 싸우고 꿈을 쫓고 인생을 의미있게 만드십시오.

추천

출처blog.csdn.net/shuang_waiwai/article/details/130268170