>  기사  >  백엔드 개발  >  Python 자동화의 기본 기술 원리

Python 자동화의 기본 기술 원리

PHPz
PHPz원래의
2017-03-12 16:53:353444검색


python자동 테스트(2)

자동화의 기본 기술 원리

1 개요

이전 기사에서도 언급했듯이 자동화를 할 수 있는 첫 번째 능력은 현상을 통해 본질을 보는 것입니다. 실제 IT 업무에 구현했을 때 인터페이스를 통해 데이터를 보는 것입니다. .

위의 기술을 익히는 것은 쉽지 않습니다. 깊고 본질적인 것을 보려면 컴퓨터 이론의 탄탄한 기초가 있어야 합니다.


2 애플리케이션소프트웨어 논리 구조

데이터베이스 애플리케이션 시스템은 아마도 가장 일반적인 네트워크 애플리케이션일 것입니다. 소프트웨어 아키텍처 는 다음과 같습니다.

은 일반적으로 4개의 논리 계층으로 나뉩니다.


  • 사용자 인터페이스 레이어 UI

  • 최종 사용자를 위한 대화형 인간-컴퓨터 인터페이스 제공


    • 비즈니스 로직 계층 BLL

    • 데이터베이스 추상화 객체 를 특정 비즈니스 로직 객체로 엮어 프로세스를 정리합니다.


    • 데이터 액세스 계층 DAL

    • 상위 계층 애플리케이션이 객체 형태로 데이터베이스를 제어할 수 있도록 하는 DB 계층용 ORM


    • 데이터 지속성 계층 DB

    • 데이터를 저장하고 유지하며 다른 클라이언트와 데이터를 공유합니다

    기존 C/S 아키텍처에서 애플리케이션(예: Windows의 클라이언트 애플리케이션)은 일반적으로 중앙 데이터베이스 서비스 서버입니다(DB), N명의 클라이언트(DAL-BLL-UI)에 대응합니다.

    주니어 테스터의 경우 소프트웨어에 대한 이해는 UI 계층에만 머물 수 있으므로 테스트 중에 수행할 수 있는 작업은 매일 반복하는 것입니다. 날이 갈수록 해마다 마우스로 조금씩 을 클릭하고 있어요.


    3 인터넷 소프트웨어 아키텍처

    “C/S”에 있지만 앞부분에서 언급한 응용 소프트웨어의 기본 아키텍처 시대에 제안되었지만 오늘날까지 계속되고 있습니다. 현재까지 가장 일반적인 "ABC/S" 모드:

    • 앱/서버

    • 브라우저/서버

    • 클라이언트/서버

    실제로 기본적으로 UI 레이어는 클라이언트 측에 배치되고, 아래의 UI 레이어는 서버 측에 배치됩니다.

    클라이언트는 서로 다른 플랫폼에서 서로 다른 표현 형태를 가지며, 현재 인기 있는 소위 "ABC/S" 모델 아키텍처를 형성하며 기본적으로 현재 인터넷 제품이 표준이 됩니다. 구체적인 아키텍처는 다음과 같습니다.

    서버와 클라이언트 간에 통신 프로토콜은 Http/Https를 사용합니다. Xml/Json 형식입니다.

    위 모델을 기반으로 소프트웨어 테스트 방법론이 일부 변경되었습니다.

    • 비용 효율성 통신 인코딩 형식" "인터페이스 테스트"는 20%가 작업의 80%를 해결할 수 있다는 의미

    • 인터페이스 테스트는 완전히 자동화될 수 있으며 강제할 필요가 없습니다. 개발 프로젝트와 동일한 인터페이스를 사용하려면 보다 효율적인 스크립팅 언어

    • 인터페이스를 사용하면 당연히 안정성이 필요합니다. 자동화된 테스트 프로젝트에서 반복되는 작업 없음

    • 인터페이스 테스터는 다양한 플랫폼 간의 심판자

    • 인터페이스 사양은 설계에서 나옵니다. 문서화되고 구현 가능 설계는 테스트를 생성하고 테스트는 추진 개발 표준 모델

    데이터로 추상화하는 기능을 사용하면 눈에 보이는 많은 것을 합리적인 등가물로 변환할 수 있습니다.


    • 웹 페이지의 배경은 빨간색입니다

    • 는 다음과 같습니다. 배경 요소의 배경속성의 색상 #FF0000


    • 입니다. 버튼에 표시된 것은 "Submit"

    • 입니다. 이는 다음과 같습니다. 버튼 요소의 값은 Submit


  • 데이터 수준에서 비교가 쉬워진다

    프로그래밍. 컴퓨터가 처리를 잘하는 분야이고, 자동화가 잘되는 분야이기 때문이다. 자연스럽게 구현되었습니다.


    4 하위 원리

    소프트웨어 프로젝트에서 보이는 특정 인터페이스부터 하위 계층까지 추상화하는 방법에 대해 이야기했습니다. 실제로, 더 낮은 수준의 더 절대적인 데이터도 있습니다. 소프트웨어 데이터는 더 낮은 수준의 물리적 세계와 관련될 수 있습니다. 이는 더 이상 "추상적"이거나 "구체적"이라고 설명하기가 쉽지 않습니다.

    이 부분의 내용은 응용소프트웨어 테스팅과는 좀 거리가 있는 내용입니다. 그냥 대중과학으로만 다루겠습니다.

    컴퓨터 시스템을 더 넓은 관점에서 보면 그것이 사람에게 주는 경험은 본질적으로 다음과 같이 처리됩니다.

    사람에 관한 모든 것 직관적인 경험은 다음과 같습니다. 아날로그량(물리량)의 경험과 인간의 상호작용적 입력 역시 아날로그량의 입력에서 비롯됩니다.

    사람들은 키보드를 두드려 컴퓨터 시스템에 텍스트를 입력합니다. 키보드는 다양한 키 위치에서 생성된 펄스 전류를 컴퓨터 시스템으로 전송하고, 컴퓨터 시스템은 이러한 전류 신호를 칩과 드라이버를 통해 디지털 신호로 변환합니다. 칩 처리를 제공합니다. 이로써

    정보 입력이 완료됩니다.

    컴퓨터 시스템은 이러한 데이터를 계산, 저장, 전송하고 마지막으로 LCD 디스플레이의 여러 위치에서 도트 매트릭스를 켜서 광학 아날로그 출력을 형성하며 이는 인간의 눈으로 전송됩니다.

    정보 획득을 완료합니다.

    위의 예는 다음과 같이 단순화할 수 있습니다. 기계적 물리량은 입력을 위한 전기적 물리량을 생성하고, 컴퓨터 디지털 시스템으로 처리한 후 광학 물리량이 출력됩니다.

    컴퓨터 시스템의 경우 입력과 출력이 모두 다양합니다.


      • 입력장치

      • 현재 붐을 이루고 있는 스마트 하드웨어와 요즘 핫이슈인

        사물인터넷 등 다양한 센서를 메인 입력으로 사용할 수 있습니다.


      • 출력장치

      • 광학 LCD 디스플레이 외에도 음향 확성기, 롤링 휠 메커니즘, 인간형 보행 로봇 팔 메커니즘도 있습니다.

    이런 것들은 이미 지금 인터넷 업계에서는 매우 인기 있는 요소입니다.

    전자 기술 및 통신 분야는 육안으로 정량화하기 어려운 물리량을 감지하는 경우가 많기 때문에 테스트 임계값이 매우 높을 것입니다. 그러나 다양한 테스트 장비가 상당히 발전했으며 그 정도는 매우 높습니다. 자동화율이 꽤 높네요. 반면, IT 산업의 상위 응용 소프트웨어 계층에서는 사람들이 수동 작업과 육안 관찰에 너무 많이 의존하고 자동화를 무시하므로 테스트 산업은 항상 인력 품질이 낮고 기술력이 약합니다. 이는 분명히 매우 심각한 일이며 바람직하지 않습니다. 적어도 현재 소프트웨어 엔지니어링 산업의 요구 사항과 매우 일치하지 않습니다.


    5 요약

    이 글은 소프트웨어 자동화 테스트와 기본 원리를 설명하기 위해 애플리케이션 소프트웨어를 논리적으로 계층화한 글 중 일부입니다. 현재 인기 있는

    지능형 하드웨어와 관련된 전자 기술의 자동화 테스트에 대해서도 간략하게 논의하여 테스트를 자동화해 본 적이 없는 사람들에게 영감을 주기를 바랍니다.

    다음 기사 시리즈에서는 기술 수준에서 이러한 이론을 구현합니다.

    을 요약하자면, 이 업계에 진출하여 심도 있게 발전하고 싶은 분들을 위해 다음과 같은 결론과 제안을 드립니다.

    • 소프트웨어의 본질은 인터페이스가 아니라 데이터입니다

    • 소프트웨어의 본질을 이해하려면 컴퓨터 기반이 좋아야 합니다

    • 인터넷 산업에 종사하는 사람들은 리눅스에 익숙해지고, 소프트웨어가 데이터이다라는 세계관

    • 자동화를 위한 인터페이스 테스팅은 투자대비 수익률이 가장 높다(구글 엔지니어 입장에서)

    • 자동화 테스팅을 잘하려면 소프트웨어 개발 능력과 시스템 설계 능력을 갖추고

    이 글을 쓰면서 드디어

    "Amway"라고 잠시 Linux라고 말하겠습니다. MacOS와 Windows 시스템, Linux는 인터페이스 측면에서는 좋지 않지만 강력한 CLI 상호 작용을 제공하고 강력한 스크립팅을 지원하므로 자동화를 구현하는 데 매우 유용합니다.

    (미완, 계속...)

    앞으로도 Python 자동화

    도구와 프로그래밍 애플리케이션을 계속 작성하겠습니다.



    위 내용은 Python 자동화의 기본 기술 원리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.