자동화된 빌드 환경에서 PL/SQL 사전 컴파일 및 코드 품질 검사?
우리는 Hudson과 Maven을 사용하여 소프트웨어를 만듭니다.C#, java 및 last가 있지만 PL/SQL 소스(스프로치, 패키지, DDL, crud)가 있습니다.
C# 및 Java의 경우 단위 테스트 및 코드 분석을 수행하지만 실제로 대상 데이터베이스에 게시하기 전에는 PL/SQL 소스의 상태를 제대로 알지 못합니다.
요구 사항들
다음 우선 순위에서 테스트하지 않을 사항이 몇 가지 있습니다.
- 소스가 유효하므로 "컴파일 가능"합니까?
- 패키지의 경우 특정 데이터베이스와 관련하여 컴파일할 수 있습니까?
- 코드 품질:중복, 너무 복잡한 메서드 또는 정의된 규칙 집합에 대한 기타 위반과 같은 코드 결함이 있습니까?
또한.
- 툴이 헤드 없이 실행되어야 합니다(명령줄, 개미, ...).
- 우리는 부분 코드 기반에 대한 분석을 수행하고 싶습니다(단순한 소스만 해당).
도구들
우리는 약간의 조사를 통해 잠재적으로 도움이 될 수 있는 다음과 같은 도구를 발견했습니다.
- 캐스트 애플리케이션 인텔리전스 플랫폼(AIP): "무엇이든"에 대한 정보를 파악하는 서버인 것 같습니다.읽을 수 있는 형식으로 내보낼 콘솔 버전을 찾을 수 없습니다.
- Oracle용 Toad:Professional 버전에는 Xpert라는 것이 포함되어 있다고 합니다. 코드 기반에 대한 규칙 집합의 유효성을 검사합니다.
- Sonar + PL/SQL 플러그인:Toad for Oracle을 사용하여 음파 탐지기의 코드 상태를 표시합니다.이것은 코드 베이스의 현재 상태를 탐색하기 위한 것입니다.
- 시맨틱 디자인 DM Stoolkit:소스 코드 기반에 대한 상당히 일반적인 분석입니다.명령줄을 사용할 수 있습니까?
- 시맨틱 디자인 클론 디텍터:클론을 검색합니다.하지만 명령행을 통해서도?
- Fortify 소스 코드 분석기: 보안 문제에 초점을 맞춘 것 같습니다.하지만 그것은 확장 가능한 것일까요? 더...
지금까지 Toad for Oracle과 Sonar는 훌륭한 솔루션인 것 같습니다.하지만 우리가 여기서 무언가를 놓치고 있는 것은 아닐까요?
아이디어 있어요?다른 제품은?경험?
SO 관련 질문:
- 저장 프로시저를 위한 정적 코드 분석 도구가 있습니까?
- https://stackoverflow.com/questions/839707/any-code-quality-tool-for-pl-sql
- 파이썬, 루비, SQL, 코볼, 펄, PL/SQL에 대한 정적 분석 도구가 있습니까?
이 블로그는 필요한 프로세스를 설명하고 있다고 생각합니다.
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
'programing' 카테고리의 다른 글
파이어베이스:이 도메인은 인증되지 않았습니다. (0) | 2023.06.09 |
---|---|
EPLUS를 사용한 식에 의한 조건부 포맷 (0) | 2023.06.09 |
피벗 테이블 열 필터링, 다음 경우에만 계산 (0) | 2023.06.09 |
리액트 네이티브 iOS 시뮬레이터에서 경고를 숨기는 방법은 무엇입니까? (0) | 2023.06.09 |
데카르트 제품을 할 수 있는 좋은 LINQ 방법이 있습니까? (0) | 2023.06.09 |