テスト駆動開発について

今回は、テスト駆動開発についてご紹介します。

テスト駆動開発について
テスト駆動開発とは、プログラムコードを実装する際に処理を先に書くのではなく先にテストコードを書いてから処理を実装していくような開発方法になります。

テスト駆動開発のメリットですが、「テストコードを確実に書く」という事です。

テストコードを確実に書くことにより受ける恩恵としては、以下があります。
・テストコードがベースにあるので、リファクタリングやコードの修正をおこなった時の影響がすぐにわかる -> 不具合が発生しにくい

・後半のフェーズ(統合テスト)などで致命的な問題が発生しにくい
->テストファーストで実装しているので致命的な問題が起きにくい

また、テスト駆動開発を行うと単純に後半のフェーズが楽になります。
テスト駆動開発は単体テストの自動化を想定しているので、統合テストなどのフェーズの負担が軽くなります。

以下、図を見ていただければわかりやすいかと思います。

こんな複雑な開発手法は、モダンな環境でしか行われていないのでは?とおおもいでしょうが、現在ではスタンダードに近い手法になっています。
また、この手法は開発者の精神的な負担も下げると思いますのでご自身のためにテスト駆動開発を取り入れてはいかがでしょうか。

Power Automate Desktopでメールを一括送信するフロー

今回はPower Automate Desktopを使った「メール一括送信フロー」をご紹介します!

フロー概要

今回ご紹介する「メール一括送信フロー」の概要は以下の通りです。
担当Aさんが、異なった職種を希望する複数の派遣スタッフさんにメールを送ります。

事前準備

フローを作成する前に、送信対象リストとメールテンプレートを用意しましょう。

  1. 送信対象リスト
    今回はExcelでメール送信する対象者リストを作成します。
    氏名
    カナ
    メールアドレス
    テンプレート
  2. メールテンプレート
    送信対象リストのテンプレートに記述された、テンプレートを作成します。
    ● プログラマー希望.txt
    ● 事務職.txt

フローの作成

  1. Excel の起動
    ”パラメーターの選択”の各項目について、それぞれ設定して保存ボタンを押下しましょう。
    【全般】
    Excelの起動:次のドキュメントを開く
    ドキュメントパス:送信対象リストのパスを指定
    インスタンスを表示する:ON
    読み取り専用として開く:OFF
    【詳細】
    ※変更なし
    【生成された変数】
    ExcelInstance
  2. Excel ワークシートから最初の空の列や行を取得
    ”パラメーターの選択”の各項目について、それぞれ設定して保存ボタンを押下しましょう。
    【全般】
    Excelインスタンス:%ExcelInstance%
    【生成された変数】
    FirstFreeColumn
    FirstFreeRow
  3. Excel ワークシートから読み取り
    ”パラメーターの選択”の各項目について、それぞれ設定して保存ボタンを押下しましょう。
    【全般】
    Excelインスタンス:%ExcelInstance%
    取得:セル範囲の値
    先頭列:1
    先頭行:1
    最終列:%FirstFreeColumn – 1%
    最終行:%FirstFreeRow – 1%
    【詳細】
    セルの内容をテキストとして取得:OFF
    範囲の最初の行に列名が含まれています:ON
    【生成された変数】
    sendList

  4. 現在の日時を取得します
    ”パラメーターの選択”の各項目について、それぞれ設定して保存ボタンを押下しましょう。
    【全般】
    取得:現在の日時
    タイムゾーン:システムタイムゾーン
    【生成された変数】
    CurrentDateTime

  5. 変数の設定
    変数:thisMonth
    値:%CurrentDateTime.Month%

  6. 変数の設定
    変数:newColum
    値:5

  7. 変数の設定
    変数:newRow
    値:2

    *-*-* 以下のように表示されているとOKです! *-*-*
    *-*-*
  8. For each
    ”パラメーターの選択”の各項目について、それぞれ設定して保存ボタンを押下しましょう。
    反復処理を行う値:%sendList%
    保存先:CurrentItem

    ※以下は1~5はFor each内に設定します。

    1. 変数の設定
      変数:plan
      値:%CurrentItem[‘テンプレート’]%
    2. ファイルからテキストを読み取ります
      ”パラメーターの選択”の各項目について、それぞれ設定して保存ボタンを押下しましょう。
      【全般】
      ファイル パス:メールテンプレートのファイルパスを指定
      ※最後に%plan%.txtとしましょう。

      内容の保存方法:単一のテキスト値
      エンコード:UTF-8
      【生成された変数】
      template

    3. テキストを置換する
      ”パラメーターの選択”の各項目について、それぞれ設定して保存ボタンを押下しましょう。
      【全般】
      解析するテキスト:%template%
      検索するテキスト:#NAME#
      検索と置換に正規表現を使う:OFF
      大文字と小文字を区別しない:OFF
      置き換え先のテキスト:%CurrentItem[‘氏名’]%
      エスケープ シーケンスをアクティブ化:OFF
      【生成された変数】
      template

    4. テキストを置換する
      ”パラメーターの選択”の各項目について、それぞれ設定して保存ボタンを押下しましょう。
      【全般】
      解析するテキスト:%template%
      検索するテキスト:#MONTH#
      検索と置換に正規表現を使う:OFF
      大文字と小文字を区別しない:OFF
      置き換え先のテキスト:%thisMonth%
      エスケープシーケンスをアクティブ化:OFF
      【生成された変数】
      template
    5. メールの送信
      ”パラメーターの選択”の各項目について、それぞれ設定して保存ボタンを押下しましょう。
      ※今回Gmailからのメールを行いますが、Gmailでアプリパスワード発行が必要です。コチラ
      【SMTPサーバー】
      SMTPサーバー :smtp.gmail.com
      サーバーポート :465
      SSL有効 :ON
      SMTPサーバーには認証が必要 :ON
      ユーザー名:送信元メールアドレス
      パスワード :アプリパスワード
      信頼されていない証明書を受け入れます:ON
      【全般】
      送信元 :送信元メールアドレス
      送信者の表示名:○○○株式会社
      送信先 :%CurrentItem[‘メールアカウント’]%
      CC :未入力
      BCC :未入力
      件名 :%thisMonth%月の案件情報
      本文:%template%
      本文はHTML:OFF
      添付ファイル:未入力

      ※メールアドレスの誤り等、メール送信できない場合に、エラー発生時についての処理も必要ですが、今回は割愛させて頂きます。
      *-*-* 以下のように表示されているとOKです! *-*-**-*-*
  9. Excelを閉じる
    ”パラメーターの選択”の各項目について、それぞれ設定して保存ボタンを押下しましょう。
    【全般】
    Excelインスタンス:%ExcelInstance%
    Excelを閉じる前:ドキュメントを保存しない

  10. メッセージを表示
    ”パラメーターの選択”の各項目について、それぞれ設定して保存ボタンを押下しましょう。
    【全般】
    メッセージ ボックスのタイトル:メール送信
    表示するメッセージ:OK
    メッセージ ボックス アイコン:いいえ
    メッセージ ボックス ボタン:OK
    既定のボタン:最初のボタン
    メッセージ ボックスを常に手前に表示する:OFF
    メッセージ ボックスを自動的に閉じる:OFF
    【生成された変数】
    ButtonPressed
    *-*-* 以下のように表示されているとOKです! *-*-*
    *-*-*

実行

実行ボタンを押しましょう
メールが送られていることを確認ください!

おわり

以上でメールを一括送信するフローのご紹介終了となります。
ぜひ、試していただき、皆様の業務改善に繋がると嬉しいです!