
Rewriteアクションによるアノテーションへのパラメータ追加
このブログ記事では、私たちは
- アノテーションの検索と照合のデモンストレーション
- ヒゲのテンプレートを使ったアノテーション
Sensei は、問題のあるコードパターンを照合して、合意した実装に修正する機能を提供します。この例では、@Disabled without a parameterを問題のあるコードパターンとして使用しています。
無効化テストのアノテーション
特定の理由なしにテストを無効にすると、無効にした理由を忘れてしまうため、長期的には問題となります。
@Disabled
void thisTestMethodHasNoDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
リスクとしては、時間の経過とともにコードベースが移動し、無効化されたテストがコードの目的に合わせて更新されず、最終的には冗長で無意味なものとなり、再び有効化されない可能性があることです。
コードレビューでは、アノテーションパラメータとして説明文を追加すると良いと指摘されることがあります。
@Disabled ("Disabled to demonstrate adding a reason")
void thisTestMethodHasDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
Sensei レシピ
説明なしに@Disabledが追加されたことを検知するレシピと、なぜ無効にしたのかを説明する実際の理由を追加するように思い出させるQuick Fixを書くことができます。
自分が何をしようかと考えたときに
- パラメータなしでDisabledアノテーションにマッチ
- TODO: add a description here "というマーカーテキストのパラメータを持つようにDisabledアノテーションを変更しました。
ワーニングレシピの作成
私はAlt+Enterで新しいレシピを作成しています。

そして、一般情報の中に基本的な説明文を追加します。

ルールを警告にすることで、一致するコードはハイライトされますが、明らかなエラーとしては表示されません。

アノテーションの検索
レシピエディターでは、「検索」をアノテーションに合わせて変更します。
これにより、プレビューに表示されているすべての注釈がハイライトされます。

そうすると、今度はアノテーションの種類でフィルタリングしたくなります。
Disabled を使うこともできますが、クラスをパッケージで完全に修飾することで、JUnit 5 のアノテーションにのみ合致するようにしています。プレビューではソースコードが表示されているので、実際のコードから簡単にコピー&ペーストして、タイプミスを防ぐことができます。
そして、Parametersのないアノテーションだけをマッチさせたいのですが、これはGUIでできます。

i.e.検索
search:
annotation:
type: "org.junit.jupiter.api.Disabled"
without:
parameters:
- {}
リライトクイックフィックスアクションの作成
今回のQuickFixでは、リライトアクションを使用します。
変数の表示機能を使って、Mustacheの変数を表示し、内容をプレビューしています。

そして、プレースマーカーのコメントを作成するために必要な追加のコードを追加します。

i.e. QuickFix。
availableFixes:
- name: "Add a todo comment parameter"
actions:
- rewrite:
to: "{{{ . }}}(\"TODO: add a description here\")"
target: "self"
Sensei 活動中
レシピ作成の様子を短い動画でご紹介します。
概要
書き換えクイックフィックスを構築する際には、書き換えたいコード要素を検索できれば、それが行動できる自己の実体となるため、より簡単になります。
この例では、リライトアクションを使ってアノテーションを修正しました。Rewriteは、どんなコード要素にも適用できる汎用的なアクションであり、デフォルトで使用するのに適しています。
アラン・リチャードソンは、20年以上にわたり、開発者として、またテスターからテスト責任者まで、あらゆるレベルのテストに携わってきたプロフェッショナルなIT経験を持っています。アラン・リチャードソンは、Secure Code Warrior のデベロッパーリレーションズの責任者として、チームと直接連携し、高品質で安全なコードの開発を促進しています。また、「Dear Evil Tester」や「Java For Testers」など4冊の著書があります。また、テクニカルWebテストやSelenium WebDriver with Javaを学ぶためのオンライントレーニングcourses を作成しています。アランは、SeleniumSimplified.com、EvilTester.com、JavaForTesters.com、CompendiumDev.co.ukに執筆やトレーニングビデオを掲載している。

Secure Code Warrior は、ソフトウェア開発ライフサイクル全体にわたってコードを保護し、サイバーセキュリティを最優先とする企業文化を創造するために、お客様の組織を支援します。AppSec マネージャー、開発者、CISO、またはセキュリティに関わるすべての人が、安全でないコードに関連するリスクを減らすことができるよう、支援します。
デモを予約するアラン・リチャードソンは、20年以上にわたり、開発者として、またテスターからテスト責任者まで、あらゆるレベルのテストに携わってきたプロフェッショナルなIT経験を持っています。アラン・リチャードソンは、Secure Code Warrior のデベロッパーリレーションズの責任者として、チームと直接連携し、高品質で安全なコードの開発を促進しています。また、「Dear Evil Tester」や「Java For Testers」など4冊の著書があります。また、テクニカルWebテストやSelenium WebDriver with Javaを学ぶためのオンライントレーニングcourses を作成しています。アランは、SeleniumSimplified.com、EvilTester.com、JavaForTesters.com、CompendiumDev.co.ukに執筆やトレーニングビデオを掲載している。

このブログ記事では、私たちは
- アノテーションの検索と照合のデモンストレーション
- ヒゲのテンプレートを使ったアノテーション
Sensei は、問題のあるコードパターンを照合して、合意した実装に修正する機能を提供します。この例では、@Disabled without a parameterを問題のあるコードパターンとして使用しています。
無効化テストのアノテーション
特定の理由なしにテストを無効にすると、無効にした理由を忘れてしまうため、長期的には問題となります。
@Disabled
void thisTestMethodHasNoDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
リスクとしては、時間の経過とともにコードベースが移動し、無効化されたテストがコードの目的に合わせて更新されず、最終的には冗長で無意味なものとなり、再び有効化されない可能性があることです。
コードレビューでは、アノテーションパラメータとして説明文を追加すると良いと指摘されることがあります。
@Disabled ("Disabled to demonstrate adding a reason")
void thisTestMethodHasDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
Sensei レシピ
説明なしに@Disabledが追加されたことを検知するレシピと、なぜ無効にしたのかを説明する実際の理由を追加するように思い出させるQuick Fixを書くことができます。
自分が何をしようかと考えたときに
- パラメータなしでDisabledアノテーションにマッチ
- TODO: add a description here "というマーカーテキストのパラメータを持つようにDisabledアノテーションを変更しました。
ワーニングレシピの作成
私はAlt+Enterで新しいレシピを作成しています。

そして、一般情報の中に基本的な説明文を追加します。

ルールを警告にすることで、一致するコードはハイライトされますが、明らかなエラーとしては表示されません。

アノテーションの検索
レシピエディターでは、「検索」をアノテーションに合わせて変更します。
これにより、プレビューに表示されているすべての注釈がハイライトされます。

そうすると、今度はアノテーションの種類でフィルタリングしたくなります。
Disabled を使うこともできますが、クラスをパッケージで完全に修飾することで、JUnit 5 のアノテーションにのみ合致するようにしています。プレビューではソースコードが表示されているので、実際のコードから簡単にコピー&ペーストして、タイプミスを防ぐことができます。
そして、Parametersのないアノテーションだけをマッチさせたいのですが、これはGUIでできます。

i.e.検索
search:
annotation:
type: "org.junit.jupiter.api.Disabled"
without:
parameters:
- {}
リライトクイックフィックスアクションの作成
今回のQuickFixでは、リライトアクションを使用します。
変数の表示機能を使って、Mustacheの変数を表示し、内容をプレビューしています。

そして、プレースマーカーのコメントを作成するために必要な追加のコードを追加します。

i.e. QuickFix。
availableFixes:
- name: "Add a todo comment parameter"
actions:
- rewrite:
to: "{{{ . }}}(\"TODO: add a description here\")"
target: "self"
Sensei 活動中
レシピ作成の様子を短い動画でご紹介します。
概要
書き換えクイックフィックスを構築する際には、書き換えたいコード要素を検索できれば、それが行動できる自己の実体となるため、より簡単になります。
この例では、リライトアクションを使ってアノテーションを修正しました。Rewriteは、どんなコード要素にも適用できる汎用的なアクションであり、デフォルトで使用するのに適しています。
このブログ記事では、私たちは
- アノテーションの検索と照合のデモンストレーション
- ヒゲのテンプレートを使ったアノテーション
Sensei は、問題のあるコードパターンを照合して、合意した実装に修正する機能を提供します。この例では、@Disabled without a parameterを問題のあるコードパターンとして使用しています。
無効化テストのアノテーション
特定の理由なしにテストを無効にすると、無効にした理由を忘れてしまうため、長期的には問題となります。
@Disabled
void thisTestMethodHasNoDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
リスクとしては、時間の経過とともにコードベースが移動し、無効化されたテストがコードの目的に合わせて更新されず、最終的には冗長で無意味なものとなり、再び有効化されない可能性があることです。
コードレビューでは、アノテーションパラメータとして説明文を追加すると良いと指摘されることがあります。
@Disabled ("Disabled to demonstrate adding a reason")
void thisTestMethodHasDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
Sensei レシピ
説明なしに@Disabledが追加されたことを検知するレシピと、なぜ無効にしたのかを説明する実際の理由を追加するように思い出させるQuick Fixを書くことができます。
自分が何をしようかと考えたときに
- パラメータなしでDisabledアノテーションにマッチ
- TODO: add a description here "というマーカーテキストのパラメータを持つようにDisabledアノテーションを変更しました。
ワーニングレシピの作成
私はAlt+Enterで新しいレシピを作成しています。

そして、一般情報の中に基本的な説明文を追加します。

ルールを警告にすることで、一致するコードはハイライトされますが、明らかなエラーとしては表示されません。

アノテーションの検索
レシピエディターでは、「検索」をアノテーションに合わせて変更します。
これにより、プレビューに表示されているすべての注釈がハイライトされます。

そうすると、今度はアノテーションの種類でフィルタリングしたくなります。
Disabled を使うこともできますが、クラスをパッケージで完全に修飾することで、JUnit 5 のアノテーションにのみ合致するようにしています。プレビューではソースコードが表示されているので、実際のコードから簡単にコピー&ペーストして、タイプミスを防ぐことができます。
そして、Parametersのないアノテーションだけをマッチさせたいのですが、これはGUIでできます。

i.e.検索
search:
annotation:
type: "org.junit.jupiter.api.Disabled"
without:
parameters:
- {}
リライトクイックフィックスアクションの作成
今回のQuickFixでは、リライトアクションを使用します。
変数の表示機能を使って、Mustacheの変数を表示し、内容をプレビューしています。

そして、プレースマーカーのコメントを作成するために必要な追加のコードを追加します。

i.e. QuickFix。
availableFixes:
- name: "Add a todo comment parameter"
actions:
- rewrite:
to: "{{{ . }}}(\"TODO: add a description here\")"
target: "self"
Sensei 活動中
レシピ作成の様子を短い動画でご紹介します。
概要
書き換えクイックフィックスを構築する際には、書き換えたいコード要素を検索できれば、それが行動できる自己の実体となるため、より簡単になります。
この例では、リライトアクションを使ってアノテーションを修正しました。Rewriteは、どんなコード要素にも適用できる汎用的なアクションであり、デフォルトで使用するのに適しています。

以下のリンクをクリックし、この資料のPDFをダウンロードしてください。
Secure Code Warrior は、ソフトウェア開発ライフサイクル全体にわたってコードを保護し、サイバーセキュリティを最優先とする企業文化を創造するために、お客様の組織を支援します。AppSec マネージャー、開発者、CISO、またはセキュリティに関わるすべての人が、安全でないコードに関連するリスクを減らすことができるよう、支援します。
レポートを見るデモを予約するアラン・リチャードソンは、20年以上にわたり、開発者として、またテスターからテスト責任者まで、あらゆるレベルのテストに携わってきたプロフェッショナルなIT経験を持っています。アラン・リチャードソンは、Secure Code Warrior のデベロッパーリレーションズの責任者として、チームと直接連携し、高品質で安全なコードの開発を促進しています。また、「Dear Evil Tester」や「Java For Testers」など4冊の著書があります。また、テクニカルWebテストやSelenium WebDriver with Javaを学ぶためのオンライントレーニングcourses を作成しています。アランは、SeleniumSimplified.com、EvilTester.com、JavaForTesters.com、CompendiumDev.co.ukに執筆やトレーニングビデオを掲載している。
このブログ記事では、私たちは
- アノテーションの検索と照合のデモンストレーション
- ヒゲのテンプレートを使ったアノテーション
Sensei は、問題のあるコードパターンを照合して、合意した実装に修正する機能を提供します。この例では、@Disabled without a parameterを問題のあるコードパターンとして使用しています。
無効化テストのアノテーション
特定の理由なしにテストを無効にすると、無効にした理由を忘れてしまうため、長期的には問題となります。
@Disabled
void thisTestMethodHasNoDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
リスクとしては、時間の経過とともにコードベースが移動し、無効化されたテストがコードの目的に合わせて更新されず、最終的には冗長で無意味なものとなり、再び有効化されない可能性があることです。
コードレビューでは、アノテーションパラメータとして説明文を追加すると良いと指摘されることがあります。
@Disabled ("Disabled to demonstrate adding a reason")
void thisTestMethodHasDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
Sensei レシピ
説明なしに@Disabledが追加されたことを検知するレシピと、なぜ無効にしたのかを説明する実際の理由を追加するように思い出させるQuick Fixを書くことができます。
自分が何をしようかと考えたときに
- パラメータなしでDisabledアノテーションにマッチ
- TODO: add a description here "というマーカーテキストのパラメータを持つようにDisabledアノテーションを変更しました。
ワーニングレシピの作成
私はAlt+Enterで新しいレシピを作成しています。

そして、一般情報の中に基本的な説明文を追加します。

ルールを警告にすることで、一致するコードはハイライトされますが、明らかなエラーとしては表示されません。

アノテーションの検索
レシピエディターでは、「検索」をアノテーションに合わせて変更します。
これにより、プレビューに表示されているすべての注釈がハイライトされます。

そうすると、今度はアノテーションの種類でフィルタリングしたくなります。
Disabled を使うこともできますが、クラスをパッケージで完全に修飾することで、JUnit 5 のアノテーションにのみ合致するようにしています。プレビューではソースコードが表示されているので、実際のコードから簡単にコピー&ペーストして、タイプミスを防ぐことができます。
そして、Parametersのないアノテーションだけをマッチさせたいのですが、これはGUIでできます。

i.e.検索
search:
annotation:
type: "org.junit.jupiter.api.Disabled"
without:
parameters:
- {}
リライトクイックフィックスアクションの作成
今回のQuickFixでは、リライトアクションを使用します。
変数の表示機能を使って、Mustacheの変数を表示し、内容をプレビューしています。

そして、プレースマーカーのコメントを作成するために必要な追加のコードを追加します。

i.e. QuickFix。
availableFixes:
- name: "Add a todo comment parameter"
actions:
- rewrite:
to: "{{{ . }}}(\"TODO: add a description here\")"
target: "self"
Sensei 活動中
レシピ作成の様子を短い動画でご紹介します。
概要
書き換えクイックフィックスを構築する際には、書き換えたいコード要素を検索できれば、それが行動できる自己の実体となるため、より簡単になります。
この例では、リライトアクションを使ってアノテーションを修正しました。Rewriteは、どんなコード要素にも適用できる汎用的なアクションであり、デフォルトで使用するのに適しています。
目次
アラン・リチャードソンは、20年以上にわたり、開発者として、またテスターからテスト責任者まで、あらゆるレベルのテストに携わってきたプロフェッショナルなIT経験を持っています。アラン・リチャードソンは、Secure Code Warrior のデベロッパーリレーションズの責任者として、チームと直接連携し、高品質で安全なコードの開発を促進しています。また、「Dear Evil Tester」や「Java For Testers」など4冊の著書があります。また、テクニカルWebテストやSelenium WebDriver with Javaを学ぶためのオンライントレーニングcourses を作成しています。アランは、SeleniumSimplified.com、EvilTester.com、JavaForTesters.com、CompendiumDev.co.ukに執筆やトレーニングビデオを掲載している。

Secure Code Warrior は、ソフトウェア開発ライフサイクル全体にわたってコードを保護し、サイバーセキュリティを最優先とする企業文化を創造するために、お客様の組織を支援します。AppSec マネージャー、開発者、CISO、またはセキュリティに関わるすべての人が、安全でないコードに関連するリスクを減らすことができるよう、支援します。
デモを予約するダウンロード始めるためのリソース
Trust Agent:AI - Secure and scale AI-Drive development
AI is writing code. Who’s governing it? With up to 50% of AI-generated code containing security weaknesses, managing AI risk is critical. Discover how SCW's Trust Agent: AI provides the real-time visibility, proactive governance, and targeted upskilling needed to scale AI-driven development securely.
OpenText アプリケーションセキュリティのパワー + Secure Code Warrior
OpenText Application Security and Secure Code Warrior combine vulnerability detection with AI Software Governance and developer capability. Together, they help organizations reduce risk, strengthen secure coding practices, and confidently adopt AI-driven development.
Secure Code Warrior corporate overview
Secure Code Warrior is an AI Software Governance platform designed to enable organizations to safely adopt AI-driven development by bridging the gap between development velocity and enterprise security. The platform addresses the "Visibility Gap," where security teams often lack insights into shadow AI coding tools and the origins of production code.
セキュアコード・トレーニングのトピックと内容
Our industry-leading content is always evolving to fit the ever changing software development landscape with your role in mind. Topics covering everything from AI to XQuery Injection, offered for a variety of roles from Architects and Engineers to Product Managers and QA. Get a sneak peek of what our content catalog has to offer by topic and role.
始めるためのリソース
Observe and Secure the ADLC: A Four-Point Framework for CISOs and Development Teams Using AI
While development teams look to make the most of GenAI’s undeniable benefits, we’d like to propose a four-point foundational framework that will allow security leaders to deploy AI coding tools and agents with a higher, more relevant standard of security best practices. It details exactly what enterprises can do to ensure safe, secure code development right now, and as agentic AI becomes an even bigger factor in the future.





.png)
