programing

자동화된 빌드 환경에서 PL/SQL 사전 컴파일 및 코드 품질 검사?

telecom 2023. 6. 9. 21:45
반응형

자동화된 빌드 환경에서 PL/SQL 사전 컴파일 및 코드 품질 검사?

우리는 Hudson과 Maven을 사용하여 소프트웨어를 만듭니다.C#, java 및 last가 있지만 PL/SQL 소스(스프로치, 패키지, DDL, crud)가 있습니다.

C# 및 Java의 경우 단위 테스트 및 코드 분석을 수행하지만 실제로 대상 데이터베이스에 게시하기 전에는 PL/SQL 소스의 상태를 제대로 알지 못합니다.

요구 사항들

다음 우선 순위에서 테스트하지 않을 사항이 몇 가지 있습니다.

  1. 소스가 유효하므로 "컴파일 가능"합니까?
  2. 패키지의 경우 특정 데이터베이스와 관련하여 컴파일할 수 있습니까?
  3. 코드 품질:중복, 너무 복잡한 메서드 또는 정의된 규칙 집합에 대한 기타 위반과 같은 코드 결함이 있습니까?

또한.

  • 툴이 헤드 없이 실행되어야 합니다(명령줄, 개미, ...).
  • 우리는 부분 코드 기반에 대한 분석을 수행하고 싶습니다(단순한 소스만 해당).

도구들

우리는 약간의 조사를 통해 잠재적으로 도움이 될 수 있는 다음과 같은 도구를 발견했습니다.

  • 캐스트 애플리케이션 인텔리전스 플랫폼(AIP): "무엇이든"에 대한 정보를 파악하는 서버인 것 같습니다.읽을 수 있는 형식으로 내보낼 콘솔 버전을 찾을 수 없습니다.
  • Oracle용 Toad:Professional 버전에는 Xpert라는 것이 포함되어 있다고 합니다. 코드 기반에 대한 규칙 집합의 유효성을 검사합니다.
  • Sonar + PL/SQL 플러그인:Toad for Oracle을 사용하여 음파 탐지기의 코드 상태를 표시합니다.이것은 코드 베이스의 현재 상태를 탐색하기 위한 것입니다.
  • 시맨틱 디자인 DM Stoolkit:소스 코드 기반에 대한 상당히 일반적인 분석입니다.명령줄을 사용할 수 있습니까?
  • 시맨틱 디자인 클론 디텍터:클론을 검색합니다.하지만 명령행을 통해서도?
  • Fortify 소스 코드 분석기: 보안 문제에 초점을 맞춘 것 같습니다.하지만 그것은 확장 가능한 것일까요? 더...

지금까지 Toad for Oracle과 Sonar는 훌륭한 솔루션인 것 같습니다.하지만 우리가 여기서 무언가를 놓치고 있는 것은 아닐까요?

아이디어 있어요?다른 제품은?경험?

SO 관련 질문:

이 블로그는 필요한 프로세스를 설명하고 있다고 생각합니다.

http://www.theserverlabs.com/blog/ ?p=435

확인해 보시고 당신의 생각을 알려주시기 바랍니다.

우리의 접근 방식은 각 데이터베이스 개체(테이블, 뷰, 함수, 패키지, 스프록스 등)를 소스 제어 하에 두고 통합 서버(TeamCity, Hudson 등)가 소스에서 데이터베이스를 야간에 빌드하도록 하는 것입니다. 여기서 데이터베이스는 소스에서 삭제하고 스키마를 다시 만듭니다.user_errors시스템 테이블.이렇게 하면 다른 사용자가 빌드에 컴파일 오류를 발생시켰을 때 알 수 있습니다.

다음 단계는 명왕성과 같은 것을 사용하여 장치 테스트를 PL/SQL 코드에 추가하고 야간 빌드 작업에 추가하는 것입니다.여기에는 테스트 목적으로 데이터베이스를 "알려진 상태"로 전환할 수 있는 샘플 테스트 데이터 세트(소스 제어 하)가 포함되어 있습니다.

중 못했기 태스크,셸 및 입니다. 빈하고 사용합니다.DBMS_UTILITY.COMPILE_SCHEMA()어, 스키마를 컴파일하기 위해서요.소스 제어의 특정 제출물에 컴파일 실패 또는 테스트 실패와 같은 역추적 개체를 나중에 추가하고 "잘못된 메일"을 발행할 수 있습니다.

저는 다른 사람이 더 나은 접근 방식을 가지고 있는지 또는 저를 위해 이런 기능을 제공하는 기성품이 있는지 정말로 관심이 있습니다!

NAT의 DMS 소프트웨어 리엔지니어링 툴킷은 임의의 사용자 지정 가능한 도구의 기반입니다.임의의 소스 코드 품질 검사를 작성하는 데 사용할 수 있는 PL/SQL 프런트 엔드가 있습니다.예, 명령줄 버전이 있습니다.

DMS 기반의 다양한 PL/SQL COTS 도구를 사용하여 품질을 확인할 수 있습니다.

  • 포맷터 - 레이아웃을 정리합니다.부작용: 합법적인 PL/SQL 구문에 대한 정적 검사
  • 소스 코드 검색 엔진 - 인덱싱된 소스 코드 기반을 빠르게 검색할 수 있습니다.인덱스 설정의 부작용으로 Halstead 및 Cyclomatic 메트릭을 계산합니다.
  • CloneDR - 중복된 PL/SQL 코드를 찾아 보고합니다.
  • 테스트 범위 - 테스트(임의, 장치 또는 기능 테스트)에 의해 실행되지 않은 PL/SQL 코드의 일부를 확인합니다.

모든 명령행 버전이 있습니다.

언급URL : https://stackoverflow.com/questions/3014223/pl-sql-pre-compile-and-code-quality-checks-in-an-automated-build-environment

반응형