OpenAIが、ChatGPTの誤りを検出するAIモデル「CriticGPT」を開発したことを発表しました。CriticGPTはChatGPTと同じくGPT-4をベースに開発されているそうです。 Finding GPT-4’s mistakes with GPT-4 | OpenAI https://openai.com/index/finding-gpt4s-mistakes-with-gpt-4/ ChatGPTなどのチャットAIを使うと、少ない操作でコードを生成したり長文を作成したりできます。しかし、チャットAIが生成するコードや文章には誤りが含まれることも多く、「ChatGPTで生成したコードをそのまま使った結果、バグが存在しており実害を被った」という報告も存在しています。 ChatGPTが生成したコードのバグを見落としたせいで150万円以上の損失を被った失敗談 - GIGAZIN
ソフトウェアテストの自動化やローコード・ノーコードツールへのAI技術導入が急速に進んでいる。とはいえ、生成AIはいまだ研究段階にあり、日本でも海外でも有効な活用方法を模索している途上にある。本セッションでは、ソフトウェアテスト領域のトップランナーである3人、Launchable,Inc共同社長の川口耕介氏、プログラマでテスト駆動開発者の和田卓人氏、オーティファイ株式会社代表取締役 CEOの近澤良氏が、生成AI時代のソフトウェアテストの現状と課題、これからの展望について語った。 海外と日本のソフトウェアテストの現状 アメリカに住み、20年間アメリカのソフトウェア開発現場を見続けてきた川口氏は、「故郷に錦を飾りたい」という思いから、日本でもJenkinsやDevOps、ソフトウェアテストのような取り組みを進めていきたいと考えている。しかし、取り組みの中でいろいろな難しさを感じ、日本と海外のソフ
デジタルペンテスト部の山崎です。 4月から「セキュリティ診断」の部署が「ペネトレーションテスト(ペンテスト)」の部署に吸収合併されまして、ペンテストのペの字も知らない私も晴れてペンテスターと名乗れる日がやってまいりました!(そんな日は来ていない😇) そんなわけで、新しい部署が開設しているブログのネタを探す日々を送っていたのですが、最近、Googleフォームの設定ミスによる情報漏えい事故が増えてきているようです。 どのような設定が問題となっているのでしょうか? 同じような事故を起こさないよう、設定項目について見ていきたいと思います。 情報漏えいの原因となりうるGoogleフォームの設定について Googleフォームから情報漏えいとなっている事例を見てみると、大きく分けて以下の2パターンのいずれかが原因となっているようです。 1.表示設定で「結果の概要を表示する」が有効に設定されている ある
はじめに エンジニアの皆様、テストコードはちゃんと書けておりますでしょうか?(挨拶) どんな開発言語や開発手法を導入していたとしても、アプリケーションの機能実装とテストは表裏一体であると言えます。場合によっては機能の作り込みよりも時間をかけるべきケースが多いくらい重要である(・・・と信じたい)反面、デッドラインが近づくにつれて真っ先に工数が削られやすく軽視されがちな工程でもあります。 時間に追われてテストコードを書いた結果、テストの体をなしていないコードになっていたり後で見返したときに記述が煩雑すぎてメンテ不能になっていたり・・・といった苦い経験は誰しもがあるかと思います。かくいう自分もそんなことは多々ありました。 そんな今までの経験則を基に「自分がテストコードを書くにあたってどんなことを意識しているのか?」をいくつかピックアップして備忘録も兼ねて紹介したいと思います。 一応注意なのですが
読者の皆さんは、テストについてどのようなイメージをお持ちでしょうか。「開発の後に行う確認作業」といったイメージを持たれている方もいるかと思います。 しかし、開発しようとしているソフトウェアに不具合の混入を防ぐには、もっと早い段階でテストについて考えることが必要です。こういったテスト活動は、プログラムを1文字も書いていないときから始めることができるのです。 本記事では、2016年に提唱された継続的テストモデルを紹介しつつ、アジャイルとも親和性のあるシフトレフトなテスト活動について解説していきます。 DevOpsにおけるテストの考え方 DevOpsのループ図とは何か? 継続的テストモデルとは何か 継続的テストモデルにおいてテストは「活動」である シフトレフトなテスト活動とシフトライトなテスト活動 シフトレフトなテスト活動としてのテスト駆動開発 コード実装を始める前から行うテスト活動 シフトレフ
はじめに Insight EdgeのLead Engineerの日下です。 弊社ではフロントエンドのスクラッチ開発にReactを採用することが多いのですが、フロントエンドの保守性はしばしば課題となっています。 というのも、要求仕様が曖昧なPoC(Proof of Concept)の段階からMVP(Minimum Viable Product)として開発を進めることも多く、 ビジネス側ユーザの意見にも左右されながらアプリを改善していくため、画面のレイアウトやデザイン、画面遷移の変更が多発するためです。 こうした状況の中でスピードと品質を両立するためには良質なテストコードが不可欠なのはもちろん、 プロダクトコードとテストコードの双方とも、変化に対応しやすく作る必要があります。 過去にテスト駆動開発を挫折した要因 実は、筆者は過去にReactのテスト駆動開発の実践、および社内普及活動に挑戦したこ
kotest は、 Kotlin ネイティブなテストフレームワークで、Kotlin で書かれたコードをテストするための強力で便利な機能が多く含まれています。 Kotlin/JVM では、テストに JUnit を使っている方が多いと思いますが、アサーションライブラリが Java しか考えていなかったり、coroutines, 非同期処理への対応が弱かったりと、もっと Kotlin の機能を最大限に活用して快適にテストを書きたいと思われる場面も多い事でしょう。 kotest は、アサーションライブラリだけを JUnit と組み合わせて使うこともできるし、テストフレームワーク全体を kotest へ置き換えることも可能です。 このセッションでは、主に今 JUnit を使ってテストを書いている方を対象に、kotest へ移行するとどんな良いことがあるのか、移行のやり方や具体的な実例を紹介します。
こんにちは!ファインディでFindy Team+開発チームのEMをしている浜田です。 昨今、開発生産性を高めるための取り組みを行っている組織が増えてきていると感じています。 開発生産性を向上させるためには、まずは定量的に可視化することが重要です。 可視化することで現状を把握して、開発組織の伸びしろを発見したり、課題を明らかにし、改善活動に取り組みやすくなります。 一方、定量的な指標に焦点を当てすぎてしまい本質的ではない対応をしてしまい、指標は向上したものの実際の生産性は向上していなかったり、むしろ悪化してしまうこともあります。 この記事では、開発生産性指標を向上させるためにやってはいけないアンチパターンについて紹介します。 デプロイ頻度を向上させるために、デプロイプロセスは変更せずに実施回数を増やした デプロイ頻度はDORAが提唱するDevOpsの4つの指標(Four Keys)の1つであ
AWS Summit Japan 2024 Day1の「大規模クラウドインフラ設計・構築案件の歩き方」のセッションについてレポートです。 控えめに言っても満足度の高いセッションでした。 大規模なクラウドインフラの設計構築運用に関わる方なら首がもげるくらい頷きが多い内容であり、アーカイブが公開された際はもう一度見たいと思うほど…。 セッションの内容には「設計書の一覧サンプル」や、「アプリ/インフラチームの責任分界」といった界隈でも関心が高い内容に触れられています。 考え方のひとつとして参考にしていきたい内容がモリモリでしたので、シェアさせていただきます。 セッション概要 大規模クラウドインフラ設計・構築案件の歩き方 Level 300: 中級者向け スピーカー: アマゾン ウェブ サービス ジャパン合同会社 仲谷 岳志 様 クラウド技術のコモディティ化により、エンタープライズ分野では近年、A
©︎ 自己紹介 平田敏之(tarappo) かんたんな経歴 • DeNA SWET → 10X(2022/04 -) 領域 ・「開発生産性の向上」「品質の担保」をミッション 2024 10X, Inc. ©︎ JaSST Kansai 24 - アブストラクトより 皆さんはどのようにして「プロダクトの品質」を担保していますか? そのための活動はテスト実施以外にも多岐にわたります。 ① しかし、これらの活動を品管メンバーだけで実施するのは難しいです。 10Xでは、品管メンバーがリードしながら、組織全体で品質を担保するために様々 な取り組みを行っています。 ② 例えば、開発チームの一員としての活動や、組織全体への働きかけなどです。 本発表では、弊社で実際に行っている事例を基に、組織全体で品質を担保するため の具体的な取り組みを一つ一つ紹介していきます。 これにより、皆様が自社での品質向上に役立
広大なネットとAS2497の中で働くネットワークエンジニア。趣味は海外旅行とインフラ歩き。社内外で「マンホールの人」と呼ばれている。 皆様お久しぶりです。初めての方は初めまして。ネットワーク技術部の竹﨑です。IIJには2020年度に新卒で入社しIIJバックボーンに携わる部署で働いております。過去にはこのような記事を投稿しております。 いつもニッチなブログばかりを投稿していますが今回は私の仕事紹介です。マンホールの人と言われることが多いですが残念ながらマンホールは趣味であり仕事ではありません。 IIJバックボーンについて 私のお仕事紹介の前に改めて現在のIIJバックボーンの規模をご紹介します。 IIJバックボーンの2024年5月現在の規模は以下の通りで、これらの設備を部署を横断した運用組織としてチームで運用しています。 世界5カ国 40+POP 16IX 4,000+ノード IIJにはこのバ
CTO室所属の高橋と申します。皆からはニャンさんと呼ばれております。そして私は特に無茶振りはされていません。 さて、developブランチに変更が入ったらdev環境にリリース、mainブランチに変更が入ったら本番環境にリリースを行う仕組み、いわゆる継続的デリバリーを構築しているプロジェクトは多いことと思う。我々のチームではCircle CIで行なっていたが事情があってGithub Actionsに移行することになった。ところがGithub Actionsではdevリリースと本番リリースの手順をどう共通化すればいいのか分からず迷ってしまった。 近年のソフトウェア開発の現場ではCI/CDは当たり前になっているが、もはや当たり前すぎて逆にまとまった情報がネット上にないのかもしれない。であれば得られた知見は共有しておくべきだろう。 結論から言うとジョブの共通化には再利用可能なワークフロー用いるのが
いただきましたー!わーい。脳に収めるぞー! @haradakiro @ryuzee pic.twitter.com/3Qd6EvPioU— SHIIBA Mitsuyuki (@bufferings) June 13, 2024 明日(2024年6月18日)発売! www.oreilly.co.jp どう書くのがいいんだろうなぁ? 複雑なコードと向き合うときは「あー、これはメモを取りながら読まないと迷子になるやつだ」ってなる。最初はわりとキレイに作られていたとしても、機能追加を重ねていくとだんだん読めなくなっていく。 だから「時間が経っても読みやすいコードってどう書くのがいいんだろうなぁ?何かヒントがあるかなぁ?」って思いながらこの本を開いた。先に書いておくと、ヒントはあった。 アウトサイドインのTDD 全然予想してなかったから、おー!と思ったのが、説明をTDDで進めていくってところ。好き
初めてAWSのサーバレスサービスを学習するときに利用できる「基本的なェブアプリケーションを構築する」の内容を2024年現在でも実行できる手順にしてみました こんにちは、臼田です。 みなさん、AWSのチュートリアル活用してますか?(挨拶 今回はAWSの初心者向けハンズオンコンテンツである基本的なウェブアプリケーションを構築するを2024年の現在版の手順としてまとめてみました。 このコンテンツはAWSのサーバレスなサービスを利用して、簡単にウェブアプリケーションを作成する体験ができるチュートリアルとなっており、登場するAWSの各サービスを理解するのにちょうどよい内容でした。しかし、リリースされてしばらく経っているのもあり、特に今回のAmplify Gen2リリースもあってだいぶ画面や操作方法などが変わってしまいました。 実現できる事自体は変わらないので、現時点でこのチュートリアルを初心者でも完
「システム構築はどこから始めるべきだろうか。システム構築が終わったらこうなる、というストーリーを語るところからだ。」アジャイル要求ユーザーストーリー はじめに ◆この記事は何? アジャイル開発における「要求」や「ユーザーストーリー」を細分化する記事です。 ◆対象は? 要求やユーザーストーリーを整理する方 アジャイル開発に関わる方 ◆ねらいは? アジャイル開発に関わる方が、何気なく使っている「要求」や「ユーザーストーリー」の解像度を上げること エンジニア人生に影響を与えたフレーズ 「システム構築はどこから始めるべきだろうか。システム構築が終わったらこうなる、というストーリーを語るところからだ。」は、書籍『テスト駆動開発』に出てくるフレーズです。 そして書籍『テスト駆動開発』の中で、私が最も印象に残っている文章です。 この文章に出会ってから、私は「言われた通りにシステムを作る」から脱却して、「
スライド概要 JJUG CCC 2024 Springでのスポンサーセッション「テストコードが根付くチームを立ち上げるために考えたいこと」の公開資料です。 シンプレクスは1997年の創業以来、メガバンクや大手総合証券を筆頭に、日本を代表する金融機関のテクノロジーパートナーとしてビジネスを展開してきました。現在では、金融領域で培った豊富なノウハウを活用し、金融機関以外の領域でもソリューションを展開しています。2019年3月にはAI企業のDeep Percept株式会社、2021年4月には総合コンサルティングファームのXspear Consulting株式会社がグループに加わり、創業時より付加価値の創造に取り組んできたシンプレクスとワンチームとなって、公的機関や金融機関、各業界をリードする企業のデジタルトランスフォーメーション(DX)の推進を支援しています。
こんにちは。この記事ではStorybook駆動開発をゼロから導入するために実践した内容をコンポーネント設計の側面から紹介します。合わせて、紹介した設計を元にどのようなテストを実装しているかについても紹介します。 簡単に実装できることが持続可能なテストへの鍵 Webフロントエンドの持続可能なテスト文化を醸成するためには、テストを開発フローの中で簡単に実装できることが何よりも重要です。テストの実装に機能開発以上のコストが掛かってしまう場合、「時間が無いのでテストコードを後から実装する(結果実装されない)」という典型的なアンチパターンに繋がってしまいます。 持続可能なテストを実現するためのアプローチ フロントエンドにおいて、特にIntegration Testの実装容易性は、コンポーネント設計やツールの使い方によって大きく左右されます。 筆者が関わるプロジェクトでは軽量なStorybook駆動開
アソビューのQAチームの紹介 過去〜現在のQA体制と、プロダクト成熟度の関係 現在のQA体制とQMファンネルの比較 インプロセスTEとスプリットTE これからのQA目標と方向性 インプロセスTE、QA目標 スプリットTE、QA目標 プロダクト成熟度や変化に応じた横断的なQA さいごに こんにちは。QAエンジニアの渡辺です。 1年半前にアソビューにジョインし、現在QAリーダーをさせていただいております。 過去のQAチームのブログを見ると様々な掲載があり、外から見て現在の体制が分かりにくいかと思いましたので、 一度、アソビューのQA体制の過去〜現在と、これからの方向性をまとめてみたいと思います。 アソビューのQAチームの紹介 アソビューのQAチームは、現在5〜6名で構成されています。 各プロダクトチームに1名〜2名ずつQAメンバが入っており、 横断的な業務を全員1割ほどしています。 過去〜現在
Intro Chrome 126 で筆者が実装した URL.parse が Ship された。 Chromium にコントリビュートしたことは何回かあったが、単体機能を Ship したのは初めてだった。 invalid URL の処理 new URL() によって、文字列の URL をパースすることができるようになって久しいが、この API は invalid な場合に例外を投げる。 例外処理をするよりも、先に URL としてパース可能かどうかを知るための URL.canParse() が提案され、先に実装が進んだ。 URL.canParse(str) // boolean しかし、これでは二回パースが必要になるため無駄が多い。 if (URL.canParse(str)) { // 1 回目のパース return new URL(str) // 2 回目のパース } そこで、失敗したら
こんな性格診断の画像を見たことはないでしょうか? これはMBTIと呼ばれていて、思考と行動のパターンを4つの次元に分け、16のタイプに分類する性格診断です。 ネットで「MBTI」と検索すると、一番上に出てくる「16 Personalities.com」は無料で診断でき、自分の性格タイプをかなり詳しく知ることができるためSNSを中心にかなり人気が高まっています。 しかしこの「16 Personalities」の性格診断テストは、実は正式なMBTI®ではないのです。 日本MBTI協会は、注意喚起をするため「16 Personalities性格診断テストはMTBI®とは似て非なるものである」という趣旨の声明文を公開しています。 ただ心理学の領域では、正式なMBTI®も性格検査としての信頼性や妥当性、ベースとなった理論に関しては疑問が呈されているようです。 本記事では無料で受けることができる性格診
スライド概要 本スライドは2024年5月25日(土)に開催したゲーム開発者向けのリアルイベント『ゲームメーカーズ スクランブル2024』で行われた講演のスライドとなります。 タイトル: 全開発者におくるデバッグ入門! 個人開発でも使えるQA Tipsや基礎的な考え方をご紹介 内容: どういうテストをすればいいの?テストのタイミングって?工数感はどんな感じ?といった基礎情報から、「Quality(品質)」に関する考え方、テストに求められる要件についてお話しします。 登壇者: 株式会社デジタルハーツ QA事業本部 MS事業部 部長 渡辺 栄宏 氏 【アーカイブ記事】https://gamemakers.jp/article/2024_06_13_69326/ 【イベントページ】https://gamemakers.jp/scramble2024/ 【イベントレポート記事】https://gam
こんにちは。 Findy で Tech Lead をやらせてもらってる戸田です。 弊社では本番環境へのデプロイを1日に複数回実行していますが、本番環境での不具合の発生率は低いです。 次の画像は弊社のあるプロダクトの直近1年のFour Keysの数値です。 平均で1日2.3回の本番デプロイを行っていますが、変更障害率は0.4%程度を維持しています。単純計算ですが、1年で障害が2件程度の水準です。 また、平均修復時間は0.3hとなっており、障害が発生しても20分以内には復旧できていることがわかります。 この数値を維持できている理由の1つにテストコードの品質があると考えています。 システムで発生する不具合を自動テストが検知することで本番環境への不具合の混入を事前に防ぐことができ、仮に不具合が発生したとしても修正内容が他の箇所に影響が出ないことをテストコードが保証してくれるため迅速に修正できるから
こんにちは。kimihiro_nです。 今回はアプリケーションの動作を保証するために不可欠なテストコードの書き方についてです。 特に外部依存要素のテストに焦点を当ててみていきたいと思います。 外部に依存するテストコード 皆さんはアプリケーションのテストコードを書いていますか? 内部的な状態を持たず、入力と出力が常に変化しない関数であれば、テストコードを書くのは比較的容易です。実際に関数を呼び出ししてその出力と期待値が一致しているかをみればテストすることができます。 しかし実際にアプリケーションを開発する場合、データベースへの接続だったり外部へのAPI呼び出しだったりといった外部の状態に依存した処理が含まれることが多いです。このような場合、素直にテストを書くのが難しいです。 多くの場合モックを利用して実際のデータベース呼び出しを置き換えたり、テスト用のリソースをdockerなどで構築してダミ
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く