タグ

ブックマーク / codezine.jp (109)

  • ソフトウェアの自動テストはこれからどう変わるのか――これまでの10年から考える【デブサミ2022】

    近年、ソフトウェアテストの自動化が一般的になり、多くの企業で導入が進んでいる。自動テストなしではもう、ソフトウェア開発は成り立たないと言ってもいいだろう。では10年後、テスト自動化はどのような進歩を遂げていくのだろうか。ソフトウェアテスト専門会社であるヒューマンクレストの取締役 浅黄友隆氏は、テスト自動化がこの10年間でどのように変わっていったのか、そして10年前と変わらなかったことを中心に語り、今後の自動テストについて語った。 株式会社ヒューマンクレスト 取締役 浅黄友隆氏 10年前といまではソフトウェアテスト自動化の認識が変わってきている ソフトウェア開発で欠かせないのがソフトウェアテストだ。10年前は、まず手動テストをつくり、それをいかに自動化するのかがソフトウェアテストの自動化だと考えられていた。浅黄氏が10年前に抱いていた自動テストのイメージも「人間の手で操作しているテストを自動

    ソフトウェアの自動テストはこれからどう変わるのか――これまでの10年から考える【デブサミ2022】
  • フィーチャーフラグ(Feature Flag)はなぜ必要なのか?

    連載は、最新のソフトウェア開発の課題点を解決する手段であるフィーチャーフラグ(Feature Flag)について、概要や導入方法、ベストプラクティスを紹介します。第1回は、フィーチャーフラグとはなにか、どのようにしてプロダクト開発を変えていくのか、そのメリットと導入の際の懸念点を説明します。 はじめに 連載はフィーチャーフラグについての連載です。最新のソフトウェア開発の課題点を解決する手段であるフィーチャーフラグに焦点をあて、フィーチャーフラグとは何なのか、どういった機能を提供するのか。フィーチャーフラグのメリット・デメリットを、具体例を使って詳細に説明します。また、導入前に考慮すべきことや、フィーチャーフラグの実装、サービスの選定の際の注意点、効率よく、かつ継続的に使用していくためのベストプラクティスも併せて解説します。さらにはサードパーティー製のフィーチャーフラグサービスの比較を行

    フィーチャーフラグ(Feature Flag)はなぜ必要なのか?
  • なぜテスト自動化は当たり前にならないのか? アジャイル・DevOps時代のスピードと品質の考え方

    連載では、スピードと品質を両立するためのアジャイルテスティングにおける重要なキーワードである「テストの自動化」について、WebブラウザやAPIレベルのエンドツーエンドテスト(E2Eテスト、この連載でのテスト自動化は主にE2Eテストの自動化を指しています)が求められる時代背景から、戦略や戦術、組織づくり、ノーコード・SaaS型のAIを活用したテスト自動化サービスの進化と具体的な実装、ベストプラクティスを解説します。第1回は、アジャイル開発やDevOpsが当たり前になった時代において求められるテストや品質について、時代背景を追っていきます。 はじめに 技術の進化とともに開発スピードは格段に上がり、システムはより複雑になり、求められる品質も高まっています。アジャイル開発やDevOpsという言葉が一般的になった今、これまで幾度となく議論されてきた「スピードと品質」の問題は、トレードオフではなく、

    なぜテスト自動化は当たり前にならないのか? アジャイル・DevOps時代のスピードと品質の考え方
  • 既存のAndroidアプリに「Jetpack Compose」を導入する際の勘所~PayPayフリマの場合

    2021年の7月に安定版のバージョン1.0.0が公開されたことで、Android開発者コミュニティから熱い視線が注がれているUIツールキット「Jetpack Compose」。これまで主流だったUI Frameworkとは大きく異なるアーキテクチャということもあり、既存プロジェクトへの導入は慎重になっている方も多いのではないでしょうか。記事では、Jetpack Composeへの移行のメリットや導入の考え方、導入してからの所感について、PayPayフリマでの事例を元にご紹介します。 はじめに ヤフー株式会社はフリマサービス「PayPayフリマ」を運営しています。PayPayフリマは送料無料でお買い物ができる個人間取引サービスで、2019年の10月にリリースしました。Android/iOSアプリは、2021年11月の時点で1000万ダウンロードを達成しました。 比較的最近に作られたこともあ

    既存のAndroidアプリに「Jetpack Compose」を導入する際の勘所~PayPayフリマの場合
  • クラウド・ネイティブのお作法(2)「リトライ」~効率的なリトライ手法「Exponential Backoff and jitter」とは何か

    こんにちは。アマゾンウェブサービス クラウドサポートエンジニアの小武です。Amazon EC2、Amazon RDS、Amazon Redshiftなどのサービスの他、AWSの内部を支える裏側の技術に日々Dive Deepしています。連載ではAWSサポートのエンジニアがそれぞれ「今一番AWSユーザーに伝えたいこと」を連載の形でお届けしています。 私の担当回では、AWSという巨大な分散システムを支える技術要素のうち、アーキテクチャ設計、プログラミング技術のいくつかについて見ていきたいと思います。これらは、AWSの内部を支える技術というだけでなく、皆さんのアプリケーションをダウンタイムゼロのシステムに近づけるための基礎技術、クラウド・ネイティヴなアプリケーションを構築する基礎的なテクニックとも言えると思います。 その基礎的なテクニックは大きく、下記の4つがあります。 非同期処理(Asynch

    クラウド・ネイティブのお作法(2)「リトライ」~効率的なリトライ手法「Exponential Backoff and jitter」とは何か
  • 小規模な受託開発におけるAWSインフラ環境~工数削減のポイントとセキュリティ (1/3):CodeZine(コードジン)

    連載では、比較的「小規模」な「受託」開発を実施する際のAWS活用の勘所を、実際の開発現場での経験を元に紹介します。大規模な開発では当てはまらない部分もあると思いますが、可能な限りインフラ関連の工数を少なくし、効率的に開発を実施するために、最低限抑えておく実務上役立つ点について、解説します。記事では、小規模なフルスクラッチの業務システムをビジネスとし、開発を実施する際に参考となるAWSのアーキテクチャや工数のかかる工程、留意すべきセキュリティに関するポイントを紹介します。 はじめに 比較的小規模なフルスクラッチのシステム開発(1〜20人月程度)を受託するビジネスとする場合、AWS上に「多層アプリケーション(Web層、AP層、DB層)に即したインフラ環境を構築する」ことが多いと思います。 多層アプリケーションの構成例 このような構成をシステム毎、顧客毎に構築することになりますが、AWSで構

    小規模な受託開発におけるAWSインフラ環境~工数削減のポイントとセキュリティ (1/3):CodeZine(コードジン)
  • 実践DDD本 第10章「集約」~トランザクション整合性を保つ境界~

    実践DDD 第9章「モジュール」~高凝集で疎結合にまとめる~ DDDにおける集約 DDDにおける集約(Aggregates)とは、オブジェクトのまとまりを表し、整合性を保ちながらデータを更新する単位となります。通常はオブジェクトの集まりの「境界線」の意味で使われ、オブジェクト群の生成/読み込み/変更/保存といったライフサイクル管理が行われます。 外部から集約を操作できる「集約ルート」 外部から集約を操作する場合、代表オブジェクトである「集約ルート(≒ルートエンティティ)」のみ参照することができます。集約ルートを操作することで集約全体の整合性を保ちながらデータを変更できます。 DDDの「集約」のイメージ 上図の例では、注文に関わるオブジェクト群が集約の「境界線」となっています。操作をしたい場合「注文」という「集約ルート」に変更依頼をすることができます。集約内部にある「注文明細」や「配送先住

    実践DDD本 第10章「集約」~トランザクション整合性を保つ境界~
  • 知っていると得する! Java 9になってより便利になった改善点

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    知っていると得する! Java 9になってより便利になった改善点
  • 『AWSによるサーバーレスアーキテクチャ』が日本で担う役割とは? 監修者にインタビュー

    プロダクションレベルで使える ――吉田さんは書『AWSによるサーバーレスアーキテクチャ』の翻訳に際し、監修を担当されたとのことで、ぜひ書のポイントについてうかがえればと思います。最初に、吉田さんがどんな方で、書とどういうつながりがあるのか教えていただけますでしょうか。 吉田:吉田真吾と申します。私はAWSなどのクラウドへの基盤移行やモダン化の支援を中心にコンサルティングの仕事をしています。2年前にニューヨークでのServerlessconfに参加したときに、商用・ビジネスレベルでサーバーレスアーキテクチャを活用するために必要なさまざまな知見が披露されたり、その場で議論されたりしているのを見て、日でも知見を共有し合う場としてサーバーレスのコミュニティを立ち上げました。 それは多くの人にサーバーレスアーキテクチャを用いたよりよいシステムを実現・利用してもらいたいとの考えからです。現状、

    『AWSによるサーバーレスアーキテクチャ』が日本で担う役割とは? 監修者にインタビュー
  • デブサミ2018、講演関連資料まとめ

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    デブサミ2018、講演関連資料まとめ
  • 手軽にJavaの実行結果が確認できるJava 9の新しいツール「JShell」

    学習や動作確認に使用できるJShellとは 「JShell」とは、Java 9で提供される新たなツールの1つです。JShellを使えば、コードをjavaコマンドでコンパイルし、その後、javaコマンドで実行するという手順を行わなくても、実行結果が確認できます。 このような環境をREPL(Read-eval-print loop)と呼びます。JShellは、Java 9のSDKから標準で利用できるREPL環境です。 [Note]さまざまなREPL REPL環境について他の言語も含めて体験してみたい方は、さまざまな言語でREPL環境を提供しているWebサービス、「repl.it」を利用してみてください。 これまでJavaを学習したい場合にはJava SEをインストールし、EclipseやNetBeans、またはIntelliJ IDEAなどのIDE環境をそろえるのが普通でした。他の言語での開発

    手軽にJavaの実行結果が確認できるJava 9の新しいツール「JShell」
  • ソフトウェア工学の実践的な学び直しがイノベーションの原動力となる――社会人向け講座「トップエスイー」の講座説明会が12月13日に開催

    「トップエスイー」は、「サイエンスによる知的ものづくり教育」を理念に、世界で活躍できるような「スーパーアーキテクト」(高度な開発技術を身に付けたソフトウェア技術者)の育成を目指す、社会人向けの講座。受講コースは2種類設定されている。 トップエスイーコース 基礎から最先端にわたる40を超える科目を受講し、ソフトウェア工学を基礎から学ぶことができる。ほとんどの講義は演習を重視しており、学んだことを試したり、グループで議論を行い理解を深めたりすることが可能。講義のほか、学んだ技術を実務で活用するため、実課題に取り組む「ソフトウェア開発実践演習」が別途設けられている。 修了生からは「独学でやってきたソフトウェア工学を、系統立てて学ぶことができて良かった」「講義が実践的で、講師からもアドバイスがもらえるため、一人で取り組むよりも理解が深まった」といった感想が挙がっている。 修了生は何を得て、その後知

    ソフトウェア工学の実践的な学び直しがイノベーションの原動力となる――社会人向け講座「トップエスイー」の講座説明会が12月13日に開催
  • JIRAやConfluenceをZabbixで監視して運用してみよう

    昨今、開発現場での情報共有は必須ともいえるほどに重要視されています。情報共有ツールとしてJIRAやConfluenceといったアトラシアン製品は多くの開発現場で使用されていますが、チームの仕組みに存在するからなんとなく使っている……そのような方も多いのではないでしょうか。しかしせっかくのツール、多種多様な機能をもっと活用したいと思いませんか? 連載では使い慣れた環境と組み合わせてツールをさらに使いこなす方法を、アトラシアン製品の国内販売代理店であるリックソフトがお伝えします。前回は「JIRA Software」をビジュアル分析ツールである「Tableau(タブロー)」と連携させ、データを可視化する方法を紹介しました。今回はアトラシアン製品の運用状況を、OSSである「Zabbix」を使用して監視する方法を解説します。 はじめに システム全体を効率よく管理するには、サーバのハードウェアリソー

    JIRAやConfluenceをZabbixで監視して運用してみよう
  • Goアプリケーションにおけるテスト設計を考える ~Javaとの比較で理解するGoの依存性の分離

    近年、新興言語とは思えない簡潔さや実行時パフォーマンスの良さなどからGoが注目を集めています。サイバーエージェントのメディアディベロップメント事業部でもGoの導入を進めており、Goアプリケーションの開発を通じてその利点や欠点などを身を持って学ぶことができました。この記事では、Goアプリケーションの自動化単体テストを行うにあたって、テストの実施を容易にするにはどのような設計を行うべきかを、依存性の分離という観点から紹介します。依存性の分離は、単体テストにおいて確保しなければならない要素の一つです。依存性の分離を行うことによって、一つのテストで実行される番コードの範囲を制限することができ、テストが失敗したときの原因究明が容易になります。また、テストの再現性の担保も容易になります。 はじめに 初めまして。株式会社サイバーエージェント ソフトウェアエンジニアの大澤翔吾と申します。私の所属してい

    Goアプリケーションにおけるテスト設計を考える ~Javaとの比較で理解するGoの依存性の分離
  • JIRAのデータを柔軟に分析するならTableauが最適! レポートを作成し、データ活用の第一歩を踏み出そう

    昨今、開発現場での情報共有は必須ともいえるほどに重要視されています。情報共有ツールとしてJIRAやConfluenceといったアトラシアン製品は多くの開発現場で使用されていますが、チームの仕組みに存在するからなんとなく使っている……そのような方も多いのではないでしょうか。しかしせっかくのツール、多種多様な機能をもっと活用したいと思いませんか? 連載では使い慣れた環境と組み合わせてツールをさらに使いこなす方法を、アトラシアン製品の国内販売代理店であるリックソフトがお伝えします。前回は「Slack」と、JIRA/Confluenceを連携する方法を紹介しました。今回は「JIRA Software」をビジュアル分析ツールである「Tableau(タブロー)」と連携させ、データを可視化する手順を解説します。 はじめに 記事ではビジュアル分析ツールである「Tableau(タブロー)」とプロジェクト

    JIRAのデータを柔軟に分析するならTableauが最適! レポートを作成し、データ活用の第一歩を踏み出そう
  • SQLでバスケット分析と時系列分析を用いたデータ解析に挑戦する

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    SQLでバスケット分析と時系列分析を用いたデータ解析に挑戦する
  • REST APIを利用して、JIRAのサマリーを外部エディタで編集してみよう!――外部ツール連携の第一歩

    はじめに 今回は、JIRA課題のサマリー(要約)を外部エディタ上で編集してJIRAに書き戻す機能を、JIRAのREST APIとElectron上に構築したテキストエディタを連携させ、実現していきます。 通常、JIRAのテキストフィールドで一括置換を行いたい場合、CSV Export/Importを使って外部ツール経由で行うなど一手間が必要です。そこで、テキストエディタとREST APIを用いて直接連携すると、便利なテキスト編集機能を使いながら手軽に要約の一括置換ができるようになります。 実装はJavaScriptとjQueryを組み合わせて行います。 サマリーエディタのイメージ 必要な環境 Electron稼働環境(記事ではv1.6.2を利用しました) macOS 10.9以降, Windows 7以降 JIRA6.4以降(サーバ版のみ) サマリーエディタを動作させてみる はじめに、必

    REST APIを利用して、JIRAのサマリーを外部エディタで編集してみよう!――外部ツール連携の第一歩
  • IoTのセキュリティ設計って、どこから学んだらいいの?

    「IoT(Internet of Things:モノのインターネット)」は注目度が高いものの、全体的に未成熟な分野だと言われています。利用者にとって、また事業者にとっても、想定される脅威に対応したセキュアなIoT製品を開発することが課題であり、そのための情報、ガイドライン、あるいはその教材の需要は高いと考えられます。 そこで稿では、独立行政法人情報処理推進機構(IPA)より公開された、「IoT開発におけるセキュリティ設計の手引き」(以下、ガイドライン)について紹介します。このガイドラインの初版は、2016年5月12日に公開されたもので、IoT開発においてセキュリティ設計を担当している技術者を主な対象として作成されています。 IPA「IoT開発におけるセキュリティ設計の手引き」 このガイドラインは、高い頻度で更新されており、さまざまなIoT製品に言及した体系的な文書となっています。当然なが

    IoTのセキュリティ設計って、どこから学んだらいいの?
  • LINE Bot SDKが持つ主要機能の実装方法

    連載では、今後広がっていくであろうBotの開発手法を、LINE Botを例として解説していきます。開発はPHP、サーバーはHerokuのフリーアカウントを利用するので簡単に、そして無料で運用が可能です。第3回となる今回は、LINE Bot SDKの持つ主要な機能を実際にBotを作りながら学んでいきます。画像やスタンプなどリッチなコンテンツを送ったり、テンプレートを使った確認ダイアログや横並びの画像+ボタンのダイアログなどを簡単に実装できます。 LINE Bot Awardsエントリー受付中!(2017年2月22日まで) グランプリ賞金1000万円のLINE Bot Awards、エントリー絶賛受付中です。他にも賞金50万円の9部門、そして学生賞は賞金100万円となっています。革新的なBotを開発して入賞を狙いましょう! (「LINE Bot Awardsのページ」より引用) はじめに L

    LINE Bot SDKが持つ主要機能の実装方法
  • LINE Bot開発の概要と実装の基本

    連載では、今後広がっていくであろうbotの開発手法を、LINE Botを例として解説していきます。開発はPHP、サーバーはHerokuのフリーアカウントを利用するので簡単に、そして無料で運用が可能です。第2回となる今回は、前回動かしてみた完成済みプロジェクトを自分で一から作りながら、LINE Botの全体像、プロジェクトに必要なもの、基的な実装と動きを解説します。LINE Bot SDKのインストール方法から始め、Procfileを用いたサーバーの設定、最後にコードを書いて実際にデプロイするところまでを行います。 LINE Bot Awardsエントリー受付中!(2017年2月22日まで) グランプリ賞金1000万円のLINE Bot Awards、エントリー絶賛受付中です。他にも賞金50万円の9部門、そして学生賞は賞金100万円となっています。革新的なBotを開発して入賞を狙いましょ

    LINE Bot開発の概要と実装の基本