HALF-LIFE PORTAL
Your Gate To Valve's Games www.hl-forum.de
PORTAL
FORUM
LOGIN
User oder E-mail:


Passwort:


oder
Registrieren
Passwort vergessen?
OpenID-Login
MISC
PARTNER

TF2 Crafting

Special Artworks by
Hayungs

Link us:
HL PORTAL

Support us:


HLPortal
auf Facebook

›› Willkommen!   ›› 95.824.688 Visits   ›› 18.316 registrierte User   ›› 113 Besucher online (0 auf dieser Seite)
23.789 Themen, 325.181 Beiträge  
    FORUM 

Thema-Ansicht


Forum > Community > Hilfe Board > Software "richtig" testen und Bugs beseitigen
Status: Offen
6 Beiträge
Letzter Beitrag Seiten (1):  [1]


Autor Beitrag
# 1
Supervisor  (39)
Nachricht offline
Alien Grunt
3.539 Punkte
Dabei seit: 14.07.2004
1.025 Beiträge
Software "richtig" testen und Bugs beseitigen
Nunja, bis ich mal ein Programm release wird's vermutlich noch was dauern. ^^
Lerne zur Zeit C++.

Aber für mich ist es schonmal wichtig, gewisse Grundkenntnisse, auch über vermeintlich nebensächliche Dinge, wie eben das Testen und Beseitigen von Fehlern, zu erlangen.

Ich teste also mein Programm auf Laufzeitfehler auf meinem PC mit meinem OS.
Finde ich was, fange ich sie ab und bringe entsprechende Maßnahmen im Code ein. Entweder eine Fehlermeldung oder irgendwas anderes, das den Fehler abfängt.

Erstmal ist das Problem aber da, dass ich nicht alles auf einmal finden kann. Gut, dafür gibt es die User, die Bug-Reports einreichen, aber es soll ja auch extra Programme geben, die meine Software auf Fehler testen. Gibt es für C++ da was und ist es sinnvoll sowas einzusetzen?

Zudem gibt es ja unterschiedliche Betriebssysteme. Ich habe aber nur mein XP.
Wenn jemand mein Prog auf Win98 aufspielt und einen Fehler entdeckt, kann ich diesen ohne Win 98 ja irgendwie schlecht finden und beheben oder? Was mach ich in so einem Fall?
Ich weiß, dass es auch Emulatoren gibt, aber auch die verlangen ja ein originales 98.
Reicht eventuell der Kompatibilitätsmanager von XP im geringfügigen Maße?

Hinzu kommen Konflikte mit anderen Programmen. Auch hier wäre ja ein Emu sinnvoll, um dies zu testen und dabei nicht mein eigenes System zu versauen oder?

Oder ist letztendlich alles überflüssig und ich sollte mich beim Testen einfach auf das beschrenken, was ich mit vorhandenen Mitteln finden und beheben kann?

Danke für Antworten!

Edit: Wäre noch das Thema Systemvoraussetzungen. Wie kann man die am besten ermitteln, ohne alle Systeme durchzutesten? :ugly:
____________________________________
MfG Supervisor
[Beitrag wurde 1x editiert, zuletzt von Supervisor am 12.08.2006, 12:22]
12.08.2006, 12:19 Uhr Anzeigen
# 2
krt  (124)
HLP - Redakteur
Nachricht offline Moderator
Vortigaunt
717 Punkte
Dabei seit: 23.04.2004
447 Beiträge
Habe schon lange nichts mehr mit c++ gemacht, aber es gibt software die deinen code bzw. dein Programm auf Fehler überprüft. Die findet zwar nur en Teil, aber das is immerhin besser als nichts. Microsoft wird imho entsprechende Tools übrigens dem neuen VisualStudio beilege.. zumindest hab ich da mal was gehört. Unter Java (und imho auch .net) kannste UnitTests durchführen, die bestimmte Fälle abfragen und schauen, ob deine Methoden die richtigen werte zurückgeben.

Bei den Betriebssystemen musst du halt wirklich durchtesten, führt kein Weg dran vorbei und selbst mit einer Milliardenschweren QA-Abteilung wirst du nicht jede mögliche Systemkonfiguration testen können. Wenn du für .net/mono/java entwickelst hast du es dahingehend etwas einfacher, weil das Testen für die verschiedenen OSe übernimmt der Entwickler des VM für dich.

Konflikte zu bestehenden Programmen kann man nie ausschließen, das einzige was man tun kann ist sauberen Code zu schreiben und darauf hoffen, dass andere Programmierer das auch tun. Wenn du aber gezielt weißt, dass ein Programm Probleme macht, dann würde ich das auf nem abegschotteten System oder im Emu laufen lassen und durchtesten. Wenn der Fehler am anderen Programm liegt, kannst du dich mit dem Entwickler in Verbindung setzten. Zumindest kleinere Teams / Freeware-Entwickler freuen sich über solche Kontakte.

Systemvorrausetzungen kann man nur erahnen. Zur Not musst du halt immer das System angeben, auf dem du entwickelst, auch wenn das Programm zu 99% auch auf schlechteren PCs läuft.

Ich weiß, ist ziemlich wage was ich da rede, aber hab selbst noch keinen Kurs in Sachen Program-Harderning belegt...

(krt)
16.08.2006, 12:40 Uhr Anzeigen
# 3
Jasiri  (35)
HLP - Redakteur
Nachricht offline Admin
Ichthyosaur
12.928 Punkte
Dabei seit: 21.07.2004
3.582 Beiträge
Wichtigste Grundregel beim Austesten eines Programmes: Denke wie ein User und nicht als Programmierer.
Das mag zunächst mal doof klingen, aber man muss immer mit der Dummheit/Unfähigkeit eines Benutzers rechnen. Man sollte NIEMALS glauben, dass in einem Zahlen-Eingabefeld auch wirklich nur Zahlen landen, denn es kann durchaus sein, dass - aus welchen Gründen auch immer - mal was anderes als Zahlen drin langen - und das war nur ein harmloses Beispiel.

Je nachdem, was dein Programm mal anstellen soll musst du vor allem bei diversen Auswahlmöglichkeiten beachten, dass diese in verschiedenen Kombinationen genutzt werden könnten und eben aufpassen, dass sich diese nicht in die Quere kommen. Generell ist es immer eine gute Idee, nicht nur an kritischen, sondern an strategisch günstigen Stellen Code einzubauen, der Programmfehler abfängt und den Benutzer (oder dich als Programmierer) auf ein Ereignis hinweist.
Sofern du sauber programmierst und keien speziellen API-Funktionen nutzt, die es nur in 2000/XP gibt (hier sei mal Alphablending genannt), dann sollte dein Programm auch Problemlos unter verschiedenen Windows-Versionen funktionieren. Konflikte mit anderen Programmen kann es auch nur dann geben, wenn du bestimmte Dinge veränderst oder für dich beansprucht (Registryeinträge oder Dateien respektive bestimmte Bereiche des Arbeitsspeichers). Sowas tut man nicht ;)

Mein Tipp: In deinem Programm einfach mal so viel falsch machen wie möglich, obs jetzt falsche Eingaben oder simples Herumspielen mit Optionen ist - wenn das Ding abstürzt, hast du was falsch gemacht.
Noch was: Ich programmiere in VB (6 und .NET, das kann ich wenigstens :P), da werden Diskrepanzen immer als Warnungen ausgegeben. Ich weiß nicht, ob das bei deinem Compiler für C++ auch so ist, allerdings kann aus solchen Warnungen schnell ein Absturz werden, wenn man nicht vorgesorgt hat ;)
[Beitrag wurde 1x editiert, zuletzt von Jasiri am 16.08.2006, 14:35]
16.08.2006, 14:34 Uhr Anzeigen
# 4
Supervisor  (39)
Nachricht offline
Thread-Starter
Alien Grunt
3.539 Punkte
Dabei seit: 14.07.2004
1.025 Beiträge
Danke euch beiden für die Antworten!
Wirklich gute und brauchbare Hinweise!

Nur noch mal zum Thema OS:

Ich besitze ja z.B. kein Win 98. Wenn da einer sagt: "Ich hab den und den Fehler auf meinem Win 98", kann ich den ja schlecht beheben, ohne selbst dieses Betriebssystem zu besitzen. Ist natürlich auch die Frage, ob sich das auch lohnen würde....
Aber frage mich eben auch, wie richtige Entwickler das machen. haben die jedes OS auf dem Rechner oder wie?

Hm, oder ich sag von Anfang an, ich schreibe nur Progs für XP. :D
____________________________________
MfG Supervisor
[Beitrag wurde 2x editiert, zuletzt von Supervisor am 16.08.2006, 22:40]
16.08.2006, 22:38 Uhr Anzeigen
# 5
Koraktor  (39)
HLP - Redakteur
Nachricht offline Moderator
Voltigore
21.227 Punkte
Dabei seit: 10.08.2004
5.393 Beiträge
Noch ein paar Tipps zur Kompatibilität:
Je weniger du dich auf externen Code (sprich irgendwelche Bibliotheken) verlässt, desto größer ist die Wahrscheinlichkeit, dass dein Programm überall läuft, wenn's auch auf deinem Rechner läuft. Und wenn nicht, dann hast du das Problem in deinem Code und es liegt nicht an einer falschen Version irgendeiner Abhängigkeit einer wieder anderen Bibliothek.
Auch 'ne Möglichkeit ist es die entsprechenden DLLs mit deinem Programm auszuliefern. Nur kann das u.U. rechtliche Probleme geben.
____________________________________
17.08.2006, 02:04 Uhr Anzeigen
# 6
Supervisor  (39)
Nachricht offline
Thread-Starter
Alien Grunt
3.539 Punkte
Dabei seit: 14.07.2004
1.025 Beiträge
Gut zu wissen. Naja, kann mir vorstellen, dass es bei komplexeren Geschichten schwierig/aufwändig sein wird, da alles selbst zu entwickeln. Aber generell ist es natürlich besser.

Nun, wie sieht es eigentlich generell mit der Festlegung der Systemvoraussetzungen aus?
Sind das immer Schätzwerte oder gibt es Simulationen dafür?
Ich kann ja schlecht sagen, dass es zum Beispiel auf älteren Windows-Versionen läuft, wenn ich nur XP habe. Gibt zwar die Möglichkeit Beta-Tester auszuwählen, aber so richtig kontrollieren und wie bereits erwähnt, Fehler beheben, kann ich ja schlecht, wenn es um ein anderes OS geht, als das, welches ich besitze.
____________________________________
MfG Supervisor
19.08.2006, 00:53 Uhr Anzeigen
nach oben
6 Beiträge

Seiten (1):  [1]


Gehe zu:  feed_mini Beiträge: RSS, RSS2, ATOM

Sections:  HLP  Board  Mods  Steam      Games:  HL  Op4  HLBS  HL2  HL2:Ep1  HL2:Ep2  Prtl  TF2  TFC  CS  DoD  L4D  Gunman
    USER ONLINE 
Insgesamt sind 113 Benutzer online. Davon sind 0 registriert:
    SITE OPTIONS 
- Zu Favoriten hinzufügen
- Als Startseite festlegen (IE only)
- Fehler auf dieser Seite?