Devops for Growth
108.0K views | +22 today
Follow
Devops for Growth
For Product Owners/Product Managers and Scrum Teams: Growth Hacking, Devops, Agile, Lean for IT, Lean Startup, customer centric, software quality...
Curated by Mickael Ruau
Your new post is loading...
Your new post is loading...

Popular Tags

Current selected tag: 'qualité logicielle'. Clear
Scooped by Mickael Ruau
Scoop.it!

Stop Calling it Bad Code

Stop Calling it Bad Code | Devops for Growth | Scoop.it
Instead of sticking to a lazy term, put some more effort to describe flaws of the code you see, and improvements you could think of.

Be specific on the flaws you see, even at the cost of being more verbose. “I find this function too complicated”. “This class has multiple responsibilities”. “The variable name does not describe its purpose clearly”.
Give a specific suggestion on how to improve the issue, if it not obvious from your description. Thins like “This class has multiple responsibilities. What would you think of breaking it into two parts, one being responsible for serialisation, another for price calculation?” or“I find the name calculate hard to understand. How about calling it getPriceWithoutVAT instead?”
Talk about the future implications of the code you see, if not changed. Things like “I think the class would probably be hard to reuse, because it has many things hardcoded.” or “I’m pretty sure newcomers would find this code hard to comprehend, as it does not follow conventions used across the codebase.”
Ask the person writing the code, what they think about your comments. Say thinks like “what do you think about this?” or “do you think this would make sense?”.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Revisiting Switch and If-then-else – DZone Web Dev | Mac Pro Tricks

Revisiting Switch and If-then-else – DZone Web Dev | Mac Pro Tricks | Devops for Growth | Scoop.it

Even Uncle Bob has addressed the subject. In npm alone, countless packages have been released to provide an alternative. People tend to think that the catch with Contact and if-then-else is that the more branches in your code, the more opportunities for untested and unexpected behavior. Each branch requires different use cases to be thoroughly tested, and although some tools, such as Istanbul, provide an indication of how many branches have been performed, in addition to the traditional feature coverage. But branches are part of the nature of programming, there is nothing we can do about it.

In this brief statement, I would like to give a new spin on when to use control structures and when to use some functional alternatives.

Mickael Ruau's insight:

 

Ever since I discovered Dr. Lamport’s Temporal Logic of Action, my programming style has changed to become more explicit about tasks versus mutations of the application mode and more aware of temporal logic. For me, there are three core patterns in programming: object-oriented programming, functional programming, and temporal programming. One developer should master all three and use them accordingly, no pattern wins over the other. We can not write good programs with only one pattern.

One of the key concepts in temporal programming is the concept control mode: when the light is off, and if the switch is in the off position, I can trip the light is on Or else check the switch (in bold we have actions as expected in a given control mode). These are extremely familiar concepts we use every day, but for some reason we rarely come across control mode in the code we write. My view of this is that the situation arose due to the lack of alternative constructions with a good enough developer experience, and partly due to the ease of use of the switch and if-so-otherwise, over the stringency required to use temporal programming constructions, but that discussion is for another article. I would like to focus here on something that is much simpler and more practical.

First, we must absolutely stop using these control structures for (complex) tasks, it leads to some pretty ugly code that is hard to read and debug. How many times have you written such a code? plain on, tell me in the comments …

How about a functional alternative?

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Building High-Quality Software - DZone Performance

Building High-Quality Software - DZone Performance | Devops for Growth | Scoop.it
How do you define good quality software? How do you develop, measure, and ensure its quality? Read this post to learn the answer to these questions and more.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Code Quality Metrics - DZone Performance

Code Quality Metrics - DZone Performance | Devops for Growth | Scoop.it

Code Quality Metrics: The Business Impact

The most effective Code Quality Metrics are those that help to track down the present flaws and ambiguities. The basic types of metrics for quality evaluation are:

Qualitative metrics
Quantitative metrics

Not amazingly, the qualitative estimations are more intuitive; quantitative options provide you with precise numbers to decide on the viability of your written crypto piece. So the qualitative techniques aid in categorizing the code as acceptable or rejectable, while the quantitative ones call for employing a formula as well as enter certain algorithms that exact the quality in terms of the levels of complexity.

The goal of every project is to generate an understandable and easily changeable codebase. Understandable writing is no less complex while staying appropriately formatted and documented. A changeable one, on the other hand, can be easily extended in the future. Therefore to grab an idea of the current levels of each of the quality issues leads to better results. In this case, the metrics of quality play a vital role in current evaluations and provide a track for further amendments.

Employing these techniques to excel in the performance of code directly impacts the profitability of the business. Achieving high-quality standards ultimately increases the ROI of the software. Consider it as a matter of choosing between investing excess time as well as resources initially or wasting the same later in fixing issues.
Qualitative Code Quality Metrics
1. Efficiency Metrics

The efficiency of a code is measured by the number of assets that are consumed to build a code. Time is taken to run the code also counts in the efficiency of the code. Ultimately a code that is efficient should come up to the requirements and specifications of the owner.
2. Extensibility Metrics

Software ought to be developed using changeable and extendable code. It should be extended for newer versions of the original program when incorporating advanced features without disturbing the overall program and software functions. Higher extensibility results in viability in code.
3. Well-documented

While documenting software, the programmer explains every single method and component along with the logic behind the various programming alternatives used. Reviewing such codes and assessing them gets less hectic than for those not properly listed. No doubt, the documentation part of the game plays a very important role in its quality assessment. It ensures that the program is readable as well as more maintainable for anyone who deals with it at any time. An undocumented code proves to be incomprehensible even by its developer sometimes.
4. Maintainability

The degree of ease in incorporating the alterations later on together with the prospects of malfunctioning of the whole application while making revisions counts for the maintainability characteristic.

The number of lines of the code within the application provides the figure to evaluate the maintainability. Less maintainability is inferred when these lines are more than the average number. Moreover, it's pretty obvious while we attempt to make alterations. The more the process is within the expected time frame; the higher is the level of maintainability.
5. Clarity:

A clear code is normally graded as the appreciated one. Most of the time, a single task of developing a code passes through various hands. Therefore, it must be understandable and comprehensible so that different engineers can easily read as well as work on it in various phases of development.
6. Readability and Code Formatting

Readability is more when your code is communicating what it ought to be. It uses the correct formatting, marks, and indentations. When the code is well oriented with the formatting requirements of the particular coding language, it's more logical and understandable and we say that it's more readable.
7. Testability Metrics

Programs higher on the testing metrics always result in better decision-making for future improvements by delivering exact information regarding future successful testing. High testability thus increases the efficiency of code by making the software working more reliable.
Quantitative Code Quality Metrics
1. Weighted Micro Function Points

One of the quantitative measures to use is WMFP. Just like scientific methods, WMFP, a sizing model that estimates employing mechanized measurements of a present original code by fragmenting it to smaller parts and generating numerous metrics displaying various levels of complexity. The findings are then tabulated into a numeric figure representing the rating. The result contains not only the mathematical computations but also the path of control, comments as well as code structures.
Weighted Micro Function Points Calculation.
2. Halstead Complexity Measures

Complexity accounts for the factors that contain several interrelated forming intricate code designs. This makes reading a code too difficult. Various parameters aid in finding out the readability and maintainability difficulties. The most famous one is Halstead's metrics.
Halstead complexity measures.

Halstead's metrics use indicators like the number of operators as well as operands to find out the complexity of the code in terms of errors, difficulty, efforts, size, vocabulary, and testing time. It views software as an execution of an algorithm with multiple symbols representing the operands or operators. The software is thus, a chronology of operators along with its linked operands that together provide the complexity estimate.
Halstead complexity measures example.
3. Cyclomatic Complexity

When joined with any size metric for example how many lines are there, this technique provides the marker of the testability and maintainability of the code. It employs decision-making parts within the program like switch-case, do-while, if-else to derive a graph.

It considers the underlying intricacy of the software by tallying the quantity of straightly autonomous lines across the program's original code. If the Cyclomatic finding is above 10, it means the quality needs to be corrected.
Cyclomatic complexity.
Mickael Ruau's insight:

Which Code Quality Metrics to Use

Ultimately, software engineers together with management need to take care of the customer's needs and want to leave no quality errors in the measures that the client cares about. Moreover, various measurements make a difference to the board, the group of engineers, and the client. The engineers need to follow certain matrices because they discover them helpful and ought to disclose them to others. Administration necessities require the calculation of certain parameters.

No doubt, you ought to have a set of the most viable Code Quality Metrics for your specific programming task. Mostly, these most common metrics help quantify the issues:

1.Defect Metrics

Flaws within your project are a rich wellspring of data to evaluate or make better the practical, primary, and interaction parts across the life cycle of your project. How many defects are found in the code and what is the density of them are what gives an insight into the problem. The density of the defects can be defined as a proportion of deformities found in the programming during a characterized time of advancement partitioned in terms of module size. The discovery rate of defects can be explained as a tally of various imperfections that are found over the long run.

Defect metrics states:

  • To successfully recognize the stage of development at which a certain defect has arisen
  • How many defect reports have been found open in an instant?
  • How much time it takes to find as well as sort out the flaws.
  • Keeping track of the density of flaws.

2. Complexity Metrics

The previously discussed Cyclomatic complexity and Halstead complexity provide an insight into the checks like maintainability. They elevate quality by reducing complexity.

Cyclomatic metrics identify the presence and number of occurrences of individual lines across the original code. Whereas Halstead complexity calculations provide data on Effort, Vocabulary, volume, Length, and Difficulty of the program.

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Veiller à la qualité de votre code et sa documentation | CNIL

Veiller à la qualité de votre code et sa documentation | CNIL | Devops for Growth | Scoop.it
Documentez le code et l’architecture La documentation est parfois laissée de côté au moment du développement, par manque de temps ou de visibilité sur l'ensemble du projet. Elle est pourtant cruciale pour la maintenabilité de votre projet : elle permet de comprendre globalement le fonctionnement du code, et de savoir quelles parties du code sont affectées par une modification.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

ISACA Portal

Mickael Ruau's insight:
ITAF, 4th Edition | Digital | English
 
 
 
 
 

0

Non-member Pricing
 
 

Description

Get the guidance and techniques that will lend consistency and effectiveness to your audits. The new 4th edition of ITAF outlines standards and best practices aligned with the sequence of the audit process (risk assessment, planning and field work) to guide you in assessing the operational effectiveness of an enterprise and in ensuring compliance. ITAF can serve as your reference for mandatory standards and recommended best practices to follow during IT audit and assurance engagements.

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Audit de code — Wikipédia

Audit de code - Wikipédia

En programmation informatique, l' audit de code est une pratique consistant à parcourir le code source d'un logiciel afin de s'assurer du respect de règles précises. L'audit peut avoir un but légal (s'assurer que les licences des différentes parties d'un programme autorisent bien à le distribuer tel quel, ou voir l'audit interne de ReactOS), ou s'assurer de la sécurité du logiciel en testant sa vulnérabilité, ou bien chercher des bugs.

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Audit de code source | Axopen

Audit de code source | Axopen | Devops for Growth | Scoop.it
Un audit de code source est une analyse poussée du code source d'une application, afin de déterminer si la manière dont elle est développée répond aux standards désirés. Cet audit peut être réalisé de manière automatisée et/ou manuelle, afin de découler sur des actions correctives et un plan progrès.
Mickael Ruau's insight:

 

Quelle est la composition de l'audit de code source fait par un humain ?

On s'attachera à regarder les points suivants en priorité :

  • La clarté du code source
  • L'organisation du projet
  • Les technologies utilisées (sont-elles viables ?)
  • La gestion des dépendances (y'a t-il des dépendances à risque ?)
  • Les best practices des langages
  • Les nouvelles fonctionnalités sont-elles utilisées ?
  • La complexité du code source
  • Le respect de la technologie utilisée
  • La qualité des commentaires
  • La qualité et la composition des tests
  • La performance des fonctionnalités importantes
  • La plateforme CI/CD du projet

Cette liste n'est bien sûr pas exhaustive, mais s'apparente comme le reflet du travail que seul un humain est en mesure de réaliser. Chez AXOPEN, nous sommes des artisans du code et de la beauté de celui-ci. N'oubliez pas que si un ordinateur était capable d'attester de la qualité d'un code source, c'est qu'il serait en mesure de l'écrire ! Entre nous, ça n'est pas prêt d'arriver :)

L'audit doit aussi se concentrer sur les points positifs du code source de l'application. Aussi, il doit mettre en lumière les forces et les faiblesses et ne doit en aucun cas chercher des coupables et des personnes à blâmer. Évidemment, une application est toujours la résultante de nombreuses années de développement, de contraintes projets, de changements d'équipes... Il faut donc garder tout cela en tête afin de pas faire un audit "à charge".

L'idée principale est toujours de dégager des axes d'analyse et de fournir des clés à la prise de décision pour le responsable de l'application.

Ainsi, chaque fois qu'un point positif ou négatif est détecté, il est rapporté dans l'audit de code sous forme de tableau.

On utilise également radar qualitatif permet en un coup d’œil de se rendre compte des forces et des faiblesses d’une application, et de voir rapidement les points d’amélioration.

La conclusion d'un audit de code source

Il est important d'avoir une vision la plus complète possible et objective des choses. En effet, c'est un vrai état des lieux que nous cherchons à réaliser ici.

Une fois l'analyse du code source effectué, il est primordial de travailler à une matrice d'actions valorisées. Cette projection permet aux décideurs d'avoir des éléments visuels clairs pour se positionner sur l'avenir de l'application et son code source. Puis, une matrice priorité/bénéfice VS coût/investissement est souvent une manière efficace de présenter les choses.

L'audit doit fournir les clés d'une remise à niveau du code source. Pour chacun des points analysés, le coût de l'investissement est important car il permet de mesurer l'effort d'un retour à l'état de l'art.

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Sonar et la qualité de vos codes sources

Sonar et la qualité de vos codes sources | Devops for Growth | Scoop.it

Sonar s'appuie sur 7 types de métriques différentes qui sont présentées grâce à l'image suivante :

 

  • Architecture & design : ce critère désigne tout ce qui est en rapport avec l'architecture telle que les différentes dépendances entre les classes
  • Duplications : ce critère désigne tout ce qui se rapporte à la duplication de code au sein du même fichier ou dans plusieurs fichiers
  • Unit tests : ce critère se rapporte aux tests unitaires comme le nombre de tests réussis ou échoués mais il prend également en compte les différentes parties du code couvertes ou non par les tests
  • Complexity : ce critère désigne la complexité cyclomatique moyenne par classe, fichier et méthode
  • Potential bugs : ce critère désigne les différentes failles de sécurité ou bogues qui pourraient être présent dans les sources
  • Coding rules : ce critère désigne les règles de codage comme le nom des attributs ou des classes
  • Comments : ce critère désigne tout ce qui concerne les commentaires, du commentaire vide jusqu'au commentaire de documentation en passant par les lignes de codes commentées
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

How Mob Programming Collective Habits Can be the Soil for Growing Technical Quality

How Mob Programming Collective Habits Can be the Soil for Growing Technical Quality | Devops for Growth | Scoop.it
Mob programming can support teams in changing old habits into new effective habits for creating products in an agile way. Collectively-developed habits are hard to forget when you have other people around. Mob programming forces individuals to put new habits into practice regularly, making them easier to adopt. Teams are intolerant of repetition, and are always looking for better ways of doing their work.

Chris Lucian, the director of software development at Hunter Industries, spoke about improving technical quality with mob programming and collective habits at Agile 2021.

Improvement in habits came naturally with mob programming, as Lucian explained:

While working with multiple people at the same computer at the same time, you have a sort of accountability group. Naturally, you start to eliminate bad habits and instill good ones simply because the feedback loop is constantly available.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

CodeSee Maps permet aux développeurs d'avoir en temps réel une carte de leur base de code pour une compréhension et une révision plus facile des bases de code volumineuses

CodeSee Maps permet aux développeurs d'avoir en temps réel une carte de leur base de code pour une compréhension et une révision plus facile des bases de code volumineuses | Devops for Growth | Scoop.it
Nombreux sont les témoignages de développeurs qui rapportent que travailler sur d’anciens projets avec une base de code large s’avère généralement cauchemardesque dans la mesure où il faut d’abord comprendre le fonctionnement du code écrit par des tiers, mais également être capable de comprendre les bogues qui surviennent et appliquer les solutions idoines. Ce même sentiment est partagé par de nombreux développeurs qui travaillent sur de nouveaux projets dont la base de code est très étendue. Face aux difficultés rencontrées par les développeurs qui doivent à chaque fois se représenter une carte mentale de tout le code sur lequel ils travaillent pour ne pas être perdus dans ses méandres, CodeSee tente d’apporter une solution avec Review Maps, un outil intégré à sa plateforme de production et conçu pour donner en temps réel une carte détaillée de tout le code du projet afin que les développeurs puissent se concentrer sur les aspects techniques du code et non sur sa compréhension générale.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Développeurs : ControlFlag, l'outil de débogage automatisé d'Intel, est désormais open source, il détecte automatiquement les anomalies dans le code et épargne des heures de travail fastidieux

Développeurs : ControlFlag, l'outil de débogage automatisé d'Intel, est désormais open source, il détecte automatiquement les anomalies dans le code et épargne des heures de travail fastidieux | Devops for Growth | Scoop.it
Justin Gottschlich, scientifique principal et directeur/fondateur de Machine Programming Research à Intel Labs a annoncé le 20 octobre que ControlFlag, l'outil de débogage automatisé d'Intel, est désormais open source.
Mickael Ruau's insight:
Il détecte automatiquement les anomalies dans le code et épargne des heures de travail fastidieux
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Améliorer La Testabilité  : Supprimer Les Anti-Patterns Grâce À Des Conversations Conjointes

Améliorer La Testabilité  : Supprimer Les Anti-Patterns Grâce À Des Conversations Conjointes | Devops for Growth | Scoop.it

Points Clés

  • Le code est toujours testable en identifiant les anti-modèles et en les corrigeant.
  • La testabilité de la conception et du code affecte la capacité à automatiser les tests.
  • Les décisions de conception sont prises par les développeurs, et les testeurs peuvent les influencer pour une meilleure testabilité.
  • Les pratiques de code propre et la testabilité vont de pair afin que les développeurs et les testeurs puissent en bénéficier.
  • Les discussions conjointes en cours entre les développeurs et les testeurs peuvent aider à améliorer la testabilité,
  • Les chefs d'équipe et les managers doivent favoriser les discussions conjointes dans le cadre des processus d'amélioration.
Mickael Ruau's insight:

Lorsque nous écrivons des tests automatisés, nous pouvons rencontrer des problèmes. Les tests ne passeront pas, ou nous passerons beaucoup de temps à faire l'effort. « Ce code n'est pas testable », dirions-nous. Surtout, ce n'est pas vrai. Le code est toujours testable, mais le coût peut être élevé et l'effort épuisant.

La bonne nouvelle est que nous pouvons modifier le code pour qu'il soit hautement testable, en identifiant les anti-patterns et en les corrigeant. La meilleure nouvelle est que nous, les développeurs, pouvons faire en sorte que le code corresponde aux exigences du test, en discutant avec les testeurs, qui le testent réellement.

Les testeurs peuvent-ils vraiment affecter la façon dont le code est écrit ?

 

Cela dépend vraiment de la relation entre les testeurs et les développeurs. Dans une équipe agile et cohésive, il y a une ouverture d'esprit. Mais dans de nombreux cas, les testeurs obtiennent leur code « prêt à tester », des semaines ou des mois après que les développeurs aient fini de programmer. À ce stade, demander aux développeurs de "remonter le temps", de laisser ce qu'ils font et de changer ce qu'ils considèrent comme du "code déjà fonctionnel" ne semble pas très agréable.

Mais il existe d'autres problèmes qui rendent les développeurs moins attentifs aux besoins de leurs testeurs. Premièrement, ils croient (à cause de ce que les organisations leur enseignent) que lorsqu'ils poussent leur code, cela devient le travail de quelqu'un d'autre. Ils ne sont pas conscients des efforts que les testeurs doivent déployer pour effectuer les tests. En fait, plusieurs fois, ils ne sont même pas au courant des plans de test, des ressources et parfois même des résultats (en dehors des bugs).

Donc la distance dans le temps, les connaissances, la réflexion - tout cela rend la discussion entre développeurs et testeurs peu efficace - notamment en termes de testabilité. Arriver en retard avec les demandes est trop tardif.

Des modèles de code qui conduisent à une meilleure testabilité

 

Il existe de nombreux modèles de code et anti-patterns que nous savons être bons (et mauvais) pour les développeurs. Habituellement, nous les considérons en termes de maintenabilité. Mais ils ont également un impact sur la testabilité.

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Limiter la complexité du code applicatif grâce au SGBD.

Limiter la complexité du code applicatif grâce au SGBD. | Devops for Growth | Scoop.it
Dans cet article, il sera démontré comment simplifier le code applicatif en exploitant les possibilités du SGBD grâce aux contraintes.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Summary of the book The Pragmatic Programmer by Andrew Hunt and David Thomas

Summary of the book The Pragmatic Programmer by Andrew Hunt and David Thomas | Devops for Growth | Scoop.it

This is my summary of the The Pragmatic Programmer, by Andrew Hunt and David Thomas. I use it while learning and as quick reference. It is not intended to be an standalone substitution of the book so if you really want to learn the concepts here presented, buy and read the book and use this repository as a reference and guide.

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Avoiding the Ice Cream Cone of Test Automation - DZone DevOps

Avoiding the Ice Cream Cone of Test Automation - DZone DevOps | Devops for Growth | Scoop.it


Here are some of the patterns that an organization can follow when applying test automation:
Pyramid Testing

When following the testing pyramid, there will be three automated test levels coming in before you get to the manual tests.
Automated Unit Tests

This level would be the starting point at the bottom of the pyramid. It involves a lot of test situations. These would be done separately, which shortens the execution time per block of the application code.

You get to see how the software behaves under different circumstances, try valid and invalid inputs, and also discover any unexpected behavior. Here, you can get a lot of feedback quickly.
Automated Integration Tests

In this next level, you try scenarios that involve different code components. The focus is on how these components work together and whether every call and response is spot on.

You also won’t have to run many test scenarios. At this level, things may move a bit slower since you’re mainly examining the intercommunication aspect. These test scenarios would cover APIs, methods, classes, etc.
Automated UI Tests

This would be the third level, and would also be of an end-to-end nature. You test an application with the integrations running and emulate real-life user interactions. This level would have tests running much slower since you’re testing more elaborate scenarios from start to end.

You’ll have fewer tests, covering major features, happy paths, and more. You get to discover how several components work together when needed in a typical use case.
The Ice Cream Cone (Anti-Pattern)

ice cream cone pattern test

In this pattern, the testing pyramid is inverted, so to speak. This means that a lot more of the QA team’s efforts are sucked away from automating unit tests. The same will happen for the other testing levels, though it might be to a lesser extent.

Nevertheless, the result is most of the testing is being done manually. Automated tests will largely be at UI/end-to-end tests level, and to some extent, the integration tests too. The result is a team that is stretched thin with these upper test levels. You’ll have fewer automated unit tests and move much slower in this aspect.

You may also have bugs and other random issues constantly trickling down from the manual tests, but not always being caught on time. In an agile environment, demanding frequent releases, you can’t thoroughly respond and make the necessary changes when unit tests are limited. You won’t be able to strike a decent balance between delivery speed and remainder flaws on your next release.
The Cupcake (Anti-Pattern)

Here, there’s a team for development, manual testing, and automated testing. They all work separately and each team tries to cover as many scenarios at each test level as possible. The problem is, with minimal communication, a lot of time can be wasted as teams have massive overlap in the scenarios tested.

And while there might be more automated UI and integration tests, unit tests still lag behind and there are more hands on deck for manual testing.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Code Quality Software That Makes A Difference - DZone Performance

Code Quality Software That Makes A Difference - DZone Performance | Devops for Growth | Scoop.it

How to Measure Code Quality?

The question on the minds of many experienced software developers is, "How can I improve my code quality?"

There are many different ways of measuring code quality. They range from traditional inspection of the code's structure to more modern methods like code translation or high-level languages like Java.
Code Correctness and Code Readability

In web development, code quality refers to two separate but related ideas: code correctness and code readability.

Good code quality ensures that clients can easily understand the code; low-quality code may lead to unexpected results, incorrect behavior, and security vulnerabilities. It is why comprehensive web code review and testing are essential for every web application development project.

Good quality code communicates every bit of its intent to developers and customers clearly and brings down the risk of misinterpretation and mistakes.
Code Reliability

It's also imperative that it meets technical debt requirements. If you've spent weeks or months following a specific design, then you're well aware of how it interacts with existing code.
Code Re-Usability

It means that the same application can be used in different environments, and this will decrease program delays and technical debt.
Code Maintainability

Maintainability measures how easily the application is changed and maintains the existing functionality.
Mickael Ruau's insight:

How to Improve Code Quality?

What is an efficient way to ensure that the code is working? One method is to make sure your developers are up to date on what's happening in the field, so they can provide input on ways to solve bugs. These software quality assurance best practices ensure consistency in maintaining better code throughout the project.

Another method is of improving code quality is to ensure that your team members understand the nature of the problems they are attempting to solve.

Finally, make sure your team members understand how to use the right tools and techniques to analyze code quality metrics and other tools to help them improve the quality of the code they write.

Moreover, make sure to include the following steps in your code improvement plan:

Routine Manual or Automated Code Reviews

While manual reviews are recommended for relatively simple projects, computerized devices can be beneficial in tackling more complex projects with a heavier debt burden. One approach developers often don't consider when they're building a web application is whether the complexity of the resulting application is reflected in the complexity of the coding base.

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Audit informatique — Wikipédia

Audit informatique - Wikipédia

L' audit informatique (en anglais Information Technology Audit ou IT Audit) a pour objectif d'identifier et d'évaluer les risques (opérationnels, financiers, de réputation notamment) associés aux activités informatiques d'une entreprise ou d'une administration.

Mickael Ruau's insight:

Sommaire

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

11 outils intéressants pour l'audit et la gestion de la qualité du code

11 outils intéressants pour l'audit et la gestion de la qualité du code | Devops for Growth | Scoop.it
Coincé avec un code cassé? Impossible d'identifier la raison du bogue? Il est temps d'analyser votre code pour les problèmes causés! Logiciels et applications Web
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

9.3. Les outils d’analyse de qualité du code populaires pour Java et Groovy

9.3. Les outils d’analyse de qualité du code populaires pour Java et Groovy | Devops for Growth | Scoop.it
Il y a beaucoup d’outils open source qui peuvent aider à identifier les mauvaises pratiques de codage.

Dans le monde Java, trois outils d’analyses statiques ont résisté à l’épreuve du temps, et sont largement utilisés de manière très complémentaire. Checkstyle excelle dans la vérification des conventions et normes de codage, les pratiques de codage, ainsi que d’autres mesures telles que la complexité du code. PMD est un outil d’analyse statique similaire à Checkstyle, plus focalisé sur les pratiques de codage et de conception. Et FindBugs est un outil innovant, issu des travaux de recherche de Bill Pugh et de son équipe de l’université du Maryland, qui se focalise sur l’identification du code dangereux et bogué. Et si vous être en train de travailler avec Groovy ou Grails, vous pouvez utiliser CodeNarc, qui vérifie la norme et les pratiques de codage de Groovy.

Tous ces outils peuvent être facilement intégrés dans votre processus de build. Dans les sections suivantes, nous verrons comment configurer ces outils pour générer des rapports XML que Jenkins peut ensuite utiliser dans ses propres rapports.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Manual Test is Unsustainable

The untested code gap kills productivity and predictability. We don’t choose where the bugs go making them easy to find; they choose their hiding places, and have no mercy on us. They flare up and put teams into fire fighting mode.

Are we are beat? Do we have to put up with buggy products and long test and fix cycles? No, we do not! We must accept that a product test strategy based on manual test is unsustainable. Unsustainable systems eventually collapse. We can’t afford not to automate much of your software test.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

We're Testing Software Incorrectly and It's Costly - DZone DevOps

We're Testing Software Incorrectly and It's Costly - DZone DevOps | Devops for Growth | Scoop.it
We should write tests to enable developers to move fast with confidence. Code is always evolving, so question everything, collect experience, and judge for yourself.
Mickael Ruau's insight:

 

Code coverage has nothing to do with code quality, which has been proven statistically

Kent Beck (Author of the book TDD By Example) answered the question of how many unit tests a system should have:

"I get paid for code that works, not for tests, so my philosophy is to test as little as possible to reach a given level of confidence..."

Martin Fowler addressed whether a system can have too many tests, saying,

"Can you test too much? Sure you can. You are testing too much if you can remove tests while still having enough."

That's not to say coverage doesn't have value. As Martin Fowler points out, it is a good way to identify untested code.

No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Writing Clean Code: Naming - DZone Performance

Writing Clean Code: Naming - DZone Performance | Devops for Growth | Scoop.it
"One difference between a smart programmer and a professional programmer is that the professional understands that clarity is king. Professionals use their powers for good and write code that others can understand." - Clean Code: A Handbook of Agile Software Craftsmanship by Robert C Martin.
No comment yet.
Scooped by Mickael Ruau
Scoop.it!

Programmation : quand faut-il commenter son code ? Google s’invite dans le débat - Débats sur le développement - Le Best Of

Programmation : quand faut-il commenter son code ? Google s’invite dans le débat - Débats sur le développement - Le Best Of | Devops for Growth | Scoop.it
Google s’invite aujourd’hui dans le débat et montre qu’en réalité les commentaires peuvent très souvent être évités. « En lisant un code, souvent, il n'y a rien de plus utile qu'un commentaire bien placé. Cependant, les commentaires ne sont pas toujours bons. Parfois, le besoin d'un commentaire peut être un signe que le code devrait être refactorisé. Utilisez un commentaire lorsqu'il est impossible de faire en sorte que votre code s'explique par lui-même », expliquent Dori Reuveni et Kevin Bourrillion sur Google Testing Blog.

Si vous pensez avoir besoin d'un commentaire pour expliquer ce qu'est un code, ils proposent alors de procéder d'abord à l'une des opérations suivantes
No comment yet.