PHPカンファレンス2023の登壇資料です。 https://fortee.jp/phpcon-2023/proposal/10143d00-ca44-4db1-aeb6-b618c423b646
Apolloを触っていて、テストをするために https://www.apollographql.com/docs/react/development-testing/testing/#testing-final-state を読んでいた。その文章の中で、 MockedProviderをrenderした時はloading状態になる データがロードされた最終状態にするにはwaaitみたいなnpm packageを使って、await wait(0)とかしてね It delays until the next "tick" of the event loop, and allows time for that Promise returned from MockedProvider to be fulfilled. と書かれていて、この文章の意味がわからなかったので、Nodeのイベントループを知
HTBをこれから始めようとしている皆さん!ようこそペネトレの世界へ! 今回の記事は私が2年前、ちょうどHTBを始めたばかりの頃に知っていたかったツールやサイトをまとめました!何も知らない状態から血を吐きながら集めた精鋭たちなので、ぜひ参考にしていただけると嬉しいです! HackTheBoxってなに?という方はこちらの記事を見てみてください! 正直、おすすめを挙げ出すとキリがないので、今回は特にお勧めできるツールやサイトを紹介しています。 中級者や上級者の方はすでに知っている情報が多いと思います。もし、他にも便利なツールがあれば教えていただけると嬉しいです! ペネトレと言えばOSCP!ということで記事の最後にはOSCP合格のためのプチ情報もまとめていますので、最後まで閲覧ください〜! それでは記事の本編に入りましょう! ツールまとめ まずは、HTB(ペネトレ)を行う上で最強のツールたちを紹介
こんにちは。エンタメ領域のDXを推進するブロックチェーンスタートアップ、Gaudiyでフロントエンドエンジニアをしているkodai(@r34b26)です。 Gaudiyでは、以前のtech blogでお伝えしたように、ATDDやフロントエンドのテストに取り組んできました。 techblog.gaudiy.com ですが、正直にいうと、Cucumberを使ったフロントATDDは運用がうまく回っていません。 なぜ失敗したか? を振り返ってみると、「設計を変える(=テストを書く)こと」だけに注力してしまい、「コミュニケーションの構造を変えなかったこと」が原因だということに思い当たりました。 そこで今回は、テスト文化を醸成するためのコミュニケーション設計をテーマに、ブログを書いてみたいと思います。 テスト文化を組織に定着させたいけどうまくいっていないチームの方々に、ご参考になったら嬉しいです。 1
テスト設計において何を考えてますか? テスト設計の時、何を考えていますか?テスト対象の機能のこと。テストすべき観点のこと。テスト技法を適用すること。期待値を明確にすること。テスト条件を満たす手順や環境を定義すること。最終的にテストケースに落とし込むこと。色々と考えることはあると思います。 テスト設計のWhatとHow これら考えていることは大きくWhatとHowに分けることができます。Whatというのは、「何をテストするか?」を考えることです。一方、Howというのは、「どのようにテストするか?」を考えることです。普通テスト設計で考えることと言えば、何をテストするか、いわゆるテスト観点を抽出したりすることが大事と思われがちですが、Howのどのようにテストするかも同じくらい必要です。これは、これまでの経験上そうしていたといったことや、過去のプロジェクトのやり方を流用するなどして暗黙的になってい
感染が拡大する中、初の「大学入学共通テスト」が実施されましたが、東京都内の会場では、マスクから鼻が出た状態のまま繰り返し注意をされても正しく着用しなかった受験生が、不正行為と認定されすべての成績が無効となりました。 共通テストを実施する大学入試センターは16日と17日実施された、1回目の本試験で4人の受験生の不正行為があったと発表しました。 このうち、東京都内の会場では1日目の16日、試験を受けた受験生の1人が、マスクをつけていたものの鼻が出た状態だったため、監督者が試験中に6回、さらに休憩時間にも注意をしましたが従わなかったということです。 6回目には「次に注意された段階で無効になる」と告げたものの、その後も応じず、「試験場で監督者などの指示に従わない」という要件に当てはまるとして、7回目に不正行為と認定すると伝えられ、すべての成績が無効になったということです。 感染が拡大する中で実施さ
こんにちは、研究開発部 Data Analysisグループの笛木です。 4/26(水)〜 4/28(金)で研究開発部内の技術研修を行いました。 こちらのブログの続きでテストコードについての研修資料を一部公開します。研修では新卒2年目の私が1年間で部内のコードなどから学んだ情報を共有しました。至らない部分もあるかもしれませんが、ご参考になれば幸いです。 こちらの研修で使用したGitHubのコードリンクは以下です。適宜、ご参照ください。 github.com 目次 目次 はじめに この研修の目的 研修スコープ外 テストコードについて テストコードの便利な点 テストコードの悪い例 テストコードに関するFAQ pytestによるテストコードの書き方 ファイル名 ディレクトリ 基本編 Parametrize Fixture 異常系 Mock indirect conftest 知っておくと活用する場
はじめに よく言われるように、ソースコードというものは書かれることよりも読まれることの方が多く、それゆえ読みやすいコードを書くということが非常に重要です。それはテストコードにおいても同様であり、プロダクトコードと同等に資産として扱う必要があります。 テストコードは具体的な値を用いて記述し、また複数の変数の値の組み合わせでテストケースを起こすため、プロダクトコードと比べて冗長になりがちです。 書籍『リーダブルコード』の14章でもテストコードの読みやすさについて触れられていますが、本稿では読みづらいテストコードをリファクタリングして読みやすくするためのテクニックを紹介したいと思います。 なおサンプルコードはJavaScriptで記述されており、そのテストコードはJest1を用いて書いています。 ソースコードはGitHubにあります。 リファクタリング(その壱) 以下の、決して読みやすいとはいえ
","naka5":"<!-- BFF501 PC記事下(中⑤企画)パーツ=1541 -->","naka6":"<!-- BFF486 PC記事下(中⑥デジ編)パーツ=8826 --><!-- /news/esi/ichikiji/c6/default.htm -->","naka6Sp":"<!-- BFF3053 SP記事下(中⑥デジ編)パーツ=8826 -->","adcreative72":"<!-- BFF920 広告枠)ADCREATIVE-72 こんな特集も -->\n<!-- Ad BGN -->\n<!-- dfptag PC誘導枠5行 ★ここから -->\n<div class=\"p_infeed_list_wrapper\" id=\"p_infeed_list1\">\n <div class=\"p_infeed_list\">\n <div class=\"
","naka5":"<!-- BFF501 PC記事下(中⑤企画)パーツ=1541 -->","naka6":"<!-- BFF486 PC記事下(中⑥デジ編)パーツ=8826 --><!-- Section BGN -->\n<div class=\"Section jukentokushu_naka6_list pc\">\n<div class=\"Title\">\n<h2><a href=\"https://www.asahi.com/edu/exam/\">受験ニュース</a></h2>\n<ul class=\"SubLink\" style=\"float:right;font-size:.8rem;\">\n<li class=\"Fst\"><a href=\"https://www.asahi.com/edu/kyotsu-exam/\">大学入学共通テストへ</a
golangでテストのためだけにinterfaceを書くのが死ぬほど嫌だったので編み出した技を紹介します。 TL;DR テスト(=mock)のためだけにinterfaceは切りたくない 型エイリアスとビルドタグを組み合わせるとinterfaceがなくてもモックが作れる この手法に必要なモックを自動生成するプログラムを作った interfaceは本当に必要なシーンで使うべき Background 現在モックを使った単体テストは一般的です。 Javaでの例を挙げると、モックしたいコンポーネントについて予めinterfaceを定義しておき、モックではそのインターフェースを実装するのが定石です。 しかしgolangのinterfaceはJavaなどのそれとは若干性質が異なるため、テスト=モックのためだけにinterfaceを書くのはオーバーワーク気味です。 そうテストのためだけにinterface
継続的インテグレーション(CI)を実現するオープンソースソフトウエア(OSS)「Jenkins」の生みの親として知られる川口耕介氏らが米国で設立したスタートアップのローンチャブル(Launchable)が、このほど日本で活動を始めた。同社は2020年1月に設立した。 1万個のテストケースを100ケースに圧縮 元クックパッドCTO室長の庄司嘉織氏がプリンシパル・ソフトウエア・エンジニアとして参画するほか、3人のエンジニアが2020年5月までに国内でチームに加わり、ソフトウエアのテスト工程を機械学習で効率化する技術を開発する。日米拠点が連携し、世界に通用するITサービスの立ち上げに挑む。 「1万個のテストケースを、バグの発見につながる100のケースに圧縮することで、テスト工程の時間を短縮できる」。ローンチャブルの川口共同CEO(最高経営責任者)はサービスの意義をこう語る。金融システムから組み込
AWSアクセスキーセキュリティ意識向上委員会って何? 昨今、AWSのアクセスキーを漏洩させてしまうことが原因でアカウントへの侵入を受け、 多額の利用費発生・情報漏洩疑いなど重大なセキュリティ事案が発生するケースが実際に多々起きています。 そこで、アクセスキー運用に関する安全向上の取組みをブログでご紹介する企画をはじめました。 アクセスキーを利用する場合は利用する上でのリスクを正しく理解し、 セキュリティ対策を事前に適用した上で適切にご利用ください。 本記事の想定読者 本記事ではフルマネージド型サービス=IAMを使ってアクセス制御を行うサービスと置き換えられます、これらを一切使わない開発(ALB, EC2, RDSのみなど)をしている方は対象外です 本記事はAWS上にソフトウェアを構築する開発者(主にバックエンドエンジニア)や開発環境を提供するプラットフォーマーを想定読者としています Typ
マイクロソフトはクラウド上で大規模な負荷テストを行えるフルマネージドな負荷テストサービス「Azure Load Testing」を正式サービスとして提供開始したことを明らかにしました。 外部に公開する予定のあるクラウドサービスでは、想定するユーザー数に対して適切なコンピューティングリソースが割り当てられているか、挙動に問題はないか、性能上の問題がある場合にはボトルネックがどこにあるか、などを本番開始前に調査する必要があります。 そのためには、あたかも実際に多数のユーザーがアクセスしてくるのと同じような状況を作り出さなくてはなりません。 Azure Load Testingは、そうした負荷の作成を作り出し、容易にテストできるようにしたものです。 上記の図にあるように、Azure Load TestingはApache JMeterのスクリプトを実行することで負荷を作り出し、それをエンドポイン
横浜市立小学校で担任教諭による複数児童へのいじめがあり、市が弁護士などでつくる第三者調査委員会を立ち上げて調査を進めていることが14日までに分かった。児童や保護者へのアンケートや聞き取り調査を進め、年度内に報告書をまとめるとしている。 市教育委員会によると、当該の教諭は一部の児童に対し、配布物を配らなかったり、提出物を探すように命じてテストを受けさせなかったりしたという。 3月に児童1人から訴えがあり、発覚した。学校側は6月に緊急の保護者会を開いて説明するとともに謝罪したが、その後、同様の被害を複数の児童が受けていたと判明。調査が十分ではないとして9月27日に第三者委員会を立ち上げた。 山中竹春市長は今月13日の定例会見でいじめがあったことを認め、「(最初の学校側の調査が不十分だったので)保護者との信頼関係が崩れていることは認めざるを得ない」と述べた。
2022-05-06 更新 「React でコンポーネントテストを書くといいらしい、 React Testing Library や jest でサンプルを参考に書いてみたが 現実どうやってプロダクトコードに合わせていけばいいか分からない」 そういった方が対象となる本を目指しています。 いろいろ調べて実践したものの下記のように感じた方に適しているかもしれません。 - 結局テストで何を担保しようとしているか分からない - React のテストでハマっているか、Jest でハマっているか分からない - モックとかスパイとかアプリケーションとは遠い出来事も多くてピンとこない 誤り・ご指摘あればフィードバックいただけると嬉しいです。 無料で配布していますが、気に入ったらサポートなどいただけると今後もこの本をアップデートし拡張していく気持ちになれるのでよろしくお願いします。
プログラマ、テスト駆動開発者 和田卓人 学生時代にソフトウェア工学を学び、オブジェクト指向分析/設計に傾倒。執筆活動や講演、ハンズオンイベントなどを通じてテスト駆動開発を広めようと努力している。『プログラマが知るべき97のこと』(オライリージャパン、2010)監修。『SQLアンチパターン』(オライリージャパン、2013)監訳。『テスト駆動開発』(オーム社、2017)翻訳。『事業をエンジニアリングする技術者たち』(ラムダノート、2022)編者。テストライブラリ power-assert-js 作者。 日本におけるテスト駆動開発(以下、TDD)のエバンジェリストとして知られる和田卓人さん。TDDが世に出て20年あまりが経ち、開発者の間でその名が広がっています。その一方で、和田さんは「TDDの本来の意味を知らなかったり誤解したりしている人たちもかなり増えている」といいます。 今回は、TDDは本質
こんにちは、NewsPicksの北見です。 ところで皆様、テストコードって書いてますか...? ネットでテストコードについて検索すると 「テストコードを書きましょう」 「テストコードとはこうあるべし」 「TDD(Test Driven Development)だ」 等々が叫ばれています。 ただ、なんとなく「方法論ありきでとにかくテストを書け」と言われているようで、テストの必要性について納得感に欠けている方もいらっしゃるのではないでしょうか? なぜ テストコードを書くのでしょうか? テストコードを書く理由 将来リファクタリングをしやすくする テストコード書く途中で、開発者自身が仕様を理解し、成長できる 最後に テストコードを書く理由 諸説ありますが、私が思うテストコードを書く理由は 将来リファクタリングをしやすくする テストコード書く途中で、開発者自身が仕様を理解し、成長できる の2つです。
改善戦略 実行のタイミングやGitHubの状況や依存サーバーのネットワークの状況によって変動はあるものの、早くて7分、だいたい10分〜15分くらいかかっている。早いか遅いかは、他の開発と比べても内容や状況が違うのでなんとも言い難いが、個人的な感想としては「遅い」。というより、一切の工夫をしていなかったので、もっと早くできるはずだと考えた。 ビルドされたファイルを複数の環境で共有する 処理全体の中で時間がかかっている処理は3つ。 依存パッケージのインストール ビルド テスト さらに、課題の一つとして「テスト実行時に開発用依存パッケージ(devDependencies)がインストールされているせいでテストが失敗しない問題がある」というものがあり、これを処理に追加しないといけない。 開発用依存パッケージのインストール ビルド 依存パッケージを一旦すべて削除 本番用依存パッケージのインストール テ
Merpay Advent Calendar 2021 の 8 日目はメルペイフロントエンドチーム の @tanakaworld がお送りします。 はじめに メルペイは金融サービスであり、品質の維持・向上に日々取り組んでいます。フロントエンドチームでは、約 2 年前からリグレッションテストの自動化に取り組み始め、直近の 1 年間はインテグレーションテストの自動化にもチャレンジしてきました。本記事ではメルペイフロントエンドチームに於けるテスト自動化の方針とその全体像について振り返ってみたいと思います。 フロントエンドプロダクトに関わるテストは次のものが挙げられます。これらをひとつずつ順番に見ていきたいと思います。 ユニットテスト インテグレーションテスト シナリオテスト リグレッションテスト テストの種類とそのカバレッジ対象 1. ユニットテスト ユニットテストは Jest を用いて、主に
2020/08/15更新: 「テストの失敗をレポートしたい」と「サブテストの一部のみ実施したい」の章を追加 はじめにTIG の辻です。今回は春の入門祭りということで Go のテストに入門してみよう!という記事です。 書いた背景ですが Go の標準ライブラリのコードリーディング会で testing パッケージにチャレンジしてみましたが、難しすぎてわからん。そもそも Go のテストって何ができるんだっけ?という話になり、基本的な内容をなるべく具体例をまじえながらまとめました。 ざっとどんなことができるんだろう、という index になれば幸いです。 TipsGo に組み込まれているテストの仕組みの中に、ベンチマークに関するテストと Example テストというサンプルコード用のテストも含まれているのですが、この 2 つは対象外にします。基礎的と思われる内容から順に並べてみました。 はじめに T
Goでテーブル駆動テストを書いていると、書いているときは「すげー読みやすくテスト書けてるぞ!」と思っていても、落ち着いてから見てみると「なんだこれ...訳がわからん...」となることがあると思います。(自分はよくあります。) この記事は、このようなことを解決するのに役立つtipsについてまとめています。主にテストケースについて焦点を当てています。 テストしやすいコード設計に興味がある方は や を参考にしてください。 はじめに この記事はパーソナライズGopher道場で学んだことを元に書いています。 そして、この記事で紹介するテーブル駆動テストの書き方は主観に基づいており、 あくまでテストの1つの書き方にすぎないです。 なので、「この書き方をしないとダメ!」というものではないので、みなさんの考え方やプロダクトに合わせて、柔軟にこの記事で紹介するtipsを取り入れていただけると幸いです。 結論
新年早々に以下の記事を見た。 www3.nhk.or.jp 首都圏で新型コロナウイルスの感染が拡大していることをうけて、東京都と埼玉県、千葉県、神奈川県は2日、政府に対して、緊急事態宣言を発出するよう要請します。関係者によりますと、都などは「感染爆発の瀬戸際だ」という認識だということで、法律に基づく緊急事態宣言で人の流れを止めるなどして感染の拡大を一刻も早く抑えたい考えです。 上の記事を読んで以下のようにつぶやいた。 緊急事態宣言が首都圏で発出されたら、個別入試は各大学が適当に対応するとして、大学入学共通テストどうなるんだろう? → https://t.co/lOXutbt2hn— next49 (@next49) 2021年1月2日 以下のツイートを教えていただいた。 大学入試の共通試験受検予定の皆さん 緊急事態宣言になっても絶対この試験はやる ということになっていますので安心して勉強し
はじめに こんにちは。DeSCヘルスケアシステム部でインターンをしている中島です。本記事では開発に関わった2つのサービス「ハレトケ」「カラダモ」の負荷テストで得た知見について紹介したいと思います。 負荷テストをこれからやる方や、システムのパフォーマンスチューニングに興味のある方などの参考になると嬉しいです。 負荷テストの目的 まず、負荷テストをどのような目的でやるのかについて抑えておきます。一般的にクラウド環境での負荷テストの目的は以下の5つが挙げられます。(出典:Amazon Web Services負荷試験入門 ――クラウドの性能の引き出し方がわかる Software Design plusシリーズ) 各種ユースケースの応答性能を推測する 高負荷時の性能改善を行う 目的の性能を提供することができるハードウェアをあらかじめ選定する システムがスケール性を持つことを確認する システムのスケ
アメリカ海兵隊は都市部で装甲車両を遠隔攻撃するための新しい兵器として、「ロケットランチャーを装備したロボット犬」の運用をテストしています。 DVIDS - News - Marines test emerging technologies at The Combat Center https://www.dvidshub.net/news/456001/marines-test-emerging-technologies-combat-center Marines Test Fire Robot Dog Armed With Rocket Launcher | The Drive https://www.thedrive.com/the-war-zone/marines-test-fire-robot-dog-armed-with-rocket-launcher アメリカ海兵隊は、口径66
「2023年初頭に、Mozillaはパブリックにアクセス可能なソーシャルメディア連合(Fediverse)のインスタンスをMozilla.Socialにおいて立ち上げ、テストします」(In early 2023, Mozilla will stand up and test a publicly accessible instance in the Fediverse at Mozilla.Social.) Webブラウザ「Firefox」の開発などで知られるMozillaは、12月20日付けで公開したブログ「Mozilla to Explore Healthy Social Media Alternative」でこのように表明しました。 イーロン・マスク氏によって買収されたTwitterが大きな混乱を見せ、多くのユーザーがTwitterの代替となるソーシャルメディアを探し始めている中で、
(6月26日現在、録画再生ができません。調査中。ご不便をお掛けして申し訳ありません) TOEIC得点アップのため頑張っている方、いざ、TOEIC受験となるといろいろ不安にかられませんか? 「2時間もの間、集中力が持続できるだろうか?」。そして、初めての受験なので「思わぬ失敗をするのではないか」、私にはそんな不安がつきまとっていました。 不安解消として2時間ぶっ通しの本番リハーサルのためにTOEIC公式問題集を2冊も買った。もう1~2回リハーサルテストをしたかったが、費用が掛かり過ぎるので諦めた。 皆さんには納得のいくまで準備してほしい。そこでTOEICと同じ形式の問題集を使ってリハーサルテストができるよう、無料問題集10セットを紹介しましょう。 なお、Part別問題集も紹介しています。 TOEIC Part 1 オンライン無料問題集 TOEIC Part 2 オンライン無料問題集 TOEI
朝日新聞デジタル @asahicom 【読まれています】10万円給付のウェブ申請、テスト不十分「開発10日」 asahi.com/articles/ASN8N… 担当した官僚の一人は「給付方針が定まらず、約1カ月のシステム開発期間が10日間になった。予行演習をする時間がなく、あとは実際に動かしながら不具合を修正していくしかなかった」と話す。 pic.twitter.com/i7ylU445Pi 2020-08-21 11:28:39 リンク 朝日新聞デジタル 10万円給付のウェブ申請、テスト不十分「開発10日」:朝日新聞デジタル 国民に一律10万円を配る特別定額給付金事業で、オンライン申請のためのシステムを準備する時間が足りず、十分なテストができないまま受け付けを始めていたことが政府関係者の話でわかった。オンライン申請は開始… 94 users 126
SREの菅原です。 この記事はカンム Advent Calendar 2022の4日目の記事になります。 少し前にサービスで使っているPostgreSQLをRDSからAuroraに移行しました。 Auroraに移行するため色々と作業を行ったのですが、その中でAuroraの性能を測るために行った負荷テストについて書きます。 pgbench まず最初にpgbenchを使って、単純なワークロードでのRDSをAuroraの性能差を測ってみました。*1 以下がその結果です。 MySQLで同様のテストをmysqlslapを使って行ったことがあって、そのときは概ねAuroraのほうが性能が高かったので、同様の結果になると考えていたのですが、RDSのほうが性能が高い結果になったのは予想外でした。 ただAuroraのアーキテクチャを考えると、pgbenchのような細かすぎるトランザクションの場合はRDSのほ
はじめに 株式会社マイベストでバックエンドエンジニアをしています、井上周(@isaka1022)です。 マイベストの開発組織において、2023年度の後半にかけて、バックエンドのテストの書き方の方針、ガイドラインの策定のプロジェクトを担当しました。 そもそもどのようにテストの書き方を決めるのか、また、ガイドラインとして機能させるためにエンジニア全員で共通認識を持てるものに仕上げるか、など考えることが多かったのですが、なんとか形にすることができたので今回はどのようにガイドラインを策定したか、その背景や経緯をお伝えできればと思います。 ガイドライン策定の背景 mybestのアーキテクチャには近年、Ruby on Railsに加えてNext.jsが導入されました。 それに伴い、バックエンドのテスト環境に大きな変化がありました。 それまでもテストの書き方のルールが決まっていなかったこともそうですが、
NextAuth (Auth.js) で認証させているWebアプリをPlaywrightなどでE2Eテストする際に、認証をどうやってさせるか、あるいは回避するかが悩ましい部分です。 もし採用している認証方式が、単純なID/パスワード認証であればテストユーザを作成し、Playwrightにパスワードを入力させれば認証できるので問題はありません。 しかし、Google認証などの外部のプロバイダを経由するような場合は、E2Eテストをすることが難しくなります。そこでこの記事では、NextAuthの認証済み状態をPlaywrightで再現させる方法を紹介します。 やり方は大きく2つ NextAuthの設定に依存してやり方は大きく2つあります。 セッションデータを database で管理している場合 セッションデータを jwt で管理している場合 データベースの場合 セッションデータをデータベースに
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く