Articles

Test de fuzzing en ingénierie logicielle

Le fuzzing est une technique d’ingénierie logicielle qui consiste à tester le logiciel en envoyant des données aléatoires pour trouver des erreurs. Essayons de comprendre les avantages et les inconvénients du test de fuzzing!

Fuzzing, également connu sous le nom de test de fuzz, est une technique de test logiciel automatisée qui consiste à fournir des données invalides, inattendues ou aléatoires (fuzz) en tant qu’entrées d’un programme informatique. L’objectif est de trouver des erreurs de codage, des bugs, des vulnérabilités de sécurité et des failles qui peuvent être exploitées. Cet article commence par expliquer quelques types de fuzzing de base. La métaphore «tester la serrure» est ensuite utilisée pour expliquer les rouages de cette technique. Une liste d’outils disponibles est donnée et un ensemble de meilleures pratiques est exploré pour que le fuzzing soit mené de manière éthique, efficace et sûre.

Black-box fuzzing is the most common type of fuzzing. It does not require any knowledge about the internal architecture of the software being tested. The tester only needs to provide the input data and observe the output. This type of fuzzing is suitable for testing applications with a user interface, such as web browsers, media players, and office applications.

White-box fuzzing requires knowledge about the internal architecture of the software being tested. The tester needs to understand the code and identify the areas that need to be tested. This type of fuzzing is suitable for testing complex applications, such as operating systems, databases, and network protocols.

Métaphore du Test de la Serrure

La métaphore du test de la serrure est utilisée pour expliquer le fonctionnement de la technique de fuzzing. Cette métaphore compare le processus de fuzzing à un test pour vérifier si une serrure est ouverte ou fermée. Dans ce scénario, le tester est le cambrioleur et la serrure est le logiciel à tester. Le but du cambrioleur est d’ouvrir la serrure en essayant différentes clés. Dans le cas du fuzzing, le tester envoie des données aléatoires au logiciel pour voir si elles peuvent le faire planter ou révéler des vulnérabilités.

Le processus de fuzzing commence par la génération de données aléatoires. Ces données sont ensuite envoyées au logiciel pour tester sa robustesse. Si le logiciel fonctionne correctement, les données sont rejetées et le processus recommence avec des données différentes. Si le logiciel plante ou révèle une vulnérabilité, le tester peut identifier le problème et le corriger.

Le fuzzing est une technique très efficace pour trouver des bugs et des vulnérabilités dans un logiciel. Cependant, il est important de comprendre l’architecture du logiciel pour pouvoir l’utiliser correctement et efficacement. Une bonne compréhension de l’architecture du logiciel permet de cibler les zones à tester et d’améliorer les résultats.

Outils et Pratiques Recommandées

Il existe plusieurs outils disponibles pour effectuer des tests de fuzzing. Certains outils sont spécialisés pour tester des applications spécifiques, tandis que d’autres sont plus génériques et peuvent être utilisés pour tester tout type d’application. Les outils les plus populaires sont Sulley, Peach Fuzzer, SPIKE, American Fuzzy Lop (AFL) et Boofuzz.

En plus des outils disponibles, il existe certaines pratiques recommandées pour effectuer des tests de fuzzing de manière éthique, efficace et sûre. Il est important de bien documenter le processus de test et d’informer les développeurs des résultats obtenus. Il est également important de ne pas divulguer les résultats du test à des tiers sans l’autorisation des développeurs. Enfin, il est important de respecter la loi et les règles en vigueur lors de l’exécution des tests.

Le fuzzing est une technique très puissante qui peut être utilisée pour trouver des bugs et des vulnérabilités dans un logiciel. Cependant, il est important de comprendre l’architecture du logiciel et d’utiliser les bons outils et pratiques pour obtenir les meilleurs résultats. Une bonne compréhension de l’architecture et une utilisation appropriée des outils et pratiques peuvent aider
Source de l’article sur DZONE

Former des données avec ChatGPT : Guide pour développeurs

Apprenez à former des données avec ChatGPT et découvrez comment les développeurs peuvent tirer le meilleur parti de cette technologie puissante !

## Le lancement de ChatGPT par OpenAI a été transformateur pour l’intelligence conversationnelle AI. Impressionnant hors de la boîte, les capacités de ChatGPT sont intrinsèquement limitées par ses données d’entraînement fixes de 2021. Pour les développeurs de logiciels et les entreprises technologiques, l’entraînement de ChatGPT sur des jeux de données personnalisés est essentiel pour créer des assistants IA personnalisés qui évoluent avec votre entreprise.

Dans ce guide complet, nous explorerons les meilleures pratiques pour les équipes de logiciels afin de former des modèles ChatGPT personnalisés à l’aide de techniques telles que le réglage fin et la lecture interactive MEMWALKER.

Testing is a critical part of training ChatGPT models. It’s important to evaluate the performance of your model against a test dataset to ensure that it’s accurately predicting the desired output. Testing also helps identify any potential issues with the model, such as overfitting or underfitting. To get the most out of testing, it’s important to use a variety of metrics, such as accuracy, precision, recall, and F1 score.

Le lancement de ChatGPT par OpenAI a été transformateur pour l’intelligence conversationnelle IA. Impressionnant à l’état brut, les capacités de ChatGPT sont intrinsèquement limitées par ses données d’entraînement fixes de 2021. Pour les développeurs de logiciels et les entreprises technologiques, l’entraînement de ChatGPT sur des ensembles de données personnalisés est essentiel pour créer des assistants IA adaptés à votre entreprise.

Dans ce guide complet, nous explorerons les meilleures pratiques pour les équipes de logiciels afin de former des modèles ChatGPT personnalisés à l’aide de techniques telles que le réglage fin et la lecture interactive MEMWALKER.

Le test est une étape essentielle de l’entraînement des modèles ChatGPT. Il est important d’évaluer les performances de votre modèle sur un jeu de données de test pour s’assurer qu’il prédit correctement la sortie souhaitée. Les tests permettent également d’identifier tout problème potentiel avec le modèle, tel que le surapprentissage ou le sous-apprentissage. Pour tirer le meilleur parti des tests, il est important d’utiliser une variété de métriques, telles que la précision, la précision, le rappel et le score F1.

Source de l’article sur DZONE

Tutoriel de test en boîte blanche: guide complet avec exemples et meilleures pratiques

Apprenez à tester votre code avec cet incroyable tutoriel de test en boîte blanche! Découvrez les meilleures pratiques et des exemples pratiques pour vous aider à démarrer.

## Test de boîte blanche : une méthode de test logiciel

La méthode de test logiciel du White box testing est une méthode de test logiciel dans laquelle la structure interne et l’implémentation du logiciel testé sont connues et utilisées comme base pour concevoir les cas de test. Il implique le test du logiciel au niveau du code et nécessite une bonne compréhension du code et de la conception du logiciel. Il est également connu sous le nom de glass box, transparent box, clear box ou structural testing.

La plupart des testeurs ont déjà eu une certaine expérience avec ce type de test à un moment donné de leur carrière. Des techniques comme celles-ci se battent pour exister dans un monde de plus en plus axé sur l’agilité. L’adoption d’approches agiles ne signifie pas reporter des tâches pour mener le projet à bien.

Les bases de données sont un outil très important dans le processus de test White Box. Les bases de données peuvent être utilisées pour stocker les informations sur les tests et leurs résultats, ce qui permet aux testeurs d’accéder rapidement aux informations dont ils ont besoin pour effectuer leurs tests. Les bases de données peuvent également être utilisées pour stocker des informations sur le code source et les fonctionnalités du logiciel, ce qui permet aux testeurs d’accéder rapidement aux informations dont ils ont besoin pour effectuer leurs tests.

Les bases de données peuvent également être utilisées pour stocker des informations sur les tests et leurs résultats, ce qui permet aux testeurs d’accéder rapidement aux informations dont ils ont besoin pour effectuer leurs tests. Les bases de données peuvent également être utilisées pour stocker des informations sur le code source et les fonctionnalités du logiciel, ce qui permet aux testeurs d’accéder rapidement aux informations dont ils ont besoin pour effectuer leurs tests. Les bases de données peuvent également être utilisées pour stocker des informations sur les performances et la fiabilité du logiciel, ce qui permet aux testeurs d’accéder rapidement aux informations dont ils ont besoin pour effectuer leurs tests.

Les bases de données sont également utiles pour enregistrer et suivre les bugs et les problèmes rencontrés lors des tests. Les bases de données peuvent être utilisées pour stocker des informations sur les tests et leurs résultats, ce qui permet aux testeurs d’accéder rapidement aux informations dont ils ont besoin pour effectuer leurs tests. Les bases de données peuvent également être utilisées pour stocker des informations sur les performances et la fiabilité du logiciel, ce qui permet aux testeurs d’accéder rapidement aux informations dont ils ont besoin pour effectuer leurs tests.

Enfin, les bases de données peuvent être utilisées pour stocker des informations sur les tests et leurs résultats, ce qui permet aux testeurs d’accéder rapidement aux informations dont ils ont besoin pour effectuer leurs tests. Les bases de données peuvent également être utilisées pour stocker des informations sur le code source et les fonctionnalités du logiciel, ce qui permet aux testeurs d’accéder rapidement aux informations dont ils ont besoin pour effectuer leurs tests. De plus, les bases de données peuvent être utilisées pour stocker des informations sur les performances et la fiabilité du logiciel, ce qui permet aux testeurs d’accéder rapidement aux informations dont ils ont besoin pour effectuer leurs

Source de l’article sur DZONE

gRPC côté client

Le gRPC côté client offre une communication efficace et sécurisée entre un client et un serveur. Il permet une communication rapide et fiable entre les deux parties.

## Sans un standard de validation de schéma, nous devons tomber en arrière sur la validation manuelle dans le code

En tant que scientifique informatique enthousiaste, je suis très intéressé par les données et leur traitement. Les composants de communication inter-systèmes qui utilisent REST sérialisent leur charge utile en JSON. À l’heure actuelle, JSON manque d’un standard de validation de schéma largement utilisé : le schéma JSON n’est pas répandu. La validation de schéma standard permet de déléguer la validation à une bibliothèque tiers et d’en finir avec elle. Sans celle-ci, nous devons revenir à la validation manuelle dans le code. Pire encore, nous devons garder le code de validation synchronisé avec le schéma.

XML dispose d’une validation de schéma hors boîte : un document XML peut déclarer une grammaire à laquelle il doit se conformer. SOAP, étant basé sur XML, en bénéficie également. Les technologies XML et SOAP sont très populaires et largement utilisées dans les entreprises et les organisations pour leurs systèmes d’information. Cependant, JSON est devenu le format de données préféré pour les communications inter-systèmes, car il est plus léger et plus facile à manipuler que XML.

Heureusement, des outils tels que JSON Schema sont disponibles pour fournir une validation de schéma pour JSON. JSON Schema est un format de description de données qui permet aux développeurs de décrire le contenu des données JSON qu’ils attendent. Il fournit une syntaxe pour décrire les données et permet aux développeurs de valider des données JSON afin de s’assurer qu’elles sont conformes à la structure attendue. En outre, il existe des bibliothèques pour la plupart des langages de programmation qui peuvent être utilisées pour valider automatiquement les données JSON contre un schéma.

JSON Schema est donc un outil très utile pour les développeurs qui travaillent avec des données JSON. Il permet aux développeurs de décrire le contenu des données qu’ils attendent et de valider automatiquement les données pour s’assurer qu’elles sont conformes à la structure attendue. Cela peut grandement simplifier le processus de développement et réduire le temps nécessaire pour tester et déboguer les applications qui utilisent des données JSON.

Source de l’article sur DZONE

Welcome to our annual guessing game of what the next twelve months will bring.

As ever, the design world isn’t isolated from the world in which it exists, so when events shape our lives, they impact our work, the work clients ask for, and the work that inspires us. According to Collins Dictionary, the word of the year for 2022 was permacrisis. And frankly, 2023 doesn’t look any less turbulent, with some good and some bad things already on the horizon.

Russia seems all but certain to retreat to Crimea and claim its objectives in Ukraine have been achieved; Ukraine may not accept that end, but it will probably be enough to end sanctions against Russia, which will significantly impact the economy worldwide. Brazil may have been forced to watch Argentina lift the FIFA World Cup, but it has a new (old) president and fresh hope for the survival of the Amazon rainforest. Crypto has weathered a series of storms (although there may be more to come), and historical precedence suggests the bear market has run its course; 2023 will see stagnation, with an upward trend taking hold toward the end of the year. The former Pope has died, potentially paving the way for the retirement of the current Pope and the election of a new Pope, bringing with it either renewed liberalism or renewed conservatism to the world’s largest religion. Oh, and the IMF thinks a third of the world will be in recession at some point in 2023; the UK and Russia already are, and policymakers in the US are looking nervous.

And that’s just the obvious. Of course, there will be surprises, too, because there always are.

Against this backdrop, designers must not only navigate a problematic jobs market but produce designs that respond to the needs and desires of their clients’ users.

How Did I Do in 2022?

Before diving into this year’s predictions, let’s take a look at how I thought 2022 would play out.

I predicted that 2022 would be the year of blockchain, with decentralized data storage taking over. Well, I got the decentralized part right, but not so much the blockchain aspect (feel free to tell me I’m wrong on Mastodon because I’m not checking Twitter anymore). I’ll call that half a point.

I said design would be positive, playful, and accessible. I think design did emerge from its obsession with corporate minimalism, but positive and playful? Unfortunately, I’m calling that a miss.

I said everything would be green. Again, that’s a miss. If there was a color for 2022, it was a pink-purple gradient.

I predicted hero text would replace hero images, and in the third quarter of 2022, that’s exactly the trend we saw; tick.

Finally, I suggested that illustration would adopt a grainy texture. Well, some designers did, but it was hardly a dominant trend, so I’m going to have to call that a miss.

So for my 2022 predictions, I scored 30%. Way worse than last year’s clean sweep. Let’s see if we can’t beat that in 2023…

1. We’ll Stop Freaking Out Over AI

By now, you’ve probably tried AI, freaked out, and Googled how to start a small holding in the mountains.

The truth is that AI is just a tool. And a good one at that. AI is really good at derivative work. But it’s entirely incapable of improvising, holding opinions, having an agenda, or thinking outside the box.

AI will not replace your job — unless your job is deleting the background from photos, in which case it already has. Since when did Stephen King get replaced by a spellchecker?

If you haven’t tried an AI tool yet, I’d encourage you to try it. It does the small repetitive tasks well.

2. We’ll Embrace the Real World

One of the reasons AI can’t be creative is that it doesn’t have the same number of input sensors we have. We can smell, hear, feel, and experience the world in a multitude of different ways.

Most of us spent a year in lockdown working remotely. Then rushed back to the office, only to discover that our teamwork didn’t actually improve. With the worsening economic outlook, big companies are looking to budget, and the simplest way to cut costs is to ask staff to work remotely.

When your commute is a five-second walk to the spare bedroom, you find yourself with more free time. Sure, you could probably learn Python, but wouldn’t you be happier learning to paddleboard?

As we open ourselves to new experiences, our design work will inevitably become more diverse and natural.

3. We’ll Reject Brutalism

It had a good run, but Brutalism isn’t a good fit for most UI projects. The trend of 2021–22 will vanish as quickly and as unexpectedly as it arrived.

4. We’ll Reject Darkmode

It has had a good run, and dark mode is a perfect fit for most UI projects. But we’re all kinda sick of it.

I hope I’m wrong about this one; not only is dark mode genuinely better for both your eyes and the environment, but the rich, warm blackness is the perfect antidote to sterile white corpo-minimalism.

Dark mode options are built into our OS, so it’s doubtful that it’s going to vanish anytime soon. However, dark mode as a design trend for its own sake is probably on the wane.

Typically trends come and go in symmetrical waves. Dark mode has been a dominant trend for years, so it should take as long to vanish completely.

5. We’ll Embrace Personal Retro

Every year we get the exciting job of guessing which decade the zeitgeist will rip off next. Will 2023 be the year of ’80s retro, ’90s retro, ’00s retro, or maybe (somebody shoot me) ’10s retro?

The retro trends we’ve seen over the last few years have been poor pastiches of their associated decades. If last year’s ’90s retro was inspired by the ’90s, it was a ’90s someone else was living.

In 2023 we’ll move beyond someone else’s ideas of what the past was like, to a personal vision of what came before. One in which the sunbleached colors of eternal Summers in the suburbs dominate.

6. We’ll Fall For Borecore

We’re all guilty of designing with our egos from time to time, and there is a tendency to hit users between the eyes with the biggest type, the loudest gradient, and the flashiest animation.

If you truly want to impress users in 2023, stop inserting pop-ups, adverts, cookie notices, and the other extraneous detritus that stops them from doing whatever it is they arrived on your site for. Impressing users in 2023 means clean typography, low-distraction art direction, and helpful content. Boring design just isn’t as boring as it used to be.

In 2023, the best thing designers can do for their users is get out of the way.

Happy New year! We hope it’s a good one.

 

Featured image by myriammira on Freepik

Source

The post 6 Predictions for Web Design in 2023 first appeared on Webdesigner Depot.

Source de l’article sur Webdesignerdepot

Apache APISIX, the Apache-led API Gateway, comes out of the box with many plugins to implement your use case. Sometimes, however, the plugin you’re looking for is not available. While creating your own is always possible, it’s sometimes necessary. Today, I’ll show you how to route users according to their location without writing a single line of Lua code.

Why Geo-Routing?

Geo-routing is to forward HTTP requests based on a user’s physical location, inferred from their IP. There are many reasons to do that, and here is a couple of them.

Source de l’article sur DZONE

As more and more organizations making the shift to cloud-native technologies, Kubernetes has become the de facto choice to orchestrate container-based applications. As applications grow in size, the number of microservices increases and so does the data they process. Hence, handling data, especially sensitive data becomes critical. Out of the box, Kubernetes supports « Secrets » objects to store sensitive information — like passwords, tokens, ssh keys, and so on — securely.

Kubernetes secret eliminates the need to hard-code sensitive data in the application code. Secrets provide this sensitive information as data mount or expose them as environment variables.

Source de l’article sur DZONE