L'Approche SMV améliore la qualité en général dans le cycle de vie du développement d'un application grâce à l'interconnexion entre la gestion des exigences, la modélisation, la simulation et le test automatique
Adoption incrémentale des tests dans VS ALMGrégory Ott
Cette présentation a été organisée par le @MUGLyon => http://muglyon.github.io/
Adoption incrémentale des tests dans Visual Studio ALM. Du test exploratoire au pilotage par l'analyse d'impact :
Découvrez comment MTM peut soutenir de façon progressive votre effort de test.
Que vous soyez Développeur et que vous ayez envie de participer à l'effort de test ;
Que vous soyez Analyste métier et que vous souhaitiez capitaliser sur vos critères d'acceptances ;
Que vous soyez Testeur et que vous souhaitez mettre de l'ordre dans votre patrimoine de test ;
Que vous soyez responsable de l'usine logicielle et que vous souhaitiez capitaliser sur votre plateforme préférée ;
Que vous soyez manager et que vous souhaitez améliorer votre visibilité sur les tests ;
Ou que vous ayez simplement envie d'en apprendre plus sur les tests avec la plateforme Visual Studio ALM : cette présentation est faites pour vous !
Adoption incrémentale des tests dans Visual Studio ALM. Du test exploratoire au pilotage par l'analyse d'impact :
Découvrez comment MTM peut soutenir de façon progressive votre effort de test.
Que vous soyez Développeur et que vous ayez envie de participer à l'effort de test ;
Que vous soyez Analyste métier et que vous souhaitiez capitaliser sur vos critères d'acceptances ;
Que vous soyez Testeur et que vous souhaitez mettre de l'ordre dans votre patrimoine de test ;
Que vous soyez responsable de l'usine logicielle et que vous souhaitiez capitaliser sur votre plateforme préférée ;
Que vous soyez manager et que vous souhaitez améliorer votre visibilité sur les tests ;
Ou que vous ayez simplement envie d'en apprendre plus sur les tests avec la plateforme Visual Studio ALM : cette présentation est faites pour vous !
Animé par @gregory_ott
ISTQB® (International Software Testing Qualifications Board) a défini le système «ISTQB® Certified Tester» qui est devenu le leader mondial dans la certificationdescompétencesentestsdelogiciels. • Cette formation vous permettra d'acquérir les fondamentaux en test logiciel desystèmed'information. • Vous comprendrez la place des tests dans le cycle de vie du logiciel et verrezlestechniquespour lesconcevoiretlesgérer. • Cette formation vous préparera également à la certification de l'ISTQB "Foundation".
L'Approche SMV améliore la qualité en général dans le cycle de vie du développement d'un application grâce à l'interconnexion entre la gestion des exigences, la modélisation, la simulation et le test automatique
Adoption incrémentale des tests dans VS ALMGrégory Ott
Cette présentation a été organisée par le @MUGLyon => http://muglyon.github.io/
Adoption incrémentale des tests dans Visual Studio ALM. Du test exploratoire au pilotage par l'analyse d'impact :
Découvrez comment MTM peut soutenir de façon progressive votre effort de test.
Que vous soyez Développeur et que vous ayez envie de participer à l'effort de test ;
Que vous soyez Analyste métier et que vous souhaitiez capitaliser sur vos critères d'acceptances ;
Que vous soyez Testeur et que vous souhaitez mettre de l'ordre dans votre patrimoine de test ;
Que vous soyez responsable de l'usine logicielle et que vous souhaitiez capitaliser sur votre plateforme préférée ;
Que vous soyez manager et que vous souhaitez améliorer votre visibilité sur les tests ;
Ou que vous ayez simplement envie d'en apprendre plus sur les tests avec la plateforme Visual Studio ALM : cette présentation est faites pour vous !
Adoption incrémentale des tests dans Visual Studio ALM. Du test exploratoire au pilotage par l'analyse d'impact :
Découvrez comment MTM peut soutenir de façon progressive votre effort de test.
Que vous soyez Développeur et que vous ayez envie de participer à l'effort de test ;
Que vous soyez Analyste métier et que vous souhaitiez capitaliser sur vos critères d'acceptances ;
Que vous soyez Testeur et que vous souhaitez mettre de l'ordre dans votre patrimoine de test ;
Que vous soyez responsable de l'usine logicielle et que vous souhaitiez capitaliser sur votre plateforme préférée ;
Que vous soyez manager et que vous souhaitez améliorer votre visibilité sur les tests ;
Ou que vous ayez simplement envie d'en apprendre plus sur les tests avec la plateforme Visual Studio ALM : cette présentation est faites pour vous !
Animé par @gregory_ott
ISTQB® (International Software Testing Qualifications Board) a défini le système «ISTQB® Certified Tester» qui est devenu le leader mondial dans la certificationdescompétencesentestsdelogiciels. • Cette formation vous permettra d'acquérir les fondamentaux en test logiciel desystèmed'information. • Vous comprendrez la place des tests dans le cycle de vie du logiciel et verrezlestechniquespour lesconcevoiretlesgérer. • Cette formation vous préparera également à la certification de l'ISTQB "Foundation".
Guide de tests fonctionnels. En utilisant ces principes, mes équipes ont réduit de 90% les défauts détectés en tests d’acceptation (UAT) et permis la livraison de trois projets avec zéro défaut.
conception des pièces plastiques pour l'injection c'est une discipline de la plasturgie qui présente les presses d'injection, les paramétres d'injection, la conception des moules afin d'aider d'aider les moulistes dans la conception de leurs articles
Les tests logiciels restent une approche incontournable dans le développement logiciel, surtout avant la mise en production du produit – logiciel développé. En RD Congo, la pratique de tests semble n’est pas encore du tout formalisée dans la personne des professionnels TI congolais. Ceux qui s’aventurent la réalisent sans le respect des référentiels normatifs applicables. C’est pourquoi, avec notre retour d’expérience de chef de projet Ident – ITS à l’UEPN – DDR, dans le cadre d’un développement en impartition, avec la firme BIO – ID Technologies SA, du logiciel « Payment Manager », nous avons jugé bon de fournir à notre communauté des éléments adaptés aidant à l’élaboration d’un modèle de tests logiciels sous la forme d’une ébauche unifiée et simpliste. Elle est produite à partir à partir de l’expression de besoins des utilisateurs, des processus et/ou règles métiers de l’UEPN – DDR, etc. qui ont été, par la suite, formalisés en modèle d’exigences fonctionnelles. Utilisant une démarche de modélisation empruntée à l’IDM, cette ébauche a donc pour but de faciliter la réalisation et l’exécution de tests logiciels de niveau supérieur (système et validation) par une équipe de développement logiciel suivant les conditions contractuelles et environnementales. C’est donc un élément d’entrée de jeux à produire par les acteurs impliqués dans un projet de développement lors de la remise en question ou pas du produit – logiciel attendu des utilisateurs.
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
Note méthodologique du cabinet Innhotep sur le "roadmapping" technologique, méthode de "prospective induction" (résultats intermédiaires vers une vision à 5-10 ans en sélectionnant un avenir possible mais pas certain dans le domaine des usages ou des performances).
Pour plus d'informations et de publications d'Innhotep : http://www.innhotep.com/fr/publications/
Etudes empiriques sur l’evolution de la qualite logicielleTom Mens
Présentation lors de la session RIMEL du Groupement de Recherche (GdR) sur le Génie de la Programmation de du Logiciel (GPL), Lille, 8 juin 2011, France
Some Pitfalls with Python and Their Possible Solutions v1.0Yann-Gaël Guéhéneuc
Python is a very popular programming language that comes with many pitfalls. This presentation describes some of these pitfalls, especially when they could trick unsuspecting object-oriented developers. It proposes solutions to these pitfalls, in particular regarding inheritance, which is easily broken because of the implementation choice of Python for explicit delegation, its method resolution order, and its use of the C3 algorithm. It discusses some advantages of using Python, especially regarding meta-classes.
Advice for writing a NSERC Discovery grant application v0.5Yann-Gaël Guéhéneuc
NSERC Discovery grant applications are judged according to four criteria: (1) Excellence of the researcher, (2) Merit of the proposal, (3) Contribution to the training of HQP, and (4) Cost of research. Each criterion has six possible merit indicators: Exceptional, Outstanding, Very strong, Strong, Moderate, and Insufficient. This presentation describes the process from a candidate's point of view and a reviewer's point of view. It discusses funding decisions, including bins and ER vs. ECR. It gives some advice, including graduating PhD students, having a story, and limiting the number of main objectives.
Guide de tests fonctionnels. En utilisant ces principes, mes équipes ont réduit de 90% les défauts détectés en tests d’acceptation (UAT) et permis la livraison de trois projets avec zéro défaut.
conception des pièces plastiques pour l'injection c'est une discipline de la plasturgie qui présente les presses d'injection, les paramétres d'injection, la conception des moules afin d'aider d'aider les moulistes dans la conception de leurs articles
Les tests logiciels restent une approche incontournable dans le développement logiciel, surtout avant la mise en production du produit – logiciel développé. En RD Congo, la pratique de tests semble n’est pas encore du tout formalisée dans la personne des professionnels TI congolais. Ceux qui s’aventurent la réalisent sans le respect des référentiels normatifs applicables. C’est pourquoi, avec notre retour d’expérience de chef de projet Ident – ITS à l’UEPN – DDR, dans le cadre d’un développement en impartition, avec la firme BIO – ID Technologies SA, du logiciel « Payment Manager », nous avons jugé bon de fournir à notre communauté des éléments adaptés aidant à l’élaboration d’un modèle de tests logiciels sous la forme d’une ébauche unifiée et simpliste. Elle est produite à partir à partir de l’expression de besoins des utilisateurs, des processus et/ou règles métiers de l’UEPN – DDR, etc. qui ont été, par la suite, formalisés en modèle d’exigences fonctionnelles. Utilisant une démarche de modélisation empruntée à l’IDM, cette ébauche a donc pour but de faciliter la réalisation et l’exécution de tests logiciels de niveau supérieur (système et validation) par une équipe de développement logiciel suivant les conditions contractuelles et environnementales. C’est donc un élément d’entrée de jeux à produire par les acteurs impliqués dans un projet de développement lors de la remise en question ou pas du produit – logiciel attendu des utilisateurs.
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
Note méthodologique du cabinet Innhotep sur le "roadmapping" technologique, méthode de "prospective induction" (résultats intermédiaires vers une vision à 5-10 ans en sélectionnant un avenir possible mais pas certain dans le domaine des usages ou des performances).
Pour plus d'informations et de publications d'Innhotep : http://www.innhotep.com/fr/publications/
Etudes empiriques sur l’evolution de la qualite logicielleTom Mens
Présentation lors de la session RIMEL du Groupement de Recherche (GdR) sur le Génie de la Programmation de du Logiciel (GPL), Lille, 8 juin 2011, France
Some Pitfalls with Python and Their Possible Solutions v1.0Yann-Gaël Guéhéneuc
Python is a very popular programming language that comes with many pitfalls. This presentation describes some of these pitfalls, especially when they could trick unsuspecting object-oriented developers. It proposes solutions to these pitfalls, in particular regarding inheritance, which is easily broken because of the implementation choice of Python for explicit delegation, its method resolution order, and its use of the C3 algorithm. It discusses some advantages of using Python, especially regarding meta-classes.
Advice for writing a NSERC Discovery grant application v0.5Yann-Gaël Guéhéneuc
NSERC Discovery grant applications are judged according to four criteria: (1) Excellence of the researcher, (2) Merit of the proposal, (3) Contribution to the training of HQP, and (4) Cost of research. Each criterion has six possible merit indicators: Exceptional, Outstanding, Very strong, Strong, Moderate, and Insufficient. This presentation describes the process from a candidate's point of view and a reviewer's point of view. It discusses funding decisions, including bins and ER vs. ECR. It gives some advice, including graduating PhD students, having a story, and limiting the number of main objectives.
Ptidej Architecture, Design, and Implementation in Action v2.1Yann-Gaël Guéhéneuc
A set of process, architecture, design, and implementation patterns from a real, large program, the Ptidej Tool Suite. This set shows concrete problems and their solutions in Java. It includes: Be A Profiler, Tests as Documentation, Multi-layered Architecture, Proxy Console, Proxy Disk, Hidden Language, Internal Observer, Run-time Deprecation, String Parsimony, Object Identity, Object Address, Final Construction, StringBuffer as Positioning Element.
Examples of (bad) consequences of a lack of software quality and some solutions. This presentation presents some examples of (bad) consequences of a lack of software quality, in particular how poor software quality led to the direct deaths of 89 people. It then provides some background on software quality, especially the concept of Quality Without a Name. It then discusses many principles, their usefulness, and their positive consequences on software quality. Some of these principles are well-known in object-oriented programming while many others are taken from the book 97 Programmers. They include: abstraction, encapsulation, inheritance, types, polymorphism, SOLID, GRASP, YAGNI, KISS, DRY, Do Not Reinvent the Wheel, Law of Demeter, Beware of Assumptions, Deletable Code, coding with reason, and functional programming. They pertain to dependencies, domains, and tools.
(In details: Beautify is Simplicity, The Boy Scout Rule, You Gotta Care About the Code, The Longevity of Interim Solutions, Beware the Share, Encapsulate Behaviour not Just State, Single Responsibility Principle, WET Dilutes Performance Bottlenecks, Convenience Is Not an -ility, Code in the Language of the Domain, Comment Only What the Code Cannot Say, Distinguish Business Exception from Technical, Prefer Domain-specific Types to Primitive Types, Automate Your Coding Standards, Code Layout Matters, Before You Refactor, Improve Code by Removing It, Put the Mouse Down and Step Away from the Keyboard)
Some Pitfalls with Python and Their Possible Solutions v0.9Yann-Gaël Guéhéneuc
Python is a very popular programming language that comes with many pitfalls. This presentation describes some of these pitfalls, especially when they could trick unsuspecting object-oriented developers. It proposes solutions to these pitfalls, in particular regarding inheritance, which is easily broken because of the implementation choice of Python for explicit delegation, its method resolution order, and its use of the C3 algorithm. It discusses some advantages of using Python, especially regarding meta-classes.
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...Yann-Gaël Guéhéneuc
Unicode is currently the world standard for encoding text. It supports all of the world's major writing systems. With its version 15.1 of 2023/09/12, it defines 149,813 characters and 161 scripts. This presentation starts with the, seemingly, simple example of the polar bear emoji. It then defines the key terms of any such standard. It then asks how a software system can render orthographic characters into glyphs, i.e., to render characters into (combined) glyphs. It introduces the concept of abstract characters and describes a brief history of encoding standards, from ASCII to Unicode. It shows how, by adding one level of indirection, the Unicode standard answers this question. It then presents code examples to display text written in Unicode: HarfBuzz (for shaping) and FreeType (for rendering).
An Explanation of the Halting Problem and Its ConsequencesYann-Gaël Guéhéneuc
The halting problem is an important, famous, and consequential problem in computer science. It is about writing a program that decides if another problem will stop. There is no general solution to this problem, which shows that such a problem is undecidable, with important consequences: for example, it is not possible to write tests that would exhaustively test entirely an arbitrary program. This presentation was written in collaboration with <a href="https://www.iro.umontreal.ca/~hahn/">Gena Hahn</a>.
A presentation summarising FPGAs, their history, their benefits, and showing how to program them. It provides some historical background on the development of computers, from the Difference Engine to the Intel 4004 to the AMD Ryzen Threadripper PRO 3995WX. It shows how the number of transistors increased dramatically but also how this increase led to more complexity and more bugs. It then introduces Field-programmable gate arrays (FPGA) as an alternative. It then presents how to program such FPGA using data-flow graphs. It discusses some tools (Yosys, NextPnR, and IceStorm) and illustrates them with a typical "Hello World" (i.e., blinking an LED) using Cygwin on Windows 10.
A set of brief presentations of some of the women and men who made the history of computer science and software engineering.
- 1936: Alan Turing
- 1948: Claude Elwood Shannon
- 1950: Grace Murray Hopper
- 1960: John McCarthy
- 1966: Frances E. Allen
- 1967: Ole-Johan Dahl
- 1967: Kristen Nygaard
- 1969: Charles A. R. Hoare
- 1970: Edgar F. Codd
- 1972: Dave Parnas
- 1974: Manny Lehman
- 1975: Frederick Brooks
- 1986: Edward Yourdon
- 1987: Barbara Liskov
- 1994: Erich Gamma
- 1997: Grady Booch
- 2001: Butler Lampson
A tutorial on the history, use, and caveats of Java generics. Using the simple example of an interface for sort algorithms, the tutorial presents the history of generics and describes the problems being solved by generics. It also provides definitions, and examples in Java and C++, and discusses Duck Typing. It then describes two scenarios: (1) Scenario 1: you want to enforce type safety for containers and remove the need for typecasts when using these containers and (2) Scenario 2: you want to build generic algorithms that work on several types of (possibly unrelated) things. It also summarises caveats with generics, in particular type erasure.
A tutorial on reflection, with a particular emphasis on Java, with a comparison with C++, Python, and Smalltalk. It describes different scenarios in which reflection is useful, a brief history of reflection and MOPs, a comparison with C++, Python, and Smalltalk, and some particulars about Java. The source code of the examples in Java (Eclipse project), Smalltalk (Squeak image v3.10.6), Python (Eclipse project), and C++ (Eclipse projects and Visual Studio solution) are available. (C++ Eclipse projects require Mirror.) Big thanks to Matúš Chochlík and Marcus Denker for their kind and precious help with C++ and Smalltalk.
The tutorial focuses on four common problems:
- Avoid using instanceof when code must bypass the compiler and virtual machine’s choice of the method to call.
- Create external, user-defined pieces of code loaded, used, and unloaded at run-time.
- Translate data structures or object states into a format that can be stored (file, network...).
- Monitor the execution of a program to understand its behaviour, and measure its space and time complexity.
It shows working examples of Java, Smalltalk, Python, and C++ code solving the four common problems through four scenarios:
- Scenario 1: invoke an arbitrary method on an object (see the problems with instanceof and plugins).
- Scenario 2: access the complete (including private) state of an object (see the problem with serialisation).
- Scenario 3: count the number of instances of a class created at runtime (see the problem with debugging/profiling).
- Scenario 4: patch the method of a class to change its behaviour (see the problem with patching).
It also discusses the different kinds of interconnections among objects that are available in common programming languages (linking, forking, subclassing, inter-process communication, and dynamic loading/invoking), a bit of theory about reflection, and specifically the class-loading mechanism of Java.
REST APIs are nowadays the de-facto standard for Web applications. However, as more systems and services adopt the REST architectural style, many problems arise regularly. To avoid these repetitive problems, developers should follow good practices and avoid bad practices. Thus, research on good and bad practices and how to design a simple but effective REST API are essential. Yet, to the best of our knowledge, there are only a few concrete solutions to recurring REST API practices, like “API Versioning”. There are works on defining or detecting some practices, but not on solutions to the practices. We present the most up-to-date list of REST API practices and formalize them in the form of REST API (anti)patterns. We validate our design (anti)patterns with a survey and interviews of 55 developers.