ドキュメントリンクの使用Sensei
新しいライブラリを学んだり、チーム内で合意されたプラクティスを共有する際に難しいのは、文書化してサンプルを作成することです。
小さなサンプルプロジェクトを作ることはよくありますが、実際のコードを扱うときにはそれらを開かないようにしています。
私たちの例やオンラインの例にリンクして、必要なときにURLにアクセスしてより詳しい説明を受けられるような機能があればいいなとよく思っていました。
Javaでは、JavaDocコメントがあり、これにはSeeアノテーションを付けることができます。
/**
* @see <a href="https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations">Junit 5 Annotation docs</a>
*/
サードパーティのライブラリにあるこのようなJavaDocは、IntelliJのQuick Documentation機能を使ってより詳細な例にアクセスすることができるので、とても助かります。

しかし、コメントはコードのように頻繁に更新されるものではありませんし、ウェブプレゼンスのメンテナンスは、ライブラリのメンテナンスとは切り離されていることが多く、場合によっては全く別のチームが行っていることもあります。
Sensei の支援方法
Sensei は、ライブラリの注釈やメソッドにマッチする機能を提供し、ウィキやサードパーティのチュートリアルサイトにある長文のドキュメントへのリンクを提供します。
例として、JUnitの@Testアノテーションを使用しています。
JavaDocは非常に詳細で、Quick Documentationビューではアノテーションの使用方法を説明しています。
しかし、Webサイトに掲載されている公式ドキュメントの方が読みやすく、より多くの例が掲載されていることが多いです。
チームがライブラリの学習を始める際に、推奨されるチュートリアルのセットがあると非常に便利です。
Sensei には、URLを開くために使用できるgotoアクションがあり、外部サイトへのリンクや、チームとして有用と思われるドキュメントの例を示すことができるようになっています。
Goto URLの実装
これを実装するには、Junitの@Testアノテーションにマッチする検索を作成します。
search:
annotation:
owner:
method: {}
type: "org.junit.jupiter.api.Test"
そして、便利だと思ったURLごとにゴートアクションを追加していく。
e.g.
- https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations
- https://junit.org/junit5/docs/current/user-guide/#writing-tests-classes-and-methods
以下の例では、1つのAction JUnit Annotations(learn )を作成し、2つのURLを同時にブラウザで開きます。
availableFixes:
- name: "Learn about JUnit Annotations"
actions:
- goto:
type:"URL"
value:"https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations"=
- goto:
type:"URL"
value:"https://junit.org/junit5/docs/current/user-guide/#writing-tests-classes-and-methods"
また、IntelliJでAlt+Enter で起動すると、コンテキストメニューが表示され、それを選択するとドキュメントにジャンプすることができます。

マルチプルアクション
複数のアクションを用意して、URLやチュートリアルごとに、 alt+enterで表示されるクイックフィックスのポップアップメニューに、それぞれのオプションを持たせることもできます。
例えば、@Parameterized アノテーションについては、公式ドキュメントやオンラインのサンプルコードのセットにリンクしたい場合があります。
- https://junit.org/junit5/docs/current/user-guide/#writing-tests-parameterized-tests
- https://github.com/eviltester/junitexamples/blob/master/src/test/java/parameterized/junit5/InitialExampleTest.java
私は単純に、アノテーションを検索するレシピを作ります。
search:
annotation:
owner:
method: {}
type: "org.junit.jupiter.params.ParameterizedTest"
そして、私が有用だと判断したサイトにはリンクを貼っています。
availableFixes:
- name: "JUnit Annotations (learn)"
actions:
- goto:
type:"URL"
value:"https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations"
- name: "What is a JUnit Test?(learn)"
アクション:
- goto:
type:"URL"
value:"https://junit.org/junit5/docs/current/user-guide/#writing-tests-classes-and-methods"
すると、両方のリンクがポップアップダイアログに表示されます。

誰が得をするのか?
ライブラリを使用したり学んだりする際、特にチームを率いて新しいライブラリの導入を支援する際に役立つと思いました。
これは、ライブラリを作成するチームにもメリットがあり、ライブラリの採用やライブラリの新機能を案内するための標準的なドキュメント・レシピのセットを作成することができます。
これは、コードのメンテナンスとドキュメントのメンテナンスが異なるチームで行われている場合に特に有効です。
Sensei は IntelliJ の中で `preferences > plugins` を使ってインストールすることができます (単に "sensei secure code" で検索してください)。
このブログ記事のコードはすべてGithubのjunitexamplesモジュールにあります。 https://github.com/SecureCodeWarrior/sensei-blog-examples
アラン・リチャードソンは、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に執筆やトレーニングビデオを掲載している。


新しいライブラリを学んだり、チーム内で合意されたプラクティスを共有する際に難しいのは、文書化してサンプルを作成することです。
小さなサンプルプロジェクトを作ることはよくありますが、実際のコードを扱うときにはそれらを開かないようにしています。
私たちの例やオンラインの例にリンクして、必要なときにURLにアクセスしてより詳しい説明を受けられるような機能があればいいなとよく思っていました。
Javaでは、JavaDocコメントがあり、これにはSeeアノテーションを付けることができます。
/**
* @see <a href="https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations">Junit 5 Annotation docs</a>
*/
サードパーティのライブラリにあるこのようなJavaDocは、IntelliJのQuick Documentation機能を使ってより詳細な例にアクセスすることができるので、とても助かります。

しかし、コメントはコードのように頻繁に更新されるものではありませんし、ウェブプレゼンスのメンテナンスは、ライブラリのメンテナンスとは切り離されていることが多く、場合によっては全く別のチームが行っていることもあります。
Sensei の支援方法
Sensei は、ライブラリの注釈やメソッドにマッチする機能を提供し、ウィキやサードパーティのチュートリアルサイトにある長文のドキュメントへのリンクを提供します。
例として、JUnitの@Testアノテーションを使用しています。
JavaDocは非常に詳細で、Quick Documentationビューではアノテーションの使用方法を説明しています。
しかし、Webサイトに掲載されている公式ドキュメントの方が読みやすく、より多くの例が掲載されていることが多いです。
チームがライブラリの学習を始める際に、推奨されるチュートリアルのセットがあると非常に便利です。
Sensei には、URLを開くために使用できるgotoアクションがあり、外部サイトへのリンクや、チームとして有用と思われるドキュメントの例を示すことができるようになっています。
Goto URLの実装
これを実装するには、Junitの@Testアノテーションにマッチする検索を作成します。
search:
annotation:
owner:
method: {}
type: "org.junit.jupiter.api.Test"
そして、便利だと思ったURLごとにゴートアクションを追加していく。
e.g.
- https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations
- https://junit.org/junit5/docs/current/user-guide/#writing-tests-classes-and-methods
以下の例では、1つのAction JUnit Annotations(learn )を作成し、2つのURLを同時にブラウザで開きます。
availableFixes:
- name: "Learn about JUnit Annotations"
actions:
- goto:
type:"URL"
value:"https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations"=
- goto:
type:"URL"
value:"https://junit.org/junit5/docs/current/user-guide/#writing-tests-classes-and-methods"
また、IntelliJでAlt+Enter で起動すると、コンテキストメニューが表示され、それを選択するとドキュメントにジャンプすることができます。

マルチプルアクション
複数のアクションを用意して、URLやチュートリアルごとに、 alt+enterで表示されるクイックフィックスのポップアップメニューに、それぞれのオプションを持たせることもできます。
例えば、@Parameterized アノテーションについては、公式ドキュメントやオンラインのサンプルコードのセットにリンクしたい場合があります。
- https://junit.org/junit5/docs/current/user-guide/#writing-tests-parameterized-tests
- https://github.com/eviltester/junitexamples/blob/master/src/test/java/parameterized/junit5/InitialExampleTest.java
私は単純に、アノテーションを検索するレシピを作ります。
search:
annotation:
owner:
method: {}
type: "org.junit.jupiter.params.ParameterizedTest"
そして、私が有用だと判断したサイトにはリンクを貼っています。
availableFixes:
- name: "JUnit Annotations (learn)"
actions:
- goto:
type:"URL"
value:"https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations"
- name: "What is a JUnit Test?(learn)"
アクション:
- goto:
type:"URL"
value:"https://junit.org/junit5/docs/current/user-guide/#writing-tests-classes-and-methods"
すると、両方のリンクがポップアップダイアログに表示されます。

誰が得をするのか?
ライブラリを使用したり学んだりする際、特にチームを率いて新しいライブラリの導入を支援する際に役立つと思いました。
これは、ライブラリを作成するチームにもメリットがあり、ライブラリの採用やライブラリの新機能を案内するための標準的なドキュメント・レシピのセットを作成することができます。
これは、コードのメンテナンスとドキュメントのメンテナンスが異なるチームで行われている場合に特に有効です。
Sensei は IntelliJ の中で `preferences > plugins` を使ってインストールすることができます (単に "sensei secure code" で検索してください)。
このブログ記事のコードはすべてGithubのjunitexamplesモジュールにあります。 https://github.com/SecureCodeWarrior/sensei-blog-examples

新しいライブラリを学んだり、チーム内で合意されたプラクティスを共有する際に難しいのは、文書化してサンプルを作成することです。
小さなサンプルプロジェクトを作ることはよくありますが、実際のコードを扱うときにはそれらを開かないようにしています。
私たちの例やオンラインの例にリンクして、必要なときにURLにアクセスしてより詳しい説明を受けられるような機能があればいいなとよく思っていました。
Javaでは、JavaDocコメントがあり、これにはSeeアノテーションを付けることができます。
/**
* @see <a href="https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations">Junit 5 Annotation docs</a>
*/
サードパーティのライブラリにあるこのようなJavaDocは、IntelliJのQuick Documentation機能を使ってより詳細な例にアクセスすることができるので、とても助かります。

しかし、コメントはコードのように頻繁に更新されるものではありませんし、ウェブプレゼンスのメンテナンスは、ライブラリのメンテナンスとは切り離されていることが多く、場合によっては全く別のチームが行っていることもあります。
Sensei の支援方法
Sensei は、ライブラリの注釈やメソッドにマッチする機能を提供し、ウィキやサードパーティのチュートリアルサイトにある長文のドキュメントへのリンクを提供します。
例として、JUnitの@Testアノテーションを使用しています。
JavaDocは非常に詳細で、Quick Documentationビューではアノテーションの使用方法を説明しています。
しかし、Webサイトに掲載されている公式ドキュメントの方が読みやすく、より多くの例が掲載されていることが多いです。
チームがライブラリの学習を始める際に、推奨されるチュートリアルのセットがあると非常に便利です。
Sensei には、URLを開くために使用できるgotoアクションがあり、外部サイトへのリンクや、チームとして有用と思われるドキュメントの例を示すことができるようになっています。
Goto URLの実装
これを実装するには、Junitの@Testアノテーションにマッチする検索を作成します。
search:
annotation:
owner:
method: {}
type: "org.junit.jupiter.api.Test"
そして、便利だと思ったURLごとにゴートアクションを追加していく。
e.g.
- https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations
- https://junit.org/junit5/docs/current/user-guide/#writing-tests-classes-and-methods
以下の例では、1つのAction JUnit Annotations(learn )を作成し、2つのURLを同時にブラウザで開きます。
availableFixes:
- name: "Learn about JUnit Annotations"
actions:
- goto:
type:"URL"
value:"https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations"=
- goto:
type:"URL"
value:"https://junit.org/junit5/docs/current/user-guide/#writing-tests-classes-and-methods"
また、IntelliJでAlt+Enter で起動すると、コンテキストメニューが表示され、それを選択するとドキュメントにジャンプすることができます。

マルチプルアクション
複数のアクションを用意して、URLやチュートリアルごとに、 alt+enterで表示されるクイックフィックスのポップアップメニューに、それぞれのオプションを持たせることもできます。
例えば、@Parameterized アノテーションについては、公式ドキュメントやオンラインのサンプルコードのセットにリンクしたい場合があります。
- https://junit.org/junit5/docs/current/user-guide/#writing-tests-parameterized-tests
- https://github.com/eviltester/junitexamples/blob/master/src/test/java/parameterized/junit5/InitialExampleTest.java
私は単純に、アノテーションを検索するレシピを作ります。
search:
annotation:
owner:
method: {}
type: "org.junit.jupiter.params.ParameterizedTest"
そして、私が有用だと判断したサイトにはリンクを貼っています。
availableFixes:
- name: "JUnit Annotations (learn)"
actions:
- goto:
type:"URL"
value:"https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations"
- name: "What is a JUnit Test?(learn)"
アクション:
- goto:
type:"URL"
value:"https://junit.org/junit5/docs/current/user-guide/#writing-tests-classes-and-methods"
すると、両方のリンクがポップアップダイアログに表示されます。

誰が得をするのか?
ライブラリを使用したり学んだりする際、特にチームを率いて新しいライブラリの導入を支援する際に役立つと思いました。
これは、ライブラリを作成するチームにもメリットがあり、ライブラリの採用やライブラリの新機能を案内するための標準的なドキュメント・レシピのセットを作成することができます。
これは、コードのメンテナンスとドキュメントのメンテナンスが異なるチームで行われている場合に特に有効です。
Sensei は IntelliJ の中で `preferences > plugins` を使ってインストールすることができます (単に "sensei secure code" で検索してください)。
このブログ記事のコードはすべてGithubのjunitexamplesモジュールにあります。 https://github.com/SecureCodeWarrior/sensei-blog-examples

以下のリンクをクリックし、この資料の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に執筆やトレーニングビデオを掲載している。
新しいライブラリを学んだり、チーム内で合意されたプラクティスを共有する際に難しいのは、文書化してサンプルを作成することです。
小さなサンプルプロジェクトを作ることはよくありますが、実際のコードを扱うときにはそれらを開かないようにしています。
私たちの例やオンラインの例にリンクして、必要なときにURLにアクセスしてより詳しい説明を受けられるような機能があればいいなとよく思っていました。
Javaでは、JavaDocコメントがあり、これにはSeeアノテーションを付けることができます。
/**
* @see <a href="https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations">Junit 5 Annotation docs</a>
*/
サードパーティのライブラリにあるこのようなJavaDocは、IntelliJのQuick Documentation機能を使ってより詳細な例にアクセスすることができるので、とても助かります。

しかし、コメントはコードのように頻繁に更新されるものではありませんし、ウェブプレゼンスのメンテナンスは、ライブラリのメンテナンスとは切り離されていることが多く、場合によっては全く別のチームが行っていることもあります。
Sensei の支援方法
Sensei は、ライブラリの注釈やメソッドにマッチする機能を提供し、ウィキやサードパーティのチュートリアルサイトにある長文のドキュメントへのリンクを提供します。
例として、JUnitの@Testアノテーションを使用しています。
JavaDocは非常に詳細で、Quick Documentationビューではアノテーションの使用方法を説明しています。
しかし、Webサイトに掲載されている公式ドキュメントの方が読みやすく、より多くの例が掲載されていることが多いです。
チームがライブラリの学習を始める際に、推奨されるチュートリアルのセットがあると非常に便利です。
Sensei には、URLを開くために使用できるgotoアクションがあり、外部サイトへのリンクや、チームとして有用と思われるドキュメントの例を示すことができるようになっています。
Goto URLの実装
これを実装するには、Junitの@Testアノテーションにマッチする検索を作成します。
search:
annotation:
owner:
method: {}
type: "org.junit.jupiter.api.Test"
そして、便利だと思ったURLごとにゴートアクションを追加していく。
e.g.
- https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations
- https://junit.org/junit5/docs/current/user-guide/#writing-tests-classes-and-methods
以下の例では、1つのAction JUnit Annotations(learn )を作成し、2つのURLを同時にブラウザで開きます。
availableFixes:
- name: "Learn about JUnit Annotations"
actions:
- goto:
type:"URL"
value:"https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations"=
- goto:
type:"URL"
value:"https://junit.org/junit5/docs/current/user-guide/#writing-tests-classes-and-methods"
また、IntelliJでAlt+Enter で起動すると、コンテキストメニューが表示され、それを選択するとドキュメントにジャンプすることができます。

マルチプルアクション
複数のアクションを用意して、URLやチュートリアルごとに、 alt+enterで表示されるクイックフィックスのポップアップメニューに、それぞれのオプションを持たせることもできます。
例えば、@Parameterized アノテーションについては、公式ドキュメントやオンラインのサンプルコードのセットにリンクしたい場合があります。
- https://junit.org/junit5/docs/current/user-guide/#writing-tests-parameterized-tests
- https://github.com/eviltester/junitexamples/blob/master/src/test/java/parameterized/junit5/InitialExampleTest.java
私は単純に、アノテーションを検索するレシピを作ります。
search:
annotation:
owner:
method: {}
type: "org.junit.jupiter.params.ParameterizedTest"
そして、私が有用だと判断したサイトにはリンクを貼っています。
availableFixes:
- name: "JUnit Annotations (learn)"
actions:
- goto:
type:"URL"
value:"https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations"
- name: "What is a JUnit Test?(learn)"
アクション:
- goto:
type:"URL"
value:"https://junit.org/junit5/docs/current/user-guide/#writing-tests-classes-and-methods"
すると、両方のリンクがポップアップダイアログに表示されます。

誰が得をするのか?
ライブラリを使用したり学んだりする際、特にチームを率いて新しいライブラリの導入を支援する際に役立つと思いました。
これは、ライブラリを作成するチームにもメリットがあり、ライブラリの採用やライブラリの新機能を案内するための標準的なドキュメント・レシピのセットを作成することができます。
これは、コードのメンテナンスとドキュメントのメンテナンスが異なるチームで行われている場合に特に有効です。
Sensei は IntelliJ の中で `preferences > plugins` を使ってインストールすることができます (単に "sensei secure code" で検索してください)。
このブログ記事のコードはすべてGithubのjunitexamplesモジュールにあります。 https://github.com/SecureCodeWarrior/sensei-blog-examples
目次
アラン・リチャードソンは、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、またはセキュリティに関わるすべての人が、安全でないコードに関連するリスクを減らすことができるよう、支援します。
デモを予約するダウンロード始めるためのリソース
セキュア・バイ・デザインベストプラクティスの定義、開発者の能力向上、予防的セキュリティ成果のベンチマーク
このリサーチペーパーでは、Secure Code Warrior 共同設立者であるピーテル・ダニュー(Pieter Danhieux)氏とマティアス・マドゥ(Matias Madou)博士、そして専門家であるクリス・イングリス(Chris Inglis)氏(元米国サイバーディレクター、現パラディン・キャピタル・グループ戦略顧問)、デヴィン・リンチ(Devin Lynch)氏(パラディン・グローバル・インスティテュート・シニアディレクター)が、CISO、アプリケーション・セキュリティ担当副社長、ソフトウェア・セキュリティの専門家など、企業のセキュリティ・リーダー20人以上への詳細なインタビューから得られた主な知見を明らかにします。
セキュリティ スキルのベンチマーク: 企業におけるセキュアな設計の合理化
セキュアバイデザイン(SBD)構想の成功に関する有意義なデータを見つけることは、非常に困難である。CISO は、セキュリティプログラム活動の投資収益率(ROI)とビジネス価値を、従業員レベルと企業レベルの両方で証明しようとすると、しばしば困難に直面します。言うまでもなく、企業にとって、現在の業界標準に対して自社の組織がどのようにベンチマークされているかを把握することは特に困難です。大統領の国家サイバーセキュリティ戦略は、関係者に「デザインによるセキュリティとレジリエンスを受け入れる」ことを求めている。セキュアバイデザインの取り組みを成功させる鍵は、開発者にセキュアなコードを保証するスキルを与えるだけでなく、規制当局にそれらのスキルが整っていることを保証することである。本プレゼンテーションでは、25万人以上の開発者から収集した社内データ、データに基づく顧客の洞察、公的研究など、複数の一次ソースから得られた無数の定性的・定量的データを紹介します。こうしたデータ・ポイントの集積を活用することで、複数の業種におけるセキュア・バイ・デザイン・イニシアチブの現状をお伝えすることを目的としています。本レポートでは、この領域が現在十分に活用されていない理由、スキルアッププログラムの成功がサイバーセキュリティのリスク軽減に与える大きな影響、コードベースから脆弱性のカテゴリーを排除できる可能性について詳述しています。