{
    "id": 1417,
    "date": "2023-02-15T13:06:31",
    "date_gmt": "2023-02-15T18:06:31",
    "guid": {
        "rendered": "https:\/\/testing.sqalogic.com\/?p=1417"
    },
    "modified": "2023-10-25T09:30:35",
    "modified_gmt": "2023-10-25T14:30:35",
    "slug": "test-surcharge-verification-de-build-bvt",
    "status": "publish",
    "type": "post",
    "link": "https:\/\/sqalogic.com\/fr\/test-surcharge-verification-de-build-bvt\/",
    "title": {
        "rendered": "Qu&rsquo;est-ce qu&rsquo;un bon test de surcharge lors des Tests de v\u00e9rification de build (BVT)"
    },
    "content": {
        "rendered": "<h3>Les tests de v\u00e9rification de build (BVT) en bref<\/h3>\n<p>Avant de r\u00e9pondre \u00e0 cette question, je tiens \u00e0 pr\u00e9ciser que j\u2019ai utilis\u00e9 le mot \u00ab\u00a0surcharge\u00a0\u00bb et non \u00ab\u00a0performance\u00a0\u00bb.\u00a0 En effet, la d\u00e9gradation des performances n\u2019est que l\u2019un des r\u00e9sultats potentiels d\u2019un bon test de surcharge de CI, les erreurs \u00e9tant l\u2019autre r\u00e9sultat.\u00a0 Donc, avant de parler de ce qui en fait un bon test, parlons de ce qui ne l\u2019est pas.<\/p>\n<p>Un test comme celui que vous utiliseriez dans le cadre d\u2019un test de charge r\u00e9gulier avant la sortie d\u2019une version n\u2019est pas un bon test pour plusieurs raisons.\u00a0 Ces tests se d\u00e9roulent normalement pendant un certain temps, jusqu\u2019\u00e0 une heure ou plus, avec des temps de mont\u00e9e, de maintien et de descente.\u00a0 Nous avons besoin de quelque chose qui ressemble davantage au POST (power on self-test) que subit votre ordinateur portable lorsque vous l\u2019allumez pour la premi\u00e8re fois \u2013 faire le plus de choses possibles en un minimum de temps, en s\u2019assurant qu\u2019il n\u2019y a pas d\u2019erreurs flagrantes ou de probl\u00e8mes de d\u00e9gradation des performances avant de promouvoir le build (ou de lancer Windows sur votre ordinateur portable dans le cas du test POST).<\/p>\n<h3>La m\u00e9thodologie \u00ab\u00a0Engine on Blocks\u00a0\u00bb<\/h3>\n<p>La m\u00e9thodologie que j\u2019utilise s\u2019appelle \u00ab\u00a0Engines on Blocks\u00a0\u00bb (moteurs sur blocs) car elle est calqu\u00e9e sur les harnais de test dans lesquels les moteurs automobiles sont install\u00e9s et test\u00e9s avant d\u2019\u00eatre mis dans une voiture \u00e0 l\u2019usine.\u00a0 Le test n\u2019est pas long, mais il fait tourner le moteur \u00e0 80 ou 90 tours pendant quelques minutes pour voir s\u2019il s\u2019essouffle et meurt.\u00a0 M\u00eame si seulement 1 ou 2 % d\u2019entre eux tombent en panne \u00e0 ce stade, le co\u00fbt de leur d\u00e9couverte et de leur r\u00e9paration est beaucoup, beaucoup moins \u00e9lev\u00e9 que celui d\u2019une d\u00e9couverte ult\u00e9rieure.\u00a0 Il en va de m\u00eame pour votre application, d\u2019o\u00f9 la n\u00e9cessit\u00e9 d\u2019un test de v\u00e9rification de build (BVT).<\/p>\n<p>Une chose qui n\u2019est pas n\u00e9cessaire est le temps de r\u00e9flexion \u2013 qu\u2019y a-t-il \u00e0 r\u00e9fl\u00e9chir de toute fa\u00e7on ?\u00a0 Nous n\u2019essayons pas de mod\u00e9liser le comportement de l\u2019utilisateur, nous essayons d\u2019ex\u00e9cuter une surcharge de 3 \u00e0 5 minutes en utilisant le nombre minimum de threads n\u00e9cessaires pour faire monter le CPU \u00e0 80, tout comme le moteur de la voiture.\u00a0 Et nous devrions tester un chemin \u00e0 travers la fonctionnalit\u00e9 de base de l\u2019application, et non pas simplement se connecter, parcourir les menus et se d\u00e9connecter (bien que m\u00eame cela soit mieux que rien).<\/p>\n<p>Votre test de v\u00e9rification de CI ou de build repr\u00e9sente la vitesse de votre transaction commerciale principale, o\u00f9 les millisecondes comptent.\u00a0\u00a0 Comme ce test est ex\u00e9cut\u00e9 de nombreuses fois, il devient facile de rep\u00e9rer les tendances historiques et de savoir exactement quand la d\u00e9gradation des performances commence \u00e0 se produire, afin de pouvoir la corriger avant qu\u2019elle ne s\u2019accentue.<\/p>\n<h3>De nombreux d\u00e9fis \u00e0 relever<\/h3>\n<p>L\u2019ex\u00e9cution de tests de charge dans le cadre du pipeline de test CI est un d\u00e9fi pour un certain nombre de raisons.\u00a0 Ils ne se contentent pas de r\u00e9ussir ou d\u2019\u00e9chouer comme le font les tests fonctionnels, et comme chaque application est diff\u00e9rente, il existe diff\u00e9rents crit\u00e8res pour d\u00e9terminer ce qui doit provoquer un \u00e9chec.\u00a0 Toutes les exigences habituelles d\u2019un test de charge, y compris les donn\u00e9es de test et les utilisateurs de test, s\u2019appliquent toujours, y compris l\u2019\u00e9tat de la base de donn\u00e9es elle-m\u00eame, avant et apr\u00e8s le test.\u00a0 Il est toujours bon d\u2019effacer les transactions ajout\u00e9es pour ne pas laisser de traces derri\u00e8re soi.<\/p>\n<div class=\"entry-content\">\n<p>Quelqu\u2019un parmi nos lecteurs a-t-il essay\u00e9 cette m\u00e9thode dans son entreprise ?\u00a0 Si oui, souhaitez-vous partager votre exp\u00e9rience avec nous ?<\/p>\n<\/div>",
        "protected": false
    },
    "excerpt": {
        "rendered": "<p>Un test comme celui que vous utiliseriez dans le cadre d\u2019un test de charge r\u00e9gulier avant la sortie d\u2019une version n\u2019est pas un bon test pour plusieurs raisons.<\/p>",
        "protected": false
    },
    "author": 1,
    "featured_media": 1419,
    "comment_status": "closed",
    "ping_status": "closed",
    "sticky": false,
    "template": "",
    "format": "standard",
    "meta": {
        "_acf_changed": false,
        "footnotes": ""
    },
    "categories": [
        36
    ],
    "tags": [
        31,
        32
    ],
    "class_list": [
        "post-1417",
        "post",
        "type-post",
        "status-publish",
        "format-standard",
        "has-post-thumbnail",
        "hentry",
        "category-test-de-charge",
        "tag-test-de-surcharge",
        "tag-tests-de-verification-de-build-bvt"
    ],
    "acf": [],
    "aioseo_notices": [],
    "_links": {
        "self": [
            {
                "href": "https:\/\/sqalogic.com\/fr\/wp-json\/wp\/v2\/posts\/1417",
                "targetHints": {
                    "allow": [
                        "GET"
                    ]
                }
            }
        ],
        "collection": [
            {
                "href": "https:\/\/sqalogic.com\/fr\/wp-json\/wp\/v2\/posts"
            }
        ],
        "about": [
            {
                "href": "https:\/\/sqalogic.com\/fr\/wp-json\/wp\/v2\/types\/post"
            }
        ],
        "author": [
            {
                "embeddable": true,
                "href": "https:\/\/sqalogic.com\/fr\/wp-json\/wp\/v2\/users\/1"
            }
        ],
        "replies": [
            {
                "embeddable": true,
                "href": "https:\/\/sqalogic.com\/fr\/wp-json\/wp\/v2\/comments?post=1417"
            }
        ],
        "version-history": [
            {
                "count": 5,
                "href": "https:\/\/sqalogic.com\/fr\/wp-json\/wp\/v2\/posts\/1417\/revisions"
            }
        ],
        "predecessor-version": [
            {
                "id": 4788,
                "href": "https:\/\/sqalogic.com\/fr\/wp-json\/wp\/v2\/posts\/1417\/revisions\/4788"
            }
        ],
        "wp:featuredmedia": [
            {
                "embeddable": true,
                "href": "https:\/\/sqalogic.com\/fr\/wp-json\/wp\/v2\/media\/1419"
            }
        ],
        "wp:attachment": [
            {
                "href": "https:\/\/sqalogic.com\/fr\/wp-json\/wp\/v2\/media?parent=1417"
            }
        ],
        "wp:term": [
            {
                "taxonomy": "category",
                "embeddable": true,
                "href": "https:\/\/sqalogic.com\/fr\/wp-json\/wp\/v2\/categories?post=1417"
            },
            {
                "taxonomy": "post_tag",
                "embeddable": true,
                "href": "https:\/\/sqalogic.com\/fr\/wp-json\/wp\/v2\/tags?post=1417"
            }
        ],
        "curies": [
            {
                "name": "wp",
                "href": "https:\/\/api.w.org\/{rel}",
                "templated": true
            }
        ]
    }
}