Soumettre la recherche
Mettre en ligne
TDD où l’art de développer à l’endroit
•
4 j'aime
•
1,027 vues
E
EspritAgile
Suivre
Conférence de J. Fargeon lors de l'Agile Tour Aix-Marseille 2017
Lire moins
Lire la suite
Logiciels
Signaler
Partager
Signaler
Partager
1 sur 57
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
社内勉強会 NW入門
NW入門
NW入門
Shuntaro Saiba
rsyncのちょっとイイ話
rsyncのちょっとイイ話
Kazuhiro Oinuma
Resume
Resume
Sun Technologies Inc
Consistent, robust error management is a critical feature of any successful application. Developers need to know all that is possible in PL/SQL regarding the raising, handling and logging of errors, and that standardize the way in which those tasks are performed. This presentation takes you beyond the basics of exception handling in PL/SQL to explore the wide range of specialized error management features in Oracle. We will cover FORALL's SAVE EXCEPTIONS, DML error logging with the DBMS_ERRLOG package, the AFTERSERVERERROR trigger, the DBMS_UTILITY.FORMAT_ERROR_BACKTRACE function, and more. Use this material to help you fully leverage PL/SQL error management features, making it easier to identify the sources of problems and fix them more rapidly. https://oracle.com/plsql
Error Management Features of PL/SQL
Error Management Features of PL/SQL
Steven Feuerstein
[D12] NonStop SQLって何? by Susumu Yamamoto
[D12] NonStop SQLって何? by Susumu Yamamoto
Insight Technology, Inc.
Prestoの導入メリットのほか、HiveQLからPrestoへの書き換えTipsを紹介します
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
Kentaro Yoshida
https://rakus.connpass.com/event/214484/ フロントエンドLT会 - vol.3での発表資料になります
React + Amplifyで アプリ開発
React + Amplifyで アプリ開発
虎の穴 開発室
Cloud Operator Days Tokyo 2021
Ansible troubleshooting 101_2021
Ansible troubleshooting 101_2021
Hideki Saito
Recommandé
社内勉強会 NW入門
NW入門
NW入門
Shuntaro Saiba
rsyncのちょっとイイ話
rsyncのちょっとイイ話
Kazuhiro Oinuma
Resume
Resume
Sun Technologies Inc
Consistent, robust error management is a critical feature of any successful application. Developers need to know all that is possible in PL/SQL regarding the raising, handling and logging of errors, and that standardize the way in which those tasks are performed. This presentation takes you beyond the basics of exception handling in PL/SQL to explore the wide range of specialized error management features in Oracle. We will cover FORALL's SAVE EXCEPTIONS, DML error logging with the DBMS_ERRLOG package, the AFTERSERVERERROR trigger, the DBMS_UTILITY.FORMAT_ERROR_BACKTRACE function, and more. Use this material to help you fully leverage PL/SQL error management features, making it easier to identify the sources of problems and fix them more rapidly. https://oracle.com/plsql
Error Management Features of PL/SQL
Error Management Features of PL/SQL
Steven Feuerstein
[D12] NonStop SQLって何? by Susumu Yamamoto
[D12] NonStop SQLって何? by Susumu Yamamoto
Insight Technology, Inc.
Prestoの導入メリットのほか、HiveQLからPrestoへの書き換えTipsを紹介します
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
Kentaro Yoshida
https://rakus.connpass.com/event/214484/ フロントエンドLT会 - vol.3での発表資料になります
React + Amplifyで アプリ開発
React + Amplifyで アプリ開発
虎の穴 開発室
Cloud Operator Days Tokyo 2021
Ansible troubleshooting 101_2021
Ansible troubleshooting 101_2021
Hideki Saito
2021/11/18 db tech showcase 2021での発表資料
20211118 dbts2021 マイクロサービスにおけるApache Geodeの効果的な使い方
20211118 dbts2021 マイクロサービスにおけるApache Geodeの効果的な使い方
Masaki Yamakawa
イベント名:オープンソースカンファレンス2013 Tokyo/Spring 講師:日本仮想化技術 宮原 日時:2013/2/23 アジェンダ: • OpenStack概要 • OpenStack導入手順 – Ubuntu Server 12.04インストールと設定 – DevStackによるOpenStackインストール – イメージ作成 – インスタンス起動 – Floating IPによる外部接続設定 まずOpenStackを体験してみたい人向け 概要: OpenStackはOSSで開発が行われているクラウド環境構築のためのソフトウェアです。 本セッションでは、OpenStackの基本的な導入方法について分かりやすく解説します。
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門
VirtualTech Japan Inc.
Innovation EGG 第5回 『クラウド運用の本音』( https://innovationegg.doorkeeper.jp/events/30799 )での発表資料です。
2015-10-31 クラウドネイティヴ時代の運用を考える 〜 ドキュメント駆動運用へ
2015-10-31 クラウドネイティヴ時代の運用を考える 〜 ドキュメント駆動運用へ
Operation Lab, LLC.
Rakuten Tech Conference 2018 at 札幌
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
http://www.ospn.jp/osc2016-fall/ 2016/11/06
webエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのredis
nasa9084
Terraform, the first multi-vendor infrastructure tool from HashiCorp, helps you build, update, and version your infrastructure safely and efficiently. We love it for the simple syntax and because it lets us combine infrastructure from multiple vendors - reducing complexity and the effort that goes into managing multiple infrastructures. In this webinar we’ll explain what the Akamai Terraform Provider includes, how you can get started with the Akamai Terraform Provider, and we’ll showcase a demo for a variety of use-cases we documented from early adopters.
Manage Your Akamai-as-Code with Terraform
Manage Your Akamai-as-Code with Terraform
Akamai Developers & Admins
※Helidonのサポートに関するアップデートを盛り込んだ新バージョンを参照ください https://www.slideshare.net/oracle4engineer/java-helidon-232475979 翔泳社主催のソフトウェア開発者向けカンファレンス「Developers Summit 2020」(2020/2/14) 講演資料【14-C-5】 MicroProfileの仕様についてはこちらの資料を参考にしてください (OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界) http://tiny.cc/ochacafe-mp-slide
【改訂版あり】クラウド・ネイティブ時代に最適なJavaベースのマイクロサービス・フレームワーク ~ Helidonの実力を見極めろ!
【改訂版あり】クラウド・ネイティブ時代に最適なJavaベースのマイクロサービス・フレームワーク ~ Helidonの実力を見極めろ!
オラクルエンジニア通信
スクエアfreeセミナー第134回セミナー: CentOS終焉後のLinuxの新たな動き 発表資料 2022年9月22日(木)19:00〜20:30 https://www.opensquare.co.jp/free-seminar.html
忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
Masahito Zembutsu
社内勉強会で発表したスライドです。 インターネットの通信で使用されている金属導線と光ファイバに関して物理層の基礎的な部分を学ぶためのものです。 内容等に関して所属する会社とは一切関係ありません。
Physical Layer - Metal vs Fiber
Physical Layer - Metal vs Fiber
Yuya Rin
Ansible、Vagrant、Serverspec などを用いた 「インフラのコード化」 手法について、初心者向けに解説します。
Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門
Sho A
[A23] Oracle移行を簡単に。レプリケーションテクノロジーを使いこなす by Keishi Miyachi
[A23] Oracle移行を簡単に。レプリケーションテクノロジーを使いこなす by Keishi Miyachi
Insight Technology, Inc.
한글 배포용 문서의 모든 것
[16.06.25] 한글 배포용 문서의 모든 것
[16.06.25] 한글 배포용 문서의 모든 것
Hyeonmin Park
RHEL8.0でNVME-oFを設定してみました。やってみた系。
20190926_Try_RHEL8_NVMEoF_Beta
20190926_Try_RHEL8_NVMEoF_Beta
Kohei KaiGai
「Red Hat Enterprise Linuxの修正はどのように出荷されるか」のパロディ版です :)
Debianの修正はどのように出荷されるか
Debianの修正はどのように出荷されるか
Hideki Yamane
2015.11.21の第29回山陰ITPro勉強会で発表した内容です。 Linuxコンテナ管理のLXCと自動構成ツールのAnsibleを使って、ソフトウェアのバージョンアップの度に、試験・検証のためにOSインストールしてデプロイする手間を楽にしましょうという内容でした。 LXCやansibleを使う上で、一番手間が掛からないと思うubuntu14.04を前提に、普段インフラを触らない方々が一番簡単に作業できることを考えて、リファレンス的に説明しています。
アプリ開発検証はLXC+Ansibleで楽ちんにやろう!
アプリ開発検証はLXC+Ansibleで楽ちんにやろう!
Mutsumi IWAISHI
社内の主に若手向けに喋ってきた。 すでにMySQLの運用テクニックは多くのTipsが出回っているので、考え方を中心に喋ってきた。
MySQLの運用でありがちなこと
MySQLの運用でありがちなこと
Hiroaki Sano
2016年7月27日 Database Lounge Tokyoで話した内容。 タイトルは名ばかりでリカバリとIn-MemoryDBの話が主体
トランザクションの設計と進化
トランザクションの設計と進化
Kumazaki Hiroki
2016年2月9日に開催された「MySQLとPostgreSQLと日本語全文検索」での発表資料です。 https://groonga.doorkeeper.jp/events/35295 発表時間の関係で、説明を割愛したスライドも含めてます。 ※「MySQLとPostgreSQLと日本語全文検索2」での発表資料は以下参照 http://www.slideshare.net/yoyamasaki/mysql-57-innodb
MySQL 5.7 InnoDB 日本語全文検索
MySQL 5.7 InnoDB 日本語全文検索
yoyamasaki
Akihiro Suda, NTT Corporation Docker CE 19.03 is going to support "Rootless mode", which allows running the entire Docker daemon and its dependencies as a non-root user on the host, so as to protect the host from malicious containers in a simple but very strong way. Rootless mode is also attractive for users who cannot get `sudo` permission for installing Docker on shared computing machines. e.g. HPC users. In this talk, Akihiro Suda, the author of the Rootless mode (PR: moby#38050), will explain how users can get started with Rootless mode. He will also explain the implementation details of Rootless mode and planned enhancements such as LDAP integration.
DCSF19 Hardening Docker daemon with Rootless mode
DCSF19 Hardening Docker daemon with Rootless mode
Docker, Inc.
FS900 Product Guide
FS900 Product Guide
Michael Martin
Rédigé en Mars 2013 Comment automatiser les tests ? Les différents types de tests automatisés : TU, BDD/TDD, GUI, TDC, Test de vie … Méthodes d’automatisation Capture/replay Projet de développement Techniques d’automatisation Data driven Keyword driven DSTL Composants technique pour l’automatisation Oracle Bouchon Techniques de comparaison Reporting
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2
Christophe Rochefolle
Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOps
LeClubQualiteLogicielle
Contenu connexe
Tendances
2021/11/18 db tech showcase 2021での発表資料
20211118 dbts2021 マイクロサービスにおけるApache Geodeの効果的な使い方
20211118 dbts2021 マイクロサービスにおけるApache Geodeの効果的な使い方
Masaki Yamakawa
イベント名:オープンソースカンファレンス2013 Tokyo/Spring 講師:日本仮想化技術 宮原 日時:2013/2/23 アジェンダ: • OpenStack概要 • OpenStack導入手順 – Ubuntu Server 12.04インストールと設定 – DevStackによるOpenStackインストール – イメージ作成 – インスタンス起動 – Floating IPによる外部接続設定 まずOpenStackを体験してみたい人向け 概要: OpenStackはOSSで開発が行われているクラウド環境構築のためのソフトウェアです。 本セッションでは、OpenStackの基本的な導入方法について分かりやすく解説します。
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門
VirtualTech Japan Inc.
Innovation EGG 第5回 『クラウド運用の本音』( https://innovationegg.doorkeeper.jp/events/30799 )での発表資料です。
2015-10-31 クラウドネイティヴ時代の運用を考える 〜 ドキュメント駆動運用へ
2015-10-31 クラウドネイティヴ時代の運用を考える 〜 ドキュメント駆動運用へ
Operation Lab, LLC.
Rakuten Tech Conference 2018 at 札幌
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
http://www.ospn.jp/osc2016-fall/ 2016/11/06
webエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのredis
nasa9084
Terraform, the first multi-vendor infrastructure tool from HashiCorp, helps you build, update, and version your infrastructure safely and efficiently. We love it for the simple syntax and because it lets us combine infrastructure from multiple vendors - reducing complexity and the effort that goes into managing multiple infrastructures. In this webinar we’ll explain what the Akamai Terraform Provider includes, how you can get started with the Akamai Terraform Provider, and we’ll showcase a demo for a variety of use-cases we documented from early adopters.
Manage Your Akamai-as-Code with Terraform
Manage Your Akamai-as-Code with Terraform
Akamai Developers & Admins
※Helidonのサポートに関するアップデートを盛り込んだ新バージョンを参照ください https://www.slideshare.net/oracle4engineer/java-helidon-232475979 翔泳社主催のソフトウェア開発者向けカンファレンス「Developers Summit 2020」(2020/2/14) 講演資料【14-C-5】 MicroProfileの仕様についてはこちらの資料を参考にしてください (OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界) http://tiny.cc/ochacafe-mp-slide
【改訂版あり】クラウド・ネイティブ時代に最適なJavaベースのマイクロサービス・フレームワーク ~ Helidonの実力を見極めろ!
【改訂版あり】クラウド・ネイティブ時代に最適なJavaベースのマイクロサービス・フレームワーク ~ Helidonの実力を見極めろ!
オラクルエンジニア通信
スクエアfreeセミナー第134回セミナー: CentOS終焉後のLinuxの新たな動き 発表資料 2022年9月22日(木)19:00〜20:30 https://www.opensquare.co.jp/free-seminar.html
忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
Masahito Zembutsu
社内勉強会で発表したスライドです。 インターネットの通信で使用されている金属導線と光ファイバに関して物理層の基礎的な部分を学ぶためのものです。 内容等に関して所属する会社とは一切関係ありません。
Physical Layer - Metal vs Fiber
Physical Layer - Metal vs Fiber
Yuya Rin
Ansible、Vagrant、Serverspec などを用いた 「インフラのコード化」 手法について、初心者向けに解説します。
Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門
Sho A
[A23] Oracle移行を簡単に。レプリケーションテクノロジーを使いこなす by Keishi Miyachi
[A23] Oracle移行を簡単に。レプリケーションテクノロジーを使いこなす by Keishi Miyachi
Insight Technology, Inc.
한글 배포용 문서의 모든 것
[16.06.25] 한글 배포용 문서의 모든 것
[16.06.25] 한글 배포용 문서의 모든 것
Hyeonmin Park
RHEL8.0でNVME-oFを設定してみました。やってみた系。
20190926_Try_RHEL8_NVMEoF_Beta
20190926_Try_RHEL8_NVMEoF_Beta
Kohei KaiGai
「Red Hat Enterprise Linuxの修正はどのように出荷されるか」のパロディ版です :)
Debianの修正はどのように出荷されるか
Debianの修正はどのように出荷されるか
Hideki Yamane
2015.11.21の第29回山陰ITPro勉強会で発表した内容です。 Linuxコンテナ管理のLXCと自動構成ツールのAnsibleを使って、ソフトウェアのバージョンアップの度に、試験・検証のためにOSインストールしてデプロイする手間を楽にしましょうという内容でした。 LXCやansibleを使う上で、一番手間が掛からないと思うubuntu14.04を前提に、普段インフラを触らない方々が一番簡単に作業できることを考えて、リファレンス的に説明しています。
アプリ開発検証はLXC+Ansibleで楽ちんにやろう!
アプリ開発検証はLXC+Ansibleで楽ちんにやろう!
Mutsumi IWAISHI
社内の主に若手向けに喋ってきた。 すでにMySQLの運用テクニックは多くのTipsが出回っているので、考え方を中心に喋ってきた。
MySQLの運用でありがちなこと
MySQLの運用でありがちなこと
Hiroaki Sano
2016年7月27日 Database Lounge Tokyoで話した内容。 タイトルは名ばかりでリカバリとIn-MemoryDBの話が主体
トランザクションの設計と進化
トランザクションの設計と進化
Kumazaki Hiroki
2016年2月9日に開催された「MySQLとPostgreSQLと日本語全文検索」での発表資料です。 https://groonga.doorkeeper.jp/events/35295 発表時間の関係で、説明を割愛したスライドも含めてます。 ※「MySQLとPostgreSQLと日本語全文検索2」での発表資料は以下参照 http://www.slideshare.net/yoyamasaki/mysql-57-innodb
MySQL 5.7 InnoDB 日本語全文検索
MySQL 5.7 InnoDB 日本語全文検索
yoyamasaki
Akihiro Suda, NTT Corporation Docker CE 19.03 is going to support "Rootless mode", which allows running the entire Docker daemon and its dependencies as a non-root user on the host, so as to protect the host from malicious containers in a simple but very strong way. Rootless mode is also attractive for users who cannot get `sudo` permission for installing Docker on shared computing machines. e.g. HPC users. In this talk, Akihiro Suda, the author of the Rootless mode (PR: moby#38050), will explain how users can get started with Rootless mode. He will also explain the implementation details of Rootless mode and planned enhancements such as LDAP integration.
DCSF19 Hardening Docker daemon with Rootless mode
DCSF19 Hardening Docker daemon with Rootless mode
Docker, Inc.
FS900 Product Guide
FS900 Product Guide
Michael Martin
Tendances
(20)
20211118 dbts2021 マイクロサービスにおけるApache Geodeの効果的な使い方
20211118 dbts2021 マイクロサービスにおけるApache Geodeの効果的な使い方
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門
2015-10-31 クラウドネイティヴ時代の運用を考える 〜 ドキュメント駆動運用へ
2015-10-31 クラウドネイティヴ時代の運用を考える 〜 ドキュメント駆動運用へ
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
webエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのredis
Manage Your Akamai-as-Code with Terraform
Manage Your Akamai-as-Code with Terraform
【改訂版あり】クラウド・ネイティブ時代に最適なJavaベースのマイクロサービス・フレームワーク ~ Helidonの実力を見極めろ!
【改訂版あり】クラウド・ネイティブ時代に最適なJavaベースのマイクロサービス・フレームワーク ~ Helidonの実力を見極めろ!
忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
Physical Layer - Metal vs Fiber
Physical Layer - Metal vs Fiber
Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門
[A23] Oracle移行を簡単に。レプリケーションテクノロジーを使いこなす by Keishi Miyachi
[A23] Oracle移行を簡単に。レプリケーションテクノロジーを使いこなす by Keishi Miyachi
[16.06.25] 한글 배포용 문서의 모든 것
[16.06.25] 한글 배포용 문서의 모든 것
20190926_Try_RHEL8_NVMEoF_Beta
20190926_Try_RHEL8_NVMEoF_Beta
Debianの修正はどのように出荷されるか
Debianの修正はどのように出荷されるか
アプリ開発検証はLXC+Ansibleで楽ちんにやろう!
アプリ開発検証はLXC+Ansibleで楽ちんにやろう!
MySQLの運用でありがちなこと
MySQLの運用でありがちなこと
トランザクションの設計と進化
トランザクションの設計と進化
MySQL 5.7 InnoDB 日本語全文検索
MySQL 5.7 InnoDB 日本語全文検索
DCSF19 Hardening Docker daemon with Rootless mode
DCSF19 Hardening Docker daemon with Rootless mode
FS900 Product Guide
FS900 Product Guide
Similaire à TDD où l’art de développer à l’endroit
Rédigé en Mars 2013 Comment automatiser les tests ? Les différents types de tests automatisés : TU, BDD/TDD, GUI, TDC, Test de vie … Méthodes d’automatisation Capture/replay Projet de développement Techniques d’automatisation Data driven Keyword driven DSTL Composants technique pour l’automatisation Oracle Bouchon Techniques de comparaison Reporting
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2
Christophe Rochefolle
Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOps
LeClubQualiteLogicielle
Le test, qu'il soit unitaire ou fonctionnel, est à la mode dans le monde du développement logiciel, suite entre autre à la mise en œuvre croissante des méthodes agiles et notamment de l'intégration continue ou des méthodes de développement telles que le TDD, le BDD ou la programmation par contrat. Récemment, ce phénomène a encore été amplifié au sein de la communauté PHP par l'apparition aux côtés de l'incontournable PHPUnit d'outils plus originaux tels que Behat, Praspel ou atoum qui permettent au développeur de rédiger des tests plus simplement. Pourtant, nous constatons tous les jours que le test conserve une grande part de mystère pour la plupart des développeurs, Bien souvent, ces derniers ne savent pas quoi tester, et encore moins comment écrire un test efficace ou mettre en place une politique de test pertinente. Certains s'interrogent par exemple sur la pertinence de leurs tests, se demandent s'il faut absolument tout tester, d'autres s'il est possible de tester la création d'un fichier, voir même s'il est intéressant de le faire, tandis que d'autres se demandent où se situe la frontière entre le test unitaire et le test fonctionnel ou s'il est nécessaire de tester toutes les méthodes d'une classe, alors que d'autres encore ne savent tout simplement pas par où commencer. Durant cette conférence, nous allons tenter, à l'aide de nos expériences respectives de créateur de framework de tests et de doctorat en informatique spécialisé dans le test, de répondre aux questions récurrentes que se pose une personne confrontée à la mise en place d'une politique de qualité logicielle en général et à l'écriture d'un test logiciel en particulier. À l'issue de cette foire aux questions didactique et interactive, vous devriez être capable d'aborder le test, indépendamment de sa nature, de manière plus sereine et efficace et produire ainsi un logiciel de la qualité que vous désirez.
Anatomie du test
Anatomie du test
Frederic Hardy
Cette session propose une réinterprétation des principes de l'ISTQB à travers un prisme Agile, défiant l'idée reçue que les grands principes de tests présentés par l'ISTQB sont uniquement centré sur des modèles séquentiels. En plongeant dans les fondamentaux de l'ISTQB, l'objectif est de démontrer leur intégration harmonieuse avec les méthodologies Agile, mettant en lumière leur adaptabilité intrinsèque. En combinant ISTQB et l'agilité, un nouveau cadre dynamique pour les pratiques d'assurance qualité se dessine, encourageant à défier le statu quo et à explorer le potentiel agile des techniques de tests modernes.
ATMTL23 - Dépasser les frontières : Réinterpréter les Principes ISTQB avec un...
ATMTL23 - Dépasser les frontières : Réinterpréter les Principes ISTQB avec un...
Agile Montréal
Une stratégie de tests, on sait tous que c’est nécessaire, mais sans forcément savoir à quoi ça ressemble. Une stratégie de tests est la façon de s’organiser pour montrer qu’une application est de qualité suffisante pour aller en production. Il ne s’agit donc pas d’un inventaire de tests manuels ou automatisés, mais d’un raisonnement avec des choix et des renoncements. Dans cette présentation nous verrons comment une stratégie de tests vise à optimiser la confiance et les preuves de qualité dans le cadre du développement d’un produit agile.
Strategie de test à agile tour bordeaux
Strategie de test à agile tour bordeaux
Nicolas Fédou
Présentation académique des tests unitaires
Test unitaires
Test unitaires
Mohamed Akrouh
Petit tout d'horizon des méthodologies de gestion de projet agiles, avec un focus mis sur XP et Scrum.
Methodologies de Developpement Agiles : Scrum et XP
Methodologies de Developpement Agiles : Scrum et XP
Nicolas Perriault
Test Driven Development (aka TDD) for agile teams
Test Driven Development (aka TDD) for agile teams
Test Driven Development (aka TDD) for agile teams
Thierry Gayet
De la livraison continue dans mon organisation?
De la livraison continue dans mon organisation?
Goood!
AgileTour Toulouse 2012 : de la livraison continue dans mon organisation
AgileTour Toulouse 2012 : de la livraison continue dans mon organisation
Agile Toulouse
Quelques slides autour de l'industrialisation des développements logiciels, les enjeux, les outils, quelques méthodes pour gagner en temps.
Industrialisation des développements logiciels
Industrialisation des développements logiciels
Sylvain Leroy
Une introduction aux méthodes agiles : introduction, historique et manifeste agile, Scrum, XP, Kanban.
Introduction aux méthodes agiles
Introduction aux méthodes agiles
Guillaume Collic
Conférence : Démystifier les xDD, par Cyril TARDIEU, Acp Qualife 05/10/17 - Sophia Antipolis
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
TelecomValley
comment améliorer la qualité d'un logiciel?
qualité logicielle (8).pdf
qualité logicielle (8).pdf
NoamHaythem
Perf university
Perf university
Henri Tremblay
Plusieurs s'engagent dans un projet DevOps avec espoir de voir la vélocité augmenter au fil du temps, remplissant la promesse légendaire de Scrum. La réalité est souvent tout autre, car opérer un système en production apporte son lot de surprises, et si l'on y ajoute de la dette technique et quelques années de vie utile, alors on peut facilement se retrouver dans une tempête parfaite. Voyons ensemble ces éléments qui viennent affecter notre précieuse vélocité.
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Agile Montréal
De la livraison continue dans mon organisation?
De la livraison continue dans mon organisation?
Goood!
Présentation effectuée au Blend Web Mix 2014 sur "Valider par des tests"
Valider par des tests - Blend
Valider par des tests - Blend
Christophe Villeneuve
Liens utiles
Université de la performance - Devoxx France
Université de la performance - Devoxx France
Marc Bojoly
Soyons honnête : nous aimerions tous tester nos plateformes, nos codes, mais personne ne le fait vraiment bien. Heureusement, ce n’est pas une fatalité, et il n’est jamais trop tard pour tester ! La vraie question est : comment tester ? Derrière toute stratégie de tests efficace, il y a une connaissance de tous les types de tests disponibles, de leurs coûts et de leurs utilités. Tout au long de cette journée, nous allons vous détailler les différents types de tests, du test unitaire au test de charge, afin que vous puissiez évaluer la pertinence de chacun dans votre propre contexte.
[Agile Testing Day] Introduction
[Agile Testing Day] Introduction
Cellenza
Similaire à TDD où l’art de développer à l’endroit
(20)
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2
20171122 03 - Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOps
Anatomie du test
Anatomie du test
ATMTL23 - Dépasser les frontières : Réinterpréter les Principes ISTQB avec un...
ATMTL23 - Dépasser les frontières : Réinterpréter les Principes ISTQB avec un...
Strategie de test à agile tour bordeaux
Strategie de test à agile tour bordeaux
Test unitaires
Test unitaires
Methodologies de Developpement Agiles : Scrum et XP
Methodologies de Developpement Agiles : Scrum et XP
Test Driven Development (aka TDD) for agile teams
Test Driven Development (aka TDD) for agile teams
De la livraison continue dans mon organisation?
De la livraison continue dans mon organisation?
AgileTour Toulouse 2012 : de la livraison continue dans mon organisation
AgileTour Toulouse 2012 : de la livraison continue dans mon organisation
Industrialisation des développements logiciels
Industrialisation des développements logiciels
Introduction aux méthodes agiles
Introduction aux méthodes agiles
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
qualité logicielle (8).pdf
qualité logicielle (8).pdf
Perf university
Perf university
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
De la livraison continue dans mon organisation?
De la livraison continue dans mon organisation?
Valider par des tests - Blend
Valider par des tests - Blend
Université de la performance - Devoxx France
Université de la performance - Devoxx France
[Agile Testing Day] Introduction
[Agile Testing Day] Introduction
Plus de EspritAgile
Conférence de F. Leger lors de l'Agile Tour Aix-Marseille 2018
Le gameday...un concept devopsludique
Le gameday...un concept devopsludique
EspritAgile
Conférence de B. Rechou lors de l'Agile Tour Aix-Marseille 2018
Prioriser c est sacrifier
Prioriser c est sacrifier
EspritAgile
Conférence de E. Esposito lors de l'Agile Tour Aix-Marseille 2018
Cargo Cult Agile
Cargo Cult Agile
EspritAgile
Conférence de J. Rubiano lors de l'Agile Tour Aix-Marseille 2018
Sudokanban
Sudokanban
EspritAgile
Conférence de W. Alazhar lors de l'Agile Tour Aix-Marseille 2018
Dances with unicorns
Dances with unicorns
EspritAgile
Conférence de L. Charlot lors de l'Agile Tour Aix-Marseille 2017
L'agilité ça marche aussi dans mon codir
L'agilité ça marche aussi dans mon codir
EspritAgile
Conférence de J. Mottez lors de l'Agile Tour Aix-Marseille 2017
Hé hi ! hé ho ! on va en rétro !
Hé hi ! hé ho ! on va en rétro !
EspritAgile
Conférence de P. Beroucry lors de l'Agile Tour Aix-Marseille 2017
A la conquête de l'agilité chez les développeurs
A la conquête de l'agilité chez les développeurs
EspritAgile
Les aventuriers des tests exploratoires : à la poursuite du bug perdu V. Théault / L. Bouhier
Les aventuriers des tests exploratoires : à la poursuite du bug perdu V. Théa...
Les aventuriers des tests exploratoires : à la poursuite du bug perdu V. Théa...
EspritAgile
Favoriser l'émergence et réduire les risques interculturels F. Walter / I. Komaroff
Favoriser l'émergence et réduire les risques interculturels F. Walter / I. Ko...
Favoriser l'émergence et réduire les risques interculturels F. Walter / I. Ko...
EspritAgile
Atelier Lean Canvas O. Lafontan
Atelier Lean Canvas O. Lafontan
Atelier Lean Canvas O. Lafontan
EspritAgile
Approche pédagogique ALPES P. Beaune / X. Serpaggi
Approche pédagogique ALPES P. Beaune / X. Serpaggi
Approche pédagogique ALPES P. Beaune / X. Serpaggi
EspritAgile
Périgrination d'un coach agile explorateur en systémique A. Gervais
Périgrination d'un coach agile explorateur en systémique A. Gervais
Périgrination d'un coach agile explorateur en systémique A. Gervais
EspritAgile
Kata des représentations systémiques A. Gervais
Kata des représentations systémiques A. Gervais
Kata des représentations systémiques A. Gervais
EspritAgile
Un retour d’expérience de la conduite de projet de réponse commerciale par un groupe de 14 consultants en management qui ne se connaissent pas, dans un délai de trois semaines, avec 8 modules à construire. 10 minutes de jeux en introduction, 30 minutes de présentation, 20 minutes d’échanges avec les participants.
La délégation créatrice de valeur ou comment créer de l’agilité autonome C. D...
La délégation créatrice de valeur ou comment créer de l’agilité autonome C. D...
EspritAgile
Mon équipe construit un produit innovant : Kuzzle. Pour nous, l'agilité ce n'est pas un buzz word et c'est bien plus que des post-its. Pour nous, l'agilité est un ingrédient clé de notre capacité à innover. Je parle d'innovation technique, d'innovation produit et d'innovation organisationnelle. Et aujourd'hui, je vais vous expliquer pourquoi et comment. Je vais vous raconter des évènements réels et des scènes de notre quotidien qui illustrent notre façon de vivre l'agilité. Et vous y trouverez peut-être des sources d'inspiration pour votre propre équipe !
L'agilité au service de l'innovation E. Esposito
L'agilité au service de l'innovation E. Esposito
EspritAgile
Présentation faite dans le cadre de l'Agile Tour Aix-Marseille 2015. Au coeur de Lean (et de l'Agile plus généralement) nous trouvons un triptyque : réalité, changements, objectifs. Or ce triptyque est aussi celui de bien des chemins traditionnels tels que la voie toltèque amérindienne. Nous (re)découvrirons alors la déclinaison toltèque de ce "pattern", au travers d'un mot "magique" et d'un ingrédient "secret" !
Au coeur de Lean : l'Humain T. Cros
Au coeur de Lean : l'Humain T. Cros
EspritAgile
Plus de EspritAgile
(17)
Le gameday...un concept devopsludique
Le gameday...un concept devopsludique
Prioriser c est sacrifier
Prioriser c est sacrifier
Cargo Cult Agile
Cargo Cult Agile
Sudokanban
Sudokanban
Dances with unicorns
Dances with unicorns
L'agilité ça marche aussi dans mon codir
L'agilité ça marche aussi dans mon codir
Hé hi ! hé ho ! on va en rétro !
Hé hi ! hé ho ! on va en rétro !
A la conquête de l'agilité chez les développeurs
A la conquête de l'agilité chez les développeurs
Les aventuriers des tests exploratoires : à la poursuite du bug perdu V. Théa...
Les aventuriers des tests exploratoires : à la poursuite du bug perdu V. Théa...
Favoriser l'émergence et réduire les risques interculturels F. Walter / I. Ko...
Favoriser l'émergence et réduire les risques interculturels F. Walter / I. Ko...
Atelier Lean Canvas O. Lafontan
Atelier Lean Canvas O. Lafontan
Approche pédagogique ALPES P. Beaune / X. Serpaggi
Approche pédagogique ALPES P. Beaune / X. Serpaggi
Périgrination d'un coach agile explorateur en systémique A. Gervais
Périgrination d'un coach agile explorateur en systémique A. Gervais
Kata des représentations systémiques A. Gervais
Kata des représentations systémiques A. Gervais
La délégation créatrice de valeur ou comment créer de l’agilité autonome C. D...
La délégation créatrice de valeur ou comment créer de l’agilité autonome C. D...
L'agilité au service de l'innovation E. Esposito
L'agilité au service de l'innovation E. Esposito
Au coeur de Lean : l'Humain T. Cros
Au coeur de Lean : l'Humain T. Cros
TDD où l’art de développer à l’endroit
1.
05/12/2017 #AgileTourSophia (par
@AgileTourSophia) Agile Tour Sophia Antipolis 7ème édition – 5 décembre 2017 1 TDD où l’art de développer à l’endroit Julien FARGEON
2.
05/12/2017 #AgileTourSophia (par
@AgileTourSophia) 2 Merci aux Sponsors !
3.
1.Agilité et Qualité 2.Les
tests unitaires 3.TDD – Test Driven Development 4.Quelle approche choisir ? 5.Les styles de TDD © SOFTEAM Cadextan 2017
4.
1 QUALITÉ ET
AGILITÉ © SOFTEAM Cadextan 2017 4
5.
QUALITÉ ET AGILITÉ ©
SOFTEAM Cadextan 2017 5 Porter une attention continue à l’excellence technique 9ème principe du Manifeste Agile
6.
QUALITÉ ET AGILITÉ
– POURQUOI ? © SOFTEAM Cadextan 2017 6 Favoriser l’adaptation au changement plus que le suivi d’un plan 4ème valeur du Manifeste Agile
7.
QUALITÉ ET AGILITÉ ©
SOFTEAM Cadextan 2017 7
8.
QUALITÉ ET AGILITÉ · Vu
sur le Web… │ Any fool can write code that a computer can understand. Good programmers write code that Humans can understand. Martin Fowler │ My project is 90 % done. I hope the second half goes as well. Scott W. Ambler │ Codez toujours en pensant que celui maintiendra votre code est un psychopathe qui connait votre adresse. Martin Golding © SOFTEAM Cadextan 2017 8
9.
QUALITÉ ET AGILITÉ ©
SOFTEAM Cadextan 2017 9 Une application informatique est de qualité lorsque le coût d’ajout d’une fonctionnalité reste stable
10.
STRATÉGIE DE TESTS
HABITUELLE © SOFTEAM Cadextan 2017 10 Spécification Réalisation Tests
11.
QUALITÉ ET AGILITÉ · Les
problèmes qui surviennent: │ « La spécification est mal comprise par les développeurs » │ « La spécification a été interprétée » │ « Vous n’avez pas compris ce qu’on voulait! » │ « Ce n’est pas ce que dit la spécification! » │ « Aurais-tu un exemple à me donner pour que je comprenne un peu mieux ? » │ « Les développeurs ne comprennent rien à notre métier » │ « Le client ne connaît pas l’informatique! » © SOFTEAM Cadextan 2017 11
12.
QUALITÉ ET AGILITÉ · Travailler
en collaboration : │ Des spécifications sont basées sur des exemples: • Rassurent l’équipe quant à la conformité au besoin • Réduisent les possibles mauvaises interprétations • Cassent la barrière d’un langage métier parfois complexe © SOFTEAM Cadextan 2017 12
13.
QUALITÉ ET AGILITÉ · Exemples
de spécifications par l’exemple: │ Calculatrice • Lorsque je saisis 30, j’appuie sur le bouton ‘+’, je saisis 45, j’appuie sur le bouton égal, alors j’obtiens 75 │ Orthodromie • La distance orthodromique entre Paris (48°51’N – 2°21’E) et Montpellier (43°36’N – 3°53’E) et de 595 Kms │ Calcul d’agios • Sur le 4ème trimestre 2012, un compte est débiteur de 451€ du 13/11 au 28/11 et de 342€ du 08/12 au 27/12, avec un taux d’intérêt de 20% annuel. Les intérêts sur la période sont de 7,27€ © SOFTEAM Cadextan 2017 13
14.
QUALITÉ ET AGILITÉ · Ce
qui est essentiel : · © SOFTEAM Cadextan 2017 14
15.
PILOTAGE PAR LES
TESTS · Principe : · Ces tests vont guider le développement et la conception © SOFTEAM Cadextan 2017 15
16.
APPROCHE AGILE · Vision de
l’avancement dans un projet traditionnel : © SOFTEAM Cadextan 2017 16 Analyse Design Dev Test Avancement
17.
APPROCHE AGILE · Vision de
l’avancement dans un projet Agile : © SOFTEAM Cadextan 2017 17 Avancement Analyse Design Dev Test Fct 1 Fct N …
18.
QUADRANT DE TEST
AGILE © SOFTEAM Cadextan 2017 18 Fonctionnels Exemples Démos Acceptation Prototype Exploratoires Utilisateur Ergonomiques Alpha/beta Unitaires Intégration Composant Performance Sécurité Rupture Aideaudéveloppement Métier Technique Aideàlavalidation
19.
QUE FAUT-IL TESTER? · Pyramide
des tests de Mike Cohn © SOFTEAM Cadextan 2017 19 UI Intégration Unitaires
20.
AUTOMATISATION · Pourquoi automatiser les
tests ? © SOFTEAM Cadextan 2017 20 Feedback Permanent
21.
EXTREME PROGRAMMING © SOFTEAM
Cadextan 2017 21 http://www.extremeprogramming.org/map/images/loop.gif
22.
POURQUOI AUTOMATISER LES
TESTS? · Economiquement pertinent │ Dans la majorité des cas │ Dépend notamment de la durée de vie de l’application et du coût du bug en production · Plus fiable qu’un test manuel de l’ensemble du système · Pour réaliser des opérations complexes exécutables par une machine · Garantir le Feedback du bon fonctionnement de tout ce qui a été développé · Radiateur d’information : Améliore l’ambiance et le moral de l’équipe par rapport à ce qui a été accomplis © SOFTEAM Cadextan 2017 22
23.
2 LES TESTS
UNITAIRES © SOFTEAM Cadextan 2017 23
24.
DÉFINITIONS · Un test unitaire
est un test… │Portant sur une ou partie de l’application testable et la plus petite possible, isolée du reste de l’application │Qui détermine si cette partie s’exécute correctement vis-à-vis d’un comportement attendu · Partie de code testée = SUT │SUT : System Under Test │Peut être une classe ou un petit ensemble de classe (namespace/ package) · Un test est avant tout un exemple ! │Exprimé avec des données significatives © SOFTEAM Cadextan 2017 24
25.
EXEMPLE DE TEST
UNITAIRE © SOFTEAM Cadextan 2017 25 [TestClass] class CalculatorTests { [TestMethod] public void shouldAddTwoNumbers() { Calculator calculator = new Calculator(); int result = calculator.Add(1,2); Assert.AreEqual(3, result); } }
26.
STRUCTURE D’UN TEST
UNITAIRE · Structure de base : 3 A │Arrange │Act │Assert © SOFTEAM Cadextan 2017 26 [TestClass] class CalculatorTests { [TestMethod] public void shouldAddTwoNumbers() { // Arrange Calculator calculator = new Calculator(); // Act int result = calculator.Add(1,2); // Assert Assert.AreEqual(3, result); } }
27.
STRUCTURE D’UN TEST
UNITAIRE · Structure issue du BDD │Given │When │Then © SOFTEAM Cadextan 2017 27 [TestClass] class CalculatorTests { [TestMethod] public void shouldAddTwoNumbers() { // Given Calculator calculator = new Calculator(); // When int result = calculator.Add(1,2); // Then Assert.AreEqual(3, result); } }
28.
ORGANISATION D’UN TEST
UNITAIRE · 1 méthode par test · 1 concept testé par test │= 1 assertion ? │Ex : Calculator • 1 test pour la division • 1 test pour la division par zéro · 1 classe de test par SUT (System Under Test) │« Single Responsibility Principle » (S.O.L.I.D) © SOFTEAM Cadextan 2017 28
29.
LIBRAIRIES DE TESTS
UNITAIRES · Plusieurs librairies en fonction des langages │ xUnit • La plus populaire • Junit, Nunit, CppUnit, etc. │ Jmockit, Mockito │ PITest │ Etc. · Déclaration, préparation et nettoyage des tests par annotations (ex: Java) · Utilisation d’assertions │ Rendent le test auto-validant │ Disponibles sous forme de classes et méthodes fournies par les frameworks • assertEquals, assertNull • assertFalse, assertTrue, fail • Etc. © SOFTEAM Cadextan 2017 29 @Test public void test_method_1() { System.out.println("@Test - test_method_1"); } // Run once, e.g. Database connection, connection pool @BeforeClass public static void runOnceBeforeClass() { System.out.println("@BeforeClass - runOnceBeforeClass"); } // Run once, e.g close connection, cleanup @AfterClass public static void runOnceAfterClass() { System.out.println("@AfterClass - runOnceAfterClass"); } // Should rename to @BeforeTestMethod // e.g. Creating an similar object and share for all @Test @Before public void runBeforeTestMethod() { System.out.println("@Before - runBeforeTestMethod"); } // Should rename to @AfterTestMethod @After public void runAfterTestMethod() { System.out.println("@After - runAfterTestMethod"); }
30.
MNÉMOTECHNIQUE · F.I.R.S.T. │Fast │Independant │Repeatable │Self-Validating │Timely © SOFTEAM Cadextan
2017 30
31.
3 TDD –
TEST DRIVEN DEVELOPMENT © SOFTEAM Cadextan 2017 31
32.
DÉFINITION TDD Test · Driven · Development © SOFTEAM
Cadextan 2017 32 Discipline de conception Conception émergente Centré sur le besoin Refactoring intensif
33.
DÉFINITION TDD · Test Driven
Development │La rédaction des tests est la première étape de la formalisation du codage │Chaque élément de code n’est écrit QUE pour permettre de passer le test │À chaque modification du code : • on lance tous les tests écrits par tous les développeurs • On sait immédiatement si quelque chose ne fonctionne plus │Les tests sont conservés et maintenus jusqu’à la fin du projet │Le code est remanié · Avantages : │Interaction entre les cas de tests et la compréhension fine des besoins fonctionnels │Adhérence du code aux tests • Intégration forte de la qualité logicielle │Le code écrit en TDD est plus maintenable, mieux découpé │Sécurise le développement © SOFTEAM Cadextan 2017 33 Communication !
34.
LE CYCLE TDD 1.
Étapes : 1. RED 2. GREEN 3. REFACTOR © SOFTEAM Cadextan 2017 34 http://dbottiau.azurewebsites.net/unit-testing/
35.
PROCESSUS TRADITIONNEL © SOFTEAM
Cadextan 2017 35 Spécification Développement Tests Design Non testable Bugs
36.
TDD © SOFTEAM Cadextan
2017 36 Spécification Développement Tests Design Cycles très courts FAIL FAST, FAIL SAFE
37.
EN RÉSUMÉ · TDD : │1
discipline de conception de code │1 cycle : RED – GREEN – REFACTOR • Approche test F.I.R.S.T. · Intérêt du test First : │Le test est écrit │Le code testé est testable par nature • Donc le design est meilleur │Les assertions sont validées • Par l’étape RED │Nécessite de se focaliser sur ce qui est nécessaire • Evite d’écrire du code inutile │Chaque test est un pas en avant │Le debugger est beaucoup moins nécessaire © SOFTEAM Cadextan 2017 37
38.
DESIGN EMERGEANT · « First make
it work, then make it right » │Le code fonctionne │Le code est ensuite refactoré · Refactoring │Elimination de la duplication │Couplage lâche · Les classes et méthodes créées le sont par nécessité · Le refactoring est réalisé en permanence │Chaque opportunité d’améliorer le code est saisie (Scout toujours !) │Les tests sont là en protection, à tout moment © SOFTEAM Cadextan 2017 38
39.
MNÉMOTECHNIQUE - SIMPLICITÉ · Y.A.G.N.I. │
« You aren’t Gonna Need It ! » │ Tout ce qui n’est pas absolument utile à un moment donnée n’est pas implémenté │ Pas d’optimisation prématurée · Les décisions sont retardées │ Eviter de payer le coût de décision prises trop tôt · Faire appel aux patterns quand il le faut │ Inutile d’appliquer des patterns si le besoin n’est pas réel · Faire simple ≠ Facile │ Il est difficile de faire simple © SOFTEAM Cadextan 2017 39
40.
4 QUELLE APPROCHE
CHOISIR? © SOFTEAM Cadextan 2017 40
41.
2 APPROCHES TDD · Approche
Middle-out │Avantages : • Permet de se concentrer d’abord sur le domaine • Séparation des préoccupations plus simples │Inconvénients : • Peut conduire à en faire « trop », au-delà de ce qui est nécessaire © SOFTEAM Cadextan 2017 41 UI Services Data Access Domain
42.
2 APPROCHES TDD · Approche
Outside-In │Avantages : • Tout est guidé par le besoin primaire │Inconvénients : • Peut conduire à donner trop de responsabilités aux préoccupations de haut niveau © SOFTEAM Cadextan 2017 42 UI Services Data Access Domain
43.
5 LE TDD
C’EST STYLÉ © SOFTEAM Cadextan 2017 43
44.
LES DOUBLURES Tester une
classe qui n’a aucune dépendance est généralement assez simple. La difficulté va commencer à se faire sentir (et cela devrait arriver presque tout le temps) lorsque les classes vont utiliser des dépendances. Nous avons deux solutions pour tester une classe : 1.Tester la classe avec toutes ses dépendances, et si vous comptez faire ça, alors il serait bien que vous sortiez (Nan mais restez car le plus important c’est de tester le comportement de la classe). 2.Ou bien, nous pouvons essayer d’isoler notre classe de ses dépendances : C’est là où interviennent les tests doubles. © SOFTEAM Cadextan 2017 44
45.
LES DOUBLURES · Doublures │Terme générique
qui identifie les objets utilisés en remplacement d’autres objets à des fins de test │Duplications de classes qui sont plus coopérative que les vrais !! · Permettent d’isoler le SUT du reste de système │Et donc d’écrire de vrais tests unitaires · Simplifient l’exécution du test │Pas besoin d’un environnement spécifique · Rendent l’exécution du test plus rapide © SOFTEAM Cadextan 2017 45
46.
LES DUMMIES · Inoffensifs · Servent de
paramètres à une méthode ou à un constructeur · Permettent simplement d’appeler correctement la méthode ou le constructeur · N’ont pas d’influence sur le code testé │ Sinon c’est un fake ou un mock © SOFTEAM Cadextan 2017 46 DUMMY N’EST RIEN D’AUTRE QU’UNE CLASSE DONT ON SE FICHE DE COMMENT ELLE EST UTILISÉE.
47.
LES DUMMIES © SOFTEAM
Cadextan 2017 47 interface UserInterface { public function getPassword(); public function getUsername(); } class DummyUser implements UserInterface { public function getPassword() { return null; } public function getUsername() { return null; } }
48.
LES STUBS · Paramétrés pour
se comporter d’une certaine façon et retourner certaines valeurs… © SOFTEAM Cadextan 2017 48 http://xunitpatterns.com
49.
LES STUBS © SOFTEAM
Cadextan 2017 49 http://xunitpatterns.com UN STUB EST UNE CLASSE QUI VA RÉPONDRE EXACTEMENT CE QUE J’ATTENDS class StubUser implements UserInterface { public function getPassword() { return 'foo'; } public function getUsername() { return 'Marvin'; } } class SendEmail { private $user; public function __construct(UserInterface $user) { $this->user = $user; } public function forgotPassword() { return sprintf( 'Hi %s, your password is %s', $this->user->getUsername(), $this->user->getPassword() ); } }
50.
LES FAKES · Remplace une
implémentation existante en rendant son utilisation plus appropriée pour les tests │ Exemple : base de données © SOFTEAM Cadextan 2017 50 http://xunitpatterns.com UN FAKE EST UN PEU COMME UN STUB, MAIS AVEC UN PEU DE LOGIQUE, UNE SORTE DE MINI-IMPLÉMENTATION DE LA VRAIE CLASSE
51.
LES SPIES · Un stub
qui enregistre des informations lorsqu’il est appelée, ces informations servant lors des assertions │ Exemple : Serveur de mails © SOFTEAM Cadextan 2017 51 UN SPY VA AVOIR LE MÊME COMPORTEMENT QU’UN STUB, MAIS IL VA NOUS PERMETTRE D’OBTENIR DES INFORMATIONS SUPPLÉMENTAIRES, UNE FOIS LE TEST EFFECTUÉ.
52.
LES MOCKS · Stubs dont
on vérifie s’ils se sont comportés comme prévu © SOFTEAM Cadextan 2017 52 IL S’AGIT SIMPLEMENT D’UN OBJET QUI EST UNE SUBSTITUTION COMPLÈTE DE L’IMPLÉMENTATION ORIGINALE D’UNE CLASSE CONCRÈTE
53.
LES MOCKS © SOFTEAM
Cadextan 2017 53 class MockUser implements UserInterface { private $numberCalled = 0; private $numberShouldBeCalled = 0; public function getPassword() { return 'foo'; } public function getUserName() { $this->numberCalled++; return 'Marvin'; } public function setExpectedNumberCalls($number) { $this->numberShouldBeCalled = $number; } public function verify() { if ($this->numberShouldBeCalled != $this->numberCalled) { throw new Exception(sprintf( 'Actual number of calls %d - expected %d.', $this->numberCalled, $this->numberShouldBeCalled )); } return true; } } L’UTILITÉ D’UN MOCK : UNE VÉRIFICATION COMPORTEMENTALE
54.
DES QUESTIONS? © SOFTEAM
Cadextan 2017 54
55.
DES QUESTIONS? © SOFTEAM
Cadextan 2017 55
56.
DES QUESTIONS? © SOFTEAM
Cadextan 2017 56
57.
05/12/2017 #AgileTourSophia (par
@AgileTourSophia) 57 Merci aux Sponsors ! Julien FARGEON
Télécharger maintenant