Forum: Ausbildung, Studium & Beruf berufliche Weiterbildung: welcher Programmiersprache am besten für Testautomatisierung zu lernen?


von I. B. (colivo)


Lesenswert?

Hallo,

ich wollte mich im Bereich SW-Testen weiterentwickeln. 

Heutzutage ist die Testautomatisierung sehr verbreitet und es ist für 
einen Einsteiger beim ersten Schritt wichtig, wenn nicht sofort vom 
Anfang die komplette AutomatisierungsProgramm schreiben - dann die 
Testautomatisierung anpassen oder ergänzen zu können. Bei weiteren 
Schritten könnte es als Ziel sein, die Testautomatisierung schreien zu 
können.

Zur Hintergrundinfo: erste Erfahrung im SW-Test ist vorhanden. Das war 
im Bereich Automotive: da würde ich sehr gerne auch weitermachen, da ich 
schon einige Tools davon kenne, aber Bereich automotive ist kein ultima 
für mich: die Automobilindustrie ist nicht überall gleich stark 
vertreten. Ausgangspunkt: die Grundlagen von C kenne ich: wie Arrays, 
Schleifen usw.: in Praxis habe ich nicht programmiert.



1. Meine Frage wäre, welche Programmiersprache wäre es am sinnvollsten 
für Bereich SW-Tests zu lernen?

In der Stellenanzeigen sehe ich C, C++, Python,       

1a.    C# - weniger, aber nimmt in letzte Zeit zu, oder?

1b.    Öfter sehe ich in der Stellenanzeigen C, C++.

1c.     Sind C#, C++ - mehr zukunftsorientiert? 

1d.    Geht es darum ob Compiler (C, C++, Python) oder per Interpreter 
wie in C# ? Was ist für die Testautomatisierung typischer? Was ist 
zukunftsorientiert? Was ist für die Testautomatisierung (allgemein) und 
dem Bereich Automobilindustrie typischer?

1e.    Ich habe die Schulungen von Agentur für Arbeit geschaut und da 
habe ich die Kombinationen von ISTQB-Schulung mit C++ gefunden. Beim 
gestallten der Kurse hat die AA bestimmt etwas überlegt...



2.   Kann ich die Microsoft Visual Studio 2019 fürs Lernen C++ als IDE 
benutzen? Microsoft Visual Studio 2019 kenne ich schon bisschen.



3.     Ich habe ein Paar Lernbücher C++ geschaut (Beide Bücher Verfügen 
Übungsbeispiele zum Download...):

a) https://www.thalia.de/shop/home/artikeldetails/ID146088693.html    
Vorteile:  das Buch ist für Beginner, die Serie "für Dummies" ist i.d.R. 
didaktisch gut und verständlich, frisch ausgegeben 03.06.2020,  auf der 
Seite 6 der Leseprobe ist die "Microsoft visual Studio 2019" als IDE 
aufgeführt..., 464 Seiten

Die Programmierung mit C++ muss nicht schwer sein. Mit diesem Buch 
werden Sie schon ab dem ersten Kapitel eigene Programme schreiben und 
die C++-Syntax von der Pike auf lernen, verstehen und anwenden. Arnold 
Willemer erklärt Ihnen, wie Sie Code zu Modulen zusammenfassen, die Sie 
immer wieder verwenden können, und schon bald werden Sie wissen, wie man 
Variablen deklariert und mathematische Operationen ausführt. So ist dies 
das richtige Buch für Ihren Einstieg in C++.

b) https://www.thalia.de/shop/home/artikeldetails/ID40941669.html?retn=thdedvbusb:devi

Das Buch ist weniger frisch: vom 2016. Ist das schlecht oder als 
Anfänger werde ich das nicht spüren? Das Buch hat über 800 Seiten. Das 
Buch ist zwar scheint für Anfänger gestaltet, beinhaltet aber auch die 
Vertiefende Inhalte: dynamische Arrays, Lambda-Ausdrücke, Streams, UML 
usw...

Vom Buch: Für alle, die nicht nur einen einfachen Einstieg in C++ 
suchen, sondern sich darüber hinaus mit fortgeschrittener Programmierung 
beschäftigen wollen, ist dieses Buch genau das richtige. John Paul 
Mueller und Jeff Cogswell führen Sie zunächst in die Grundlagen von C++ 
ein. Sie lernen Objekte und Klassen kennen und sie erklären Ihnen, wie 
Sie Probleme erkennen und lösen. Danach steigen Sie in die 
fortgeschrittene Programmierung ein und erfahren alles Wichtige zum 
Lesen und Schreiben von Daten, um schließlich eigene Templates und Ihre 
erste Boost-Anwendung zu bauen



3b1.  Sind diese Vertiefungen für SW-Tester und vielleicht für die 
Testautomatisierung relevant? Ein Mal bei einem Vorstellungsgespräch 
habe ich gehört: schade, dass Sie über UML nichts kennen...

Und als IDE hier ist nicht "Microsoft Visual Studio" aufgeführt, sondern 
Code::Blocks (Version 13:12)...  Die Version habe ich geschaut - habe 
ich die Version zum Download nicht gefunden, sondern es gibt höhere 
Versionen.

3b2.    Werden die Übungen vom 2016 mit höheren IDE-Versionen garantiert 
funktionieren?

3b3.    Kann man trotzdem zum Übungszweck auch Microsoft Visual Studio 
verwenden? (wenn eine Auswahl gibt - Visual Studio wäre mir lieber)

3b4.    Oder welcher Themen werden für Testautomatisierung noch 
relevant? z.B. Datenbanken? 



4.   Welches Buch würden Sie mir empfehlen?

von Pandur S. (jetztnicht)


Lesenswert?

Eine gute Antwort und eine Schlechte.

Die Gute : Vergiss die Selektion, nicht der Rede wert.
Die Schlechte  : Mach alle - als Ziel. Aber Eine nach der Anderen. 
Gesteuert durch den Bedarf. Ja, es dauert Jahre. Hast du was anderes 
geplant ?

Wenn du Eine kannst hast du fast Alle. Bis auf die Details. Es sind die 
Details welche den Aufwand machen. Die Debugging konzepte sind aehnlich.

: Bearbeitet durch User
von Senf D. (senfdazugeber)


Lesenswert?

I. B. schrieb:
> Geht es darum ob Compiler (C, C++, Python) oder per Interpreter wie in C# ?

???

von Stefan H. (Firma: dm2sh) (stefan_helmert)


Lesenswert?

Mach Python unter Linux.

von อวัยวะเพศชายใหญ่ (Gast)


Lesenswert?

Java ist doch hipp

von Motzkopp (Gast)


Lesenswert?

Unittests schreibt man in der Sprache, in der das Programm geschrieben 
ist, z.B. Java oder C#. In Java ist das Unittest-Framework zB. in die 
Sprache integriert. Es gibt mittlerweile selbst im SAP Bereich die 
Möglichkeit Unitests zu schreiben. Klassischerweise werden Unitests aber 
von den Entwicklern geschrieben. Es gibt andere Testframeworks speziell 
für Tester, dafür braucht man aber nicht so eine hohe Sprache wie C++ zu 
erlernen.

von I. B. (colivo)


Lesenswert?

Joggel E. schrieb:
> Eine gute Antwort und eine Schlechte.
>
> Die Gute : Vergiss die Selektion, nicht der Rede wert.
> Die Schlechte  : Mach alle - als Ziel. Aber Eine nach der Anderen.
> Gesteuert durch den Bedarf. Ja, es dauert Jahre. Hast du was anderes
> geplant ?
>
> Wenn du Eine kannst hast du fast Alle. Bis auf die Details. Es sind die
> Details welche den Aufwand machen. Die Debugging konzepte sind aehnlich.

Danke für die Antworten an alle.

Ja, wenn alle - das dauert Jahre, klar...
Und jetzt habe ich einige Monaten bisschen mehr Zeit. Die Monaten wollte 
ich investieren.

Bei einer neuen Herausforderung - wenn man auch abstrakt nach solche 
sucht - dann findet man nicht alle Details auf die man sich 
vorbereitete. Daher, auch eine Präzision in der Suchphase/Vorbereitung 
ist wichtig.

Ist C++ schwieriger für einen Fragesteller wie ich?
Wenn ich mir C++ nehme - welcher IDE wäre empfohlen? Ich habe mir Mal 
das installiert, aber nicht für C++.

von I. B. (colivo)


Lesenswert?

Senf D. schrieb:
> I. B. schrieb:
>> Geht es darum ob Compiler (C, C++, Python) oder per Interpreter wie in C# ?
>
> ???

wenn ich was falsch geschrieben haben sollte - bitte um Entschuldigung:
Bei denen die es korrigieren mehr als belachen wollten.

von I. B. (colivo)


Lesenswert?

Stefan H. schrieb:
> Mach Python unter Linux.

Leider habe ich keine Ahnung von Linux, daher kämme ich nicht schneller 
zum Ziel.

von I. B. (colivo)


Lesenswert?

อวัยวะเพศชายใหญ่ schrieb:
> Java ist doch hipp

Danke, nur im automotiven-Test-Bereich habe ich die JAVA nicht begegnet.
Ist JAVA hier weniger verbreitet hier?

Ja, ich könnte mir auch andere Bereiche vorstellen, nun im automotiven 
habe ich schon welche Erfahrungen, und es wäre zu schade, die 
wegzuwerfen...
Oder sehen Sie es anders bei der JAVA?

von Frank K. (fchk)


Lesenswert?

I. B. schrieb:
> Stefan H. schrieb:
>> Mach Python unter Linux.
>
> Leider habe ich keine Ahnung von Linux, daher kämme ich nicht schneller
> zum Ziel.

Dann wäre das eine zu schließende Lücke. Linux ist heute kein Exot mehr, 
und viele Tools kommen aus dem Unix/Linux-Bereich. Und viele 
Vorgehensweisen. Z.B. dass man nicht unbedingt mit einer integrierten 
Umgebung arbeitet, sondern viele Einzeltools wie make, Editor, Compiler, 
Linker, Debugger,... hat. Damit werden auch viele Dinge in der 
Funktionalität verständlich, die durch eine IDE und ein proprietäres 
Buildsystem zugedeckt werden.

Letztendlich musst Du lernen zu lernen. Nicht in Form von 
abgespeicherten Prozeduren zu bestimmten Produkten, sondern in Form 
eines funktionalen Verständnisses.

Programmiersprachen: im Embedded-Bereich ist C/C++ Standard. Python ist 
eher als Bindeglied zu verstehen.

Automotive ist noch einmal speziell, da gibt es viele 
branchenspezifische Tools und Vorgehensweisen. Da bin ich dann raus.

fchk

von Thomas1 (Gast)


Lesenswert?

Lern Python auf dem Raspberry Pi.

von MaWin (Gast)


Lesenswert?

I. B. schrieb:
> Stefan H. schrieb:
> Mach Python unter Linux.
>
> Leider habe ich keine Ahnung von Linux, daher kämme ich nicht schneller
> zum Ziel.

Dann kommst du gar nicht zum Ziel, denn was meinst du, wodrunter die 
meisten Jenkins Server laufen.
Unit-Tests wird man die nicht geben, aber Jenkins und Python oder 
wasauchimmer die Firma benutzt.

von I. B. (colivo)


Lesenswert?

Frank K. schrieb:
> I. B. schrieb:
>> Stefan H. schrieb:
>>> Mach Python unter Linux.
>>
>> Leider habe ich keine Ahnung von Linux, daher kämme ich nicht schneller
>> zum Ziel.
>
> Dann wäre das eine zu schließende Lücke. Linux ist heute kein Exot mehr,
> und viele Tools kommen aus dem Unix/Linux-Bereich. Und viele
> Vorgehensweisen. Z.B. dass man nicht unbedingt mit einer integrierten
> Umgebung arbeitet, sondern viele Einzeltools wie make, Editor, Compiler,
> Linker, Debugger,... hat. Damit werden auch viele Dinge in der
> Funktionalität verständlich, die durch eine IDE und ein proprietäres
> Buildsystem zugedeckt werden.
>
> Letztendlich musst Du lernen zu lernen. Nicht in Form von
> abgespeicherten Prozeduren zu bestimmten Produkten, sondern in Form
> eines funktionalen Verständnisses.
>
> Programmiersprachen: im Embedded-Bereich ist C/C++ Standard. Python ist
> eher als Bindeglied zu verstehen.
>
> Automotive ist noch einmal speziell, da gibt es viele
> branchenspezifische Tools und Vorgehensweisen. Da bin ich dann raus.
>
> fchk

Danke.
Sie haben Recht, ich muss noch lernen: make, Editor, Compiler,
Linker, Debugger,...und functional...

Zum besseren verständnis.
Es gibt die Testdurchführungs-SW, in welchen die Testsuites und 
TestCases durchlaufen lassen kann, z.B.:

5. Exam. in zusammenspiel mit Control Desk & CANoe. Die "fehlende" 
Test-Umgebung könnte als Model mit Matlab-Simulink beschrieben werden.

Verstehe ich es richtig, dass z.B. Python (o.a.?) ist eine 
Bindungs-Instanz ist, welches "Exam", Matlab-Simulink, CANoe, 
Control-Desk u.a. bindet indem es die Variablen-Vereinheitlichung (für 
alle erwähnen Tools sind) macht und die Algorithmisierung des Abläufe 
(Pre -> Action -> Post-Condition)?

Ist der Abgleich zwischen "ist-Ergebnis" und zwischen "expected Result" 
von Exam ausgeführt?

Ich wollte es besser verstehen, welche Rollen aus der Sicht der 
Testautomatisierung jede Tool macht: "Exam", Matlab-Simulink, CANoe, 
Control-Desk, Python.
 Sie haben Embedded-Bereich erwähnt... Aber hier war kein C/C++. Was 
habe ich flasch verstanden? Oder könnte in dem Fall C/C++ locker statt 
Python sein?

von I. B. (colivo)


Lesenswert?

MaWin schrieb:
> I. B. schrieb:
>> Stefan H. schrieb:
>> Mach Python unter Linux.
>>
>> Leider habe ich keine Ahnung von Linux, daher kämme ich nicht schneller
>> zum Ziel.
>
> Dann kommst du gar nicht zum Ziel, denn was meinst du, wodrunter die
> meisten Jenkins Server laufen.
> Unit-Tests wird man die nicht geben, aber Jenkins und Python oder
> wasauchimmer die Firma benutzt.

Danke für Tipp. Ja, verstanden, Linux  muss benutzt werden... nurwollte 
ich zuerst mit der Programmirung loslegen: Testautomatisierung ist ein 
Längerfristiges Ziel. Primäres Ziel: SW-Tester (lieber automotive aber 
anders als Plan B auch geht), der die Testautomatisierung und 
Zusammenspiel von Tools selbst schnell anpassen/optimieren kann.

von A. S. (Gast)


Lesenswert?

Was ich nicht verstehe: Du willst Software testen, ohne selber 
Software-Erfahrung zu haben. Das ist OK, denn viele Test laufen ja auf 
einem höheren Level mit dem Produkt, also als Black-Box-Test.

Wenn Du White-Box-Tests machen willst, also den Code selber, nicht die 
Funktion, dann solltest Du m.E. erstmal SW-Erfahrung sammeln, also SW 
schreiben. (Wie jemand schon schrieb, in irgendeiner Sprache virtuos 
werden)

Bei Blackbox-Tests ist die Programmiersprache völlig unabhängig von der 
verwendeten SW des DUT (Device under Test). Hier geht es eher darum, 
verschiedene Testszenarien nachzubilden und das Verhalten der SW 
auszuwerten. Also eher etwas, mit dem AD- und DA-Wandler angesteuert und 
visualisiert werden, z.B. LabVIEW oder Matlab. Da reicht es, mit den 
Aufgaben zu wachsen.

Bei White-Box-Tests sollten die Tester genauso gut programmieren können 
wie die SW-Entwickler, eher besser.

von I. B. (colivo)


Lesenswert?

Die Arbeitsagentur hat die Grunde gefunden, die Kurse so zu gestalten:

C++/Qt-Entwickler/-in mit der Zusatzqualifikation Softwaretester/-in

https://kursnet-finden.arbeitsagentur.de/kurs/veranstaltungsDetail.do;jsessionid=cQfAg_CLmNbi-psyE8Ot-W5GFLT2KWEah0OkEQk5Vj1GAzNoh0fa!1334379066?sasd=true&seite=1&anzahlSeite=200&gv=BIBERACHANDERRISS&ss=C+1435-10&vg_id=105208441&anzahlGesamt=191&ae=3482&gpBy=gvgOrt&doNext=vgdetail&out=gvgOrt

Hier gibt es auch das Programm für KursTeil- "C++"
wo die Grundlagen mehr oder weniger identisch mit den Grundlagen in 
Bücher sind, aber was ich in der Bücher noch nicht auf den ersten Blick 
sehe, das sind die Inhalte:

Grundlagen Qt (ca. 3 Tage)
Bibliotheksmodule und Qt-Tools
Entwicklung: Qt Creator IDE, Qt Assistant,
Qt Designer, Qt Linguist, Qt Confiq
Mehrsprachigkeit und Lokalisation
Unicode-Unterstützung und Codes

Signal-Slot-Konzept (ca. 1 Tag)
Signale mit Slots verbinden
Signale und Slots implementieren
AutoConnection, DirectConnection, QueuedConnection

Objekte in Qt (ca. 3 Tage)
Objekt-Verwaltungs-Bäume
Fensterprogrammierung
Layoutmanagement
Meta-Object System
Memory Management
Event Handling

GUI-Techniken (ca. 4 Tage)
QWidget-Klasse und Verschachtelung
GUI-Programmierung mit QtDesigner
Qt Quick und QML (Qt Meta-Object Language)
QPainter, Varianten der Datenzeichnung, 2D-Transformationen
Statusbar, Toolbar, Dockbar
Dialog-Varianten und einfache Eingabe-Widgets
Scroll- und Splitter-Widgets
Drag&Drop-Unterstützung

Unterstützende Techniken (ca. 2 Tage)
Drucken unter Qt
Qt-Container-Klassen und Iterationformen
SQL-Zugriffe und SQL-Modelle
Inter-Thread-Kommunikation und Synchronisation


7. Und jetzt überlege ich, wo ich diese Inhalte (Bücher) finde...
Habt ihr Ideen?


oder so:

https://kursnet-finden.arbeitsagentur.de/kurs/veranstaltungsDetail.do?seite=1&elearn=true&ue=25&bz=istqb&rg=ro&ursprung=einfacheSuche&us=J&vg_id=92902886&anzahlGesamt=12&uo=8.4053%2349.0097&doNext=vgdetail&anzahlSeite=200&gv=C+1435-10-10&rs=Karlsruhe&gpBy=gbZiel&ae=42&out=gbZiel



Und in dem Stellenagebot

https://www.emagine.org/join-us/details/softwaretester_c_schwerpunkt_integration/erlangen/tr078496.html

(nur als charakterliche Beispiel):
die von mir erwähnte SW-Tests und C++

und von Foren-Teilnehmer erwähnte:
In C++, OOP sowie im Unit-Testing und in Linux bringen Sie fundierte 
Kenntnisse mit.
Sie haben idealerweise Erfahrung im Umgang mit Raspberry Pis, Python, 
CI, Jenkins.

von I. B. (colivo)


Lesenswert?

A. S. schrieb:
> Was ich nicht verstehe: Du willst Software testen, ohne selber
> Software-Erfahrung zu haben. Das ist OK, denn viele Test laufen ja auf
> einem höheren Level mit dem Produkt, also als Black-Box-Test.
>
> Wenn Du White-Box-Tests machen willst, also den Code selber, nicht die
> Funktion, dann solltest Du m.E. erstmal SW-Erfahrung sammeln, also SW
> schreiben. (Wie jemand schon schrieb, in irgendeiner Sprache virtuos
> werden)
>
> Bei Blackbox-Tests ist die Programmiersprache völlig unabhängig von der
> verwendeten SW des DUT (Device under Test). Hier geht es eher darum,
> verschiedene Testszenarien nachzubilden und das Verhalten der SW
> auszuwerten. Also eher etwas, mit dem AD- und DA-Wandler angesteuert und
> visualisiert werden, z.B. LabVIEW oder Matlab. Da reicht es, mit den
> Aufgaben zu wachsen.
>
> Bei White-Box-Tests sollten die Tester genauso gut programmieren können
> wie die SW-Entwickler, eher besser.


Danke. Bis vor kürzem habe ich eher die Funktionstests durchgeführt und 
so manuell:
pre-Condition, action, post-Condition (Abgleich mit erwarteten Ergebnis 
/Evaluation)

und zum Teil automatisiert: das Testdurchführungsbericht war nach dem 
erfolgreichen Testrun von Tools erstellt. Wenn der TestRun wegen Fehler 
o.a. abgebrochen war - Mal konnte ich allein zu erledigen, und Mal - 
konnte ich nicht.

Dafür brauche ich wissen und Erfahrung und zuerst im ISTQB-KursBuch 
erfahre ich bald mehr Theorie, u.a.: zum White-Box- und Black-Box-Test. 
Bis jetzt konnte ich simple Sachen so, ohne Theorie... und jetzt brauche 
ich ja mehr. Ja, ich bin ein Querling und kein frischer 
Techn.-Informatik-Absolvent. Und ein Weg muss auch für mich existieren.

von Der wahre MaWin (Gast)


Lesenswert?

Definitiv Python. Aber bitte ab Version 3.x...

Wer schmeißt hier eigentlich Java in dir Runde ? Das ist bestenfalls für 
die Entwicklung von plattformunabhängigen GUIs zu gebrauchen und auch 
nur dann, wenn man ne ewige Abwärtskompatibilität möchte.

von I. B. (colivo)


Lesenswert?

Der wahre MaWin schrieb:
> Definitiv Python. Aber bitte ab Version 3.x...
>
> Wer schmeißt hier eigentlich Java in dir Runde ? Das ist bestenfalls für
> die Entwicklung von plattformunabhängigen GUIs zu gebrauchen und auch
> nur dann, wenn man ne ewige Abwärtskompatibilität möchte.

Danke.
Nur jetzt würde ich genauer verstehen, wo (mit welcher Rolle) die 
Programmiersprache Python/C/C++ unter der Tools hat?

Verstehe ich es richtig, dass z.B. Python (o.a.?) eine
Bindungs-Instanz ist, welches "Exam", Matlab-Simulink, CANoe,
Control-Desk ist und die "Python" u.a. bindet indem es die 
Variablen-Vereinheitlichung (für
alle erwähnen Tools) macht und die Algorithmisierung des Abläufe
(Pre -> Action -> Post-Condition)?

Ist der Abgleich zwischen "ist-Ergebnis" und zwischen "expected Result"
von Exam (Evaluation) ausgeführt?

Model ist in Matlab-Simulink beschrieben?

CANoe - Signalindication und zum Teil Simulation? (auch ControlDesk)?

Ich wollte es besser verstehen, welche Rollen aus der Sicht der
Testautomatisierung jede Tool macht: "Exam", Matlab-Simulink, CANoe,
Control-Desk, Python.

von A. S. (Gast)


Lesenswert?

I. B. schrieb:
> Verstehe ich es richtig, dass z.B. Python (o.a.?) eine Bindungs-Instanz
> ist, welches "Exam", Matlab-Simulink, CANoe, Control-Desk ist und die
> "Python" u.a. bindet indem es die Variablen-Vereinheitlichung (für alle
> erwähnen Tools) macht und die Algorithmisierung des Abläufe (Pre ->
> Action -> Post-Condition)?

Kannst Du vielleicht einmal das Buch oder Script verlinken, auf das Du 
Dich beziehst? Oder falls es Englisch ist, in Englisch formulieren / 
beschrieben?

von adian (Gast)


Lesenswert?

Eigentlich läuft es auf Folgendes hinaus, was da ist, wird verwendet!

Etwas Konkreter heißt, dass das man Unittests in der Sprache schreibt, 
in welcher auch die Software entwickelt wird. Für die Testergebnisse hat 
sich das xUnit Format weit verbreitet (Ich glaube das hat bei Java mal 
angefangen), das heißt du solltest, wenn es für deine Sprache mehrere 
Frameworks gibt eins wählen das dieses Format beherrscht.
Zusätzlich zu den Unittests gibt andere (zum Beispiel Module und 
Integration Tests), hier kann es Sinnvoll sein, eine mächtige Script 
Sprache zu verwenden. Python3 ist gerade der Klassen Primus, aber andere 
gehen auch, wichtig hierbei ist, dass du in endlicher Zeit zu einem 
Ergebnis kommst und "mal eben" (TM) was Hacken kannst.Keine Linux 
Kenntnis, halte ich in dem Bereich für einen Mangel welchen du abstellen 
solltest, Gerade auf Servern ist Windows nur ein Außenseiter.

Je nach Konkreter Aufgaben Stellung kann es auch gut sein, dass du dir 
Groovy und Selenium ansehen solltest. Das erste wird vom Jenkins, denn 
etwas in die Jahre gekommen Platzhirsch bei der Testautomatisierung 
verwendet um seine Buildpiplines Deklarativ zu beschreiben.
Glaub mir, dass willst du damit deine Tests auch unter Versionskontrolle 
kommen und du Fragen wie "warum ist das keinen vor zwei Jahren 
aufgefallen" beantworten kannst.
Selenium wiederum scheint so was wie der Goldstandard zu sein, um GUI zu 
prüfen, aber da es nicht so mein Gebiet ist, kann es sein das ich hier 
was verpasst habe.

Beitrag #6367340 wurde von einem Moderator gelöscht.
von I. B. (colivo)


Lesenswert?

I. B. schrieb:
> Die Arbeitsagentur hat die Grunde gefunden, die Kurse so zu gestalten:
>
> oder so:
>
> 
https://kursnet-finden.arbeitsagentur.de/kurs/veranstaltungsDetail.do?seite=1&elearn=true&ue=25&bz=istqb&rg=ro&ursprung=einfacheSuche&us=J&vg_id=92902886&anzahlGesamt=12&uo=8.4053%2349.0097&doNext=vgdetail&anzahlSeite=200&gv=C+1435-10-10&rs=Karlsruhe&gpBy=gbZiel&ae=42&out=gbZiel
>


Danke.

Es hat sich noch Frage zum Thema Selbstlernen Matlab-Simulink zum zweck 
model-based testing (option HiL o.a.)

Mit Physik war ich vor Jahren befreundet und vor eine Zeit simple Sachen 
mit Matlab-Simulink kenengelernt. Nun dachte ich beim Sebstlernen kostet 
Lizens zu teuer, aber jetzt habe ich Matlab-Home entdeckt, was preislich 
schon tragbar wäre.

Nun ich weiss nicht genau genau (thematisch bei Modell-Erstellen) ich 
mich vorbereiten muss... Man weiss es nicht bevor man was findet.
Aber wenn ich welche modell-Beispiele betrachten werde: dann vor allem 
GSM, Getriebe, Assystenzsyszeme, vielleicht Lenkung...   Thema 
Elekromobilität ist als weitere Prio: Batterie? Deren Steuerung?
Ich könnte mir vorstellen Matlab und Simulink -Home zu kaufen:

https://www.mathworks.com/products/matlab-home.html

Verstehe ich richtig, dass einfach Matlab und Simulink (ohne toolboxe) 
bekomme ich für 119,00 Euro?

Dann geht's um adds on (toolboxe). Da kann man nicht alles bestellen und 
ich will nicht in unnötiges investieren. Nach dem ich youtube-tutorials 
angeschaut habe - waren mechatronische Beispiele mit Hilfe von Toolbox 
Simscape   https://de.mathworks.com/products/simscape.html

1. Gibt es noch welche, die  es sehr erwünscht dazu für mein Zweck 
nehmen muss? Mein Ziel ist nicht viel ausgeben, aber mit 
modelling-techniken kennenzulernen. Ist Matlab & Simulink mit simScape 
zuerst ausreichend?

2. Ist bei bedarf möglich, später weitere adds bei Bedarf noch dazu 
nachinstallieren?

3. Matlab-Home macht Simulationen bis 1000 Blöcke möglich, bin ich 
richtig informiert? Ist diese Umfang Ausreichend für Modelling von GSM, 
Getriebe, Batterie?  1 Block bedeutet eine Handlung (z.B. Addition) oder 
wenn man manches ins Subsystem integriert - dann ist das Subsystem 1 
Block?

4. Mein Wünsch wäre zu verstehen und vielleicht zu üben, wie 
Matlab-Simulink mit C/C++ oder Python zusammenspielt. Brauche ich was 
dazu bestellen oder es geht auch in dem Umfang?

5. Wie lange ist Matlab-Home -Lizens gültig?

von I. B. (colivo)


Lesenswert?

adian schrieb:
> Eigentlich läuft es auf Folgendes hinaus, was da ist, wird verwendet!
>
> Etwas Konkreter heißt, dass das man Unittests in der Sprache schreibt,
> in welcher auch die Software entwickelt wird....

Vielen Dank für die Erklärung.
Es gibt noch viel zu machen, nun zuerst eines und dann das andere.

von XOR (Gast)


Lesenswert?

Was hier teilweise für ein Schwachsinn verzapft wird, von Leuten die 
Softwareentwicklung wohl nur aus ihrem eigenen Betrieb kennen. Anders 
kann man sich diesen Unsinn nicht erklären. Da wird Java zur Sprache für 
plattformunabhängigen GUIs degradiert, wohlgemerkt eine der am weitesten 
verbreitetsten Sprachen in der gesamten Welt der verteilten Systeme und 
Backend Entwicklung. Aber wenn man in seinem Automobil-Mikrokosmos lebt, 
dann sieht man eben auch nicht was wo anders passiert.

Aber zum TE. Es gibt nicht die eine Sprache zur Testautomatisierung. Man 
verwendet für die Tests in der Regel die gleiche Sprache, in dem die 
Software entwickelt wird oder eben fertige Tools, die speziell dafür 
gemacht sind. Ob man Go, Python, Java oder C/C++ lernt ist realtiv egal, 
die Konzepte vom programmieren her sind fast identisch, aber es macht 
natürlich immer Sinn die Sprache zu lernen, die am nächsten an der zu 
testenden Software dran ist. Das wird vermutlich C/C++ sein.

von Peanutsesser (Gast)


Lesenswert?

Jenkins nutzen um Test anzustoßen, der Rest ist Peanuts

von ChezzPlaya (Gast)


Lesenswert?

Aus deinem Postings heraus, merke ich, dass du

a) Keine Ahnung von SW-Etwicklung hast
b) Nichts studierst hast, zumindest kein technisches Fach
c) Einfach nur stupide alle möglichen Begrifflichkeiten aus der SW 
Entwicklung/Testing um dich herum schmeißt
d) ..ein, naja sorry, Troll bist
c) eine große Fresse und nix dahinter hast

von Schlaumaier (Gast)


Lesenswert?

Kannst du eine, kannst du alle.

Beim Lernen einer Programmiersprache ist das lernen der 
Programmiersprache das einfachste am programmieren.

Man kauft sich ein Buch, lernt die Syntax und das war's.

Was man erst durch viel Übung, logisches + mathematische Verständnis 
lernt ist das Strukturieren eine Programms. Was bedeutet ein Code so zu 
schreiben, das man sich nicht verheddert, und ihn nach 10 Jahren noch 
perfekt nachvollziehen kann. Und die Routinen so zu optimieren, das der 
Rechner nicht die Zunge aus den Hals raus hängen läßt beim abarbeiten.

Lerne BASIC oder C, das hilft dir als Programmiersprache immer.

Ich code alles in Basic. Egal ob Arduino  Windows-PC  Android. Nur der 
Compiler wechselt und die Syntax ist leicht anders. Halt einige 
Feinheiten.

von Sebastian S. (amateur)


Lesenswert?

Beschäftige Dich intensiv mit EINER Programmiersprache und lass den Rest 
auf Dich zukommen.

Kling komisch ist aber so!

Jeder Hersteller kocht in diesem Bereich sein eigenes Süppchen mit 
eigenen Vorstellungen und - man beachte - mit einem eigenen 
Softwarepool. Sogar die Formulare, die Du ausfüllen musst, sind von 
Betrieb zu Betrieb verschieden.
Ganz speziell wird es, wenn Du "vor Ort", also am Prüfstand, arbeitest. 
Da hängt Deine Arbeit auch noch von dem Hersteller der Prüfgeräte ab.

von I. B. (colivo)


Lesenswert?

A. S. schrieb:
> I. B. schrieb:
>> Verstehe ich es richtig, dass z.B. Python (o.a.?) eine Bindungs-Instanz
>> ist, welches "Exam", Matlab-Simulink, CANoe, Control-Desk ist und die
>> "Python" u.a. bindet indem es die Variablen-Vereinheitlichung (für alle
>> erwähnen Tools) macht und die Algorithmisierung des Abläufe (Pre ->
>> Action -> Post-Condition)?
>
> Kannst Du vielleicht einmal das Buch oder Script verlinken, auf das Du
> Dich beziehst? Oder falls es Englisch ist, in Englisch formulieren /
> beschrieben?

Ich meinte:

z.B. an einem HiL oder automatisierten (oder teil-automatisierten) 
Prüfplatz spielen gleichzeitig verschiedene Tools (HW, SW) zusammen.

Diese Zusammenspiel funktioniert durch die Verwendung und Bearbeitung 
von Variablen, Werten, Zuständen...
Bei diesem Zusammenspiel muss eine (oder mehrere) 
Schnitstelle/Tool/Instanz/Programmiersprache sein, die diese Variablen, 
Werte empfängt, bearbeitet, auswertet, zurücksendet (nach deren 
Bearbeitung). Also eine Instanz, wo die Variablen ursprünglich 
deklariert sind und von dort werden zu anderen zusammenspielenden 
Instanzen/Tools übernommen.

Jetzt liste ich die Rollen von Tools auf (wie ich es verstehe) und bitte 
Sie, mich bei Bedarf zu korrigieren, zu ergänzen:

Control Desk - virtueller Terminal zur operativen Eingabe und Ausgabe 
von Werten und Parameter, auch für operativen Parameter-Überwachung. 
Also: Operatives virtuelles Teil der Umgebung  des am Prüfstand (HiL) 
testendes Gerätes oder SW.  ?


Simulink - virtuelle mathematische Beschreibung der realen Testumgebung 
für nicht ganz operativen Eingriff. Bearbeitet Signale, Variablen, 
Werte, Zustände. ?

CANoe - Indication und Simulation von Signalen, Zuständen, Werte... (ich 
weiss, dass die Option Testautomatisierung gibt, aber mir nicht 
bekannt). ?

Exam oder Automation-Desk (o.a.) - hier werden TestCases zum Testsuites 
gesammelt. Und Testsuites zum TestThemas.
Hier werden auch Kriterien zum Auswerten der zu testenden Parameter 
implementiert, Form des Testberichtes, Erstellen vom primären 
Testbericht.
Ablaufsteuerung (Testcases Ausführungs-Reihenfolge im Testsuite) beim 
automatisierten Test-Ausführung. Steuerung der 
Ablauf-Testauftrags-Szenarien und Versionen beim automatisierten 
Testdurchlauf.  ?

Frage: Wo sind die Ausführungen von Testcases programmiert: auf der 
Ebene Vorbeidenung -> Action -> Result ? Ist das gerade die 
Programmiersprache: C/C++ oder Python?
Ich verstehe es so:
Signale, Werte, Zustände, Parameter von der zu Testenden HW/SW liegen 
hier dem alles zugrunde.

Der konkreter Testfall beschreibt die Testebene: Vorbedienung -> Action 
-> Result . Und das alles ist mit C/C++ oder Python realisierbar.
Die SignalNamen, Werte, Zustände müssen auch dem zu testenden SW/HW (zum 
Austausch/Steuerung) verständlich sein. Auch dem ControlDesk, auch dem 
Exam, auch der CANoe, auch dem Simulink müssen die Variablen 
verständlich sein.
Alle diese Tools kommunizieren mit einer Instanz/Tool/Sprache die die 
Abläufe im konkreten Testfall (Vorbedienung -> Action -> Result) steuern 
(oder mitsteuert).

So werden die SignalNamen, Werte, Zustände irgendwo in einer 
Sammelstelle/Tool/Programmiersprache vordefiniert/deklariert/aufgelistet 
oder bei Testfall-Nachbearbeitung/Verbesserung auch erweitert.

Wo werden die SignalNamen, Werte, Zustände abgelegt, so dass man die bei 
Bedarf findet? Wo man auch die neuen festlegen kann?

von Harald (Gast)


Lesenswert?

Wir haben damals im Studium erstmal mit Entwurfsmuster befasst, welche 
gibt es und wie unterscheidet sich zum Beispiel Funktionale 
Programmierung von OOP und solche Sachen. Alles ohne auch nur einen 
Compiler für eine Sprache zu nutzen, eigentlich sogar ohne PC und nur 
mit Schreibblock/Stift.

Erst dann, also wenn sich der Kopf auf Problemlösung in Software 
eingestellt hat, ging es praktisch mit C und C++ bzw. Smalltalk los.
Den Syntax hat man ja in ein paar Stunden/Tagen drin und dann hat man 
irgendwo auch keine Probleme mit jeder anderen Programmiersprache.

Ich empfand diesen Weg eigentlich sehr gut, heute scheinen aber alle 
Leute immer gleich zig Sprachen und GUI-Toolkits "lernen" zu wollen ohne 
sich Gedanken zu machen wie Software eigentlich aufzubauen ist. Da 
werden Bücher zu C, C++, C#, Python und empfohlen und bestellt, aber 
kein einziges Buch über Softwaredesign.
Warum??? Lehrt man das heute so an den Hochschulen und Unis? 
Programmiere drauf los und viele Sprachen sind wichtiger als das interne 
Design von Software zu verstehen?

von I. B. (colivo)


Lesenswert?

und meine Frage: welche Matlab- Toolboxes (add-on-produkte von hier 
https://de.mathworks.com/products/matlab-home.html) sind in 
automobilindustrie) sind gängig und passen sich zum kennenlernen in 
beschriebenem Kontext?

Kann man die weitere Toolboxes leicht nachträglich nachzukaufen / 
nachinstallieren?

Ist Matlab-Version bis 1000 Blöcke zum Übungszwecke Wert?

von Joachim B. (jar)


Lesenswert?

XOR schrieb:
> Aber zum TE. Es gibt nicht die eine Sprache zur Testautomatisierung.

zur Ausgangsfrage:
Die die das Testsystem vorgibt, Teradyne, SPEA
https://de.wikipedia.org/wiki/Teradyne
https://www.spea-ate.de

oder C, C++

:)

von I. B. (colivo)


Lesenswert?

Harald schrieb:
> Wir haben damals im Studium erstmal ...

Nicht alle menschliche und nicht alle berufliche Wege sind einheitlich.
Manchmal geht es anders, manchmal nicht.

 Da
> werden Bücher zu C, C++, C#, Python und empfohlen und bestellt, aber
> kein einziges Buch über Softwaredesign.
> Warum??? Lehrt man das heute so an den Hochschulen und Unis?
> Programmiere drauf los und viele Sprachen sind wichtiger als das interne
> Design von Software zu verstehen?

Ich gehe auf meinem eigenem Weg mit Höhen und Tiefen und suche nach eine 
individuelle Lösung. Wenn das jemandem noch Hilft - das ist gut, nur ich 
bin nicht für die globale Buch- und Hochschul- Didaktik verantwortlich.

Auch nicht für menschlichen destruktiven Sorgen (und nicht für manchmal 
zugrunde liegenden globalen Ängsten).

Wie im Marketing gibt es Regel 3M, es gibt auch 3D-Regel
(übersetzt): Demonisieren -> Delegitimieren -> Destroying.
Darin irre ich mich nicht.

Auf Ihre höfliche Posting habe ich somit ausnahmsweise geantwortet (nur 
weil die Frage gab), aber meine Fragen sind thematisch konkret (ich 
bestrebe keine globale Diskussion und auch keine nach dem Motto: "worin 
rollt die Welt und zwar durch diesen Quereinsteiger?!") und ich habe es 
vor, ausschließlich in durch den Asker geöffneten Fach-Thema zu bleiben.

Mit meiner Dankbarkeit an die Moderation und an alle konstruktiven 
Teilnehmer.

: Bearbeitet durch User
von Dirk (Gast)


Lesenswert?

Kommt ein bisschen auf das Testframework an z.B. Squish bietet 
Javascript, Python etc.

Hier mal ein paar Programmmiersprachen welche ich in einem Profil für 
einen Automatisierungstestengineer wünsche.

1. C/C++
2. Python
3. CAPL
4. Javascript

Vom Vorteil könnte auch noch Qt Widgets/QML Framework Kenntnisse sein, 
falls die Applikation, damit erstellt wurde. Wichtig sind mir auch 
gewisse Design Patterns zuwissen wie z.b. MVVM, MV und PageObject und 
den Umgang mit Versionskontrollsystemen wie SVN/GIT.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.