Heim >Technologie-Peripheriegeräte >KI >Maschinelles Lernen ermöglicht hochwertiges Software-Engineering
Übersetzer |. Zhu Xianzhong
Rezensent |. Im Laufe der Geschichte des Softwaretests werden Sie jedoch feststellen, dass viele Tests oft auf dem Niveau von Vermutungen bleiben. Mit anderen Worten: Beim Testen stellt sich der Entwickler den Betriebsprozess des Benutzers vor, schätzt die mögliche Belastung ab und analysiert die benötigte Zeit. Anschließend führt er den Test durch und vergleicht die aktuellen Ergebnisse mit der Basisantwort. Wenn wir feststellen, dass keine Regression vorliegt, gilt der aktuelle Build-Plan als korrekt. Fahren Sie dann mit den nachfolgenden Tests fort. Wenn es eine Regression gibt, geben Sie diese zurück. Meistens kennen wir die Ausgabe bereits, obwohl sie besser definiert werden muss – die Grenzen der Regression sind klar und nicht so unscharf. Tatsächlich kommen hier Systeme des maschinellen Lernens (ML) und prädiktive Analysen ins Spiel – und beenden die Mehrdeutigkeit.
Nach Abschluss des Tests prüft der Leistungsingenieur nicht nur das arithmetische Mittel und das geometrische Mittel der Ergebnisse, sondern auch die relevanten Prozentdaten. Wenn das System beispielsweise läuft, werden oft 10 % der langsamsten Anfragen durch Systemfehler verursacht – dieser Fehler führt zu einer Bedingung, die sich immer auf die Geschwindigkeit des Programms auswirkt.
Während wir die in den Daten verfügbaren Attribute manuell in Beziehung setzen können, verknüpft ML die Datenattribute möglicherweise schneller als Sie. Nachdem die Bedingungen identifiziert wurden, die 10 % der fehlerhaften Anfragen verursachen, können Leistungsingenieure Testszenarien erstellen, um das Verhalten zu reproduzieren. Das Ausführen von Tests vor und nach einem Fix kann helfen, zu bestätigen, dass der Fix korrigiert wurde.
Abbildung 1: Gesamtvertrauen in Leistungsindikatoren Leistung von maschinellem Lernen und Datenwissenschaft
Maschinelles Lernen hilft, die Softwareentwicklung zu fördern und die betreffende Entwicklungstechnologie stärker und benutzerfreundlicher zu machen verschiedene Bereiche und Branchen. Wir können kausale Muster aufdecken, indem wir Daten aus Pipelines und Umgebungen in Deep-Learning-Algorithmen einspeisen. Prädiktive Analysealgorithmen in Kombination mit Performance-Engineering-Methoden ermöglichen einen effizienteren und schnelleren Durchsatz, gewinnen Einblicke in die Art und Weise, wie Endbenutzer Software in natürlichen Szenarien verwenden, und helfen Entwicklern, die Wahrscheinlichkeit zu verringern, dass fehlerhafte Produkte in Produktionsumgebungen verwendet werden. Indem Sie Probleme und ihre Ursachen frühzeitig erkennen, können Sie sie frühzeitig im Entwicklungslebenszyklus beheben und Auswirkungen auf die Produktion verhindern. Insgesamt gibt es hier einige Möglichkeiten, wie Sie Predictive Analytics nutzen können, um die Anwendungsleistung zu verbessern.
„Big Data“ bezieht sich normalerweise auf einen Datensatz. Ja, es handelt sich um einen großen Datensatz, die Geschwindigkeit nimmt schnell zu und der Inhalt ändert sich stark. Die Analyse solcher Daten erfordert spezielle Methoden, damit wir daraus Muster und Informationen extrahieren können. In den letzten Jahren haben Verbesserungen bei Speicher, Prozessoren, Prozessparallelität und Algorithmendesign dazu geführt, dass Systeme große Datenmengen in angemessener Zeit verarbeiten können, was eine breitere Nutzung dieser Methoden ermöglicht. Um aussagekräftige Ergebnisse zu erhalten, müssen Sie die Datenkonsistenz sicherstellen.
Zum Beispiel muss jedes Projekt das gleiche Ranking-System verwenden. Wenn also ein Projekt 1 als Schlüsselwert verwendet und ein anderes 5 – genau wie wenn Leute „DEFCON 5“ verwenden, um „DEFCON 1“ zu bedeuten, dann sind die Werte muss vor der Verarbeitung normalisiert werden. Prädiktive Algorithmen bestehen aus Algorithmen und den Daten, in die sie einspeisen, und die Softwareentwicklung generiert riesige Datenmengen, die bis vor Kurzem ungenutzt lagen und darauf warteten, gelöscht zu werden. Allerdings können Predictive-Analytics-Algorithmen diese Dateien verarbeiten, um auf der Grundlage dieser Daten Fragen zu Mustern zu stellen und zu beantworten, die wir nicht erkennen können, wie zum Beispiel:
Diese Fragen und ihre Antworten dienen der prädiktiven Analyse – einem besseren Verständnis dessen, was wahrscheinlich passieren wird.
Ein weiterer wichtiger Bestandteil der Predictive Analytics ist der Algorithmus, den Sie sorgfältig auswählen oder implementieren müssen. Es ist von entscheidender Bedeutung, einfach anzufangen, da Modelle tendenziell immer komplexer werden, immer empfindlicher auf Änderungen in den Eingabedaten reagieren und möglicherweise Vorhersagen verzerren. Sie können zwei Arten von Problemen lösen: Klassifizierung und Regression (siehe Abbildung 2).Klassifizierung
Abbildung 2: Klassifizierung und Regression neuronaler Netze
#🎜 🎜#Neuronale Netze lernen anhand von Beispielen und nutzen historische und aktuelle Daten, um den zukünftigen Wert vorherzusagen. Ihre Architektur ermöglicht es ihnen, komplexe, in Daten verborgene Zusammenhänge zu erkennen und so die Art und Weise nachzubilden, wie unser Gehirn Muster erkennt. Sie bestehen aus vielen Schichten, die Daten akzeptieren, Vorhersagen berechnen und die Ausgabe als einzelne Vorhersage bereitstellen.Entscheidungsbaum
Ein Entscheidungsbaum ist eine Analysemethode, die Ergebnisse in einer Reihe von „Wenn/Dann“-Optionen darstellt, um das Potenzial zu antizipieren Risiken und Vorteile bestimmter Optionen. Es kann alle Klassifizierungsprobleme lösen und komplexe Fragen beantworten.Wie in Abbildung 3 dargestellt, ähnelt ein Entscheidungsbaum einem Top-Down-Baum, der von einem Algorithmus generiert wird, der jede Komponente identifizieren kann, die die Daten in Zweige aufteilt -ähnliche Partitionen zur Veranschaulichung zukünftiger Entscheidungen und zur Identifizierung von Entscheidungspfaden.
Wenn das Laden länger als drei Sekunden dauert, handelt es sich bei einem Zweig im Baum möglicherweise um einen Benutzer, der seinen Einkaufswagen verlassen hat. Darunter kann ein weiterer Zweig anzeigen, ob es sich um eine Frau handelt. Eine „Ja“-Antwort erhöht den Einsatz, da Analysen zeigen, dass Frauen eher zu Impulskäufen neigen und diese Verzögerung zum Grübeln führen kann.
Abbildung 3: Beispiel für einen Entscheidungsbaum
Lineare und logistische Regression Regression ist eine der beliebtesten statistischen Methoden. Dies ist von entscheidender Bedeutung bei der Schätzung von Zahlen, beispielsweise wie viele zusätzliche Ressourcen wir während des Black Friday-Verkaufs zu jedem Service hinzufügen müssen. Viele Regressionsalgorithmen sind darauf ausgelegt, Beziehungen zwischen Variablen abzuschätzen und Schlüsselmuster in großen und gemischten Datensätzen sowie die Beziehungen zwischen ihnen zu finden. Es reicht von einfachen linearen Regressionsmodellen (Berechnung einer geraden Linienfunktion, die zu den Daten passt) bis hin zur logistischen Regression (Berechnung einer Kurve) (Abbildung 4).
#🎜 🎜#lineare Regression | # 🎜 🎜#|
Logistische Regression | |
wird verwendet, um Werte in einem kontinuierlichen Bereich zu definieren, beispielsweise das Risiko von Benutzerverkehrsspitzen in den nächsten Monaten. |
Dies ist eine statistische Methode, bei der Parameter auf der Grundlage alter Sätze vorhergesagt werden. Es eignet sich am besten für die binäre Klassifizierung: Datensätze mit y=0 oder 1, wobei 1 die Standardklasse different darstellt. Sein Name kommt von seiner Konvertierungsfunktion ( ist eine logische Funktion ) . |
Es wird als y=a+bx dargestellt, wobei x der Eingabesatz ist, der zur Bestimmung des Ausgangs y verwendet wird. Die Koeffizienten a und b werden verwendet, um die Beziehung zwischen x und y zu quantifizieren, wobei a der Achsenabschnitt und b die Steigung der Geraden ist. |
Es wird durch die logistische Funktion dargestellt: wobei , β0 der Achsenabschnitt β ist 1 ist der Tarif . Es verwendet Trainingsdaten, um Koeffizienten zu berechnen, die den Fehler zwischen vorhergesagten und tatsächlichen Ergebnissen minimieren. |
Das Ziel besteht darin, die gerade Linie anzupassen, die den meisten Punkten am nächsten liegt, und so den Abstand oder Fehler zwischen y und der geraden Linie zu verringern. |
Es bildet eine S-förmige Kurve, bei der ein Schwellenwert angewendet wird, um die Wahrscheinlichkeiten in binäre Klassifizierungen umzuwandeln. |
Abbildung 4: Lineare Regression vs. logistische Regression
Dies sind überwachte Lernmethoden, da der Algorithmus nach bestimmten Eigenschaften sucht. Unüberwachtes Lernen kommt zum Einsatz, wenn Sie kein bestimmtes Ergebnis vor Augen haben, aber mögliche Muster oder Trends erkennen möchten. In diesem Fall analysiert das Modell so viele Merkmalskombinationen wie möglich, um Korrelationen zu finden, auf die der Mensch reagieren kann. Abbildung 5: Überwachtes vs. unüberwachtes Lernen Sobald alle Informationen gesammelt sind, müssen sie gespeichert und mithilfe geeigneter Tools und Algorithmen analysiert werden. Zu diesen Daten können Fehlerprotokolle, Testfälle, Testergebnisse, Produktionsereignisse, Anwendungsprotokolldateien, Projektdokumente, Ereignisprotokolle, Ablaufverfolgungen und mehr gehören. Wir können dies dann auf die Daten anwenden, um verschiedene Erkenntnisse zu gewinnen:
Fehler in der Umgebung analysierenAuswirkungen auf das Kundenerlebnis bewerten
Problemmuster identifizieren
Fazit
Softwareentwickler haben seit den Anfängen der Programmierung Hunderte von Annahmen getroffen. Doch die digitalen Nutzer von heute sind sich dessen bewusster und weniger tolerant gegenüber Fehlern und Misserfolgen. Andererseits bemühen sich Unternehmen auch darum, durch maßgeschneiderte Dienste und komplexe Software, die immer schwieriger zu testen ist, ansprechendere und ausgefeiltere Benutzererlebnisse zu bieten.Heutzutage muss alles reibungslos funktionieren und alle gängigen Browser, Mobilgeräte und Apps unterstützen. Schon ein Absturz von nur wenigen Minuten kann Schäden in Höhe von mehreren Tausend oder Millionen Dollar verursachen. Um das Auftreten von Problemen zu verhindern, müssen Teams Observability-Lösungen und Benutzererfahrung während des gesamten Softwarelebenszyklus integrieren. Die Verwaltung der Qualität und Leistung komplexer Systeme erfordert mehr als nur die Ausführung von Testfällen und Lasttests. Mithilfe von Trends können Sie feststellen, ob und wie schnell eine Situation unter Kontrolle ist, sich verbessert oder verschlechtert. Die Technologie des maschinellen Lernens kann dabei helfen, Leistungsprobleme vorherzusagen, damit Teams korrigierende Anpassungen vornehmen können. Lassen Sie uns abschließend mit einem Zitat von Benjamin Franklin abschließen: „Eine Unze Prävention ist ein Pfund Heilung wert.“ Universität in Weifang und ein Veteran in der freiberuflichen Programmierbranche.
Das obige ist der detaillierte Inhalt vonMaschinelles Lernen ermöglicht hochwertiges Software-Engineering. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!