Ich arbeite in einem Softwareentwicklungsteam als Softwareentwickler. Ich arbeite jetzt seit drei Jahren am selben Projekt. Die Software ist eine 32-Bit-Desktop-basierte C # -Anwendung in .NET 4. Unsere Zielplattform in Windows 7 (wir mussten Windows XP bis zum letzten Jahr unterstützen). Die Software kommuniziert mit verschiedenen benutzerdefinierten Hardwarekomponenten, für die benutzerdefinierte Treiber geschrieben wurden. Die Hardwareherstellung und Treibersoftware wird von unserem Kunden geschrieben. Es gibt natürlich unterschiedliche Treiber für 32-Bit- und 64-Bit-Windows.
Während unserer Systemtestphase führen wir alle / die meisten Testfälle sowohl in 32-Bit- als auch in 64-Bit-Windows 7 aus. Ich kann mich nicht erinnern, ob in unserer Software Fehler aufgetreten sind, die nur in einer Windows-Version vorhanden sind. Nach dieser Erfahrung habe ich mich gefragt, ob wir wirklich 32-Bit-Software unter 64-Bit-Windows testen müssen.
Was ist der Industriestandard?
quelle
Antworten:
Die meisten Fehler, die wir beim Ausführen von 32-Bit-Software unter 64-Bit-Fenstern festgestellt haben , haben mit dem Speicherort der Software (
Program Files (x86)
anstelle vonProgram Files
) und dem Speicherort der Registrierungsschlüssel zu tun (einige wurden in Wow6432Node gefunden). Wir hatten diese Probleme hauptsächlich, weil wir mit anderer Software (auch 32-Bit) kommunizieren mussten und deshalb die Software sowohl auf 32-Bit als auch auf 64-Bit testen mussten ...Wenn Sie diese Probleme nicht hatten, ist es meiner Meinung nach ziemlich sicher, nicht auf beiden Plattformen zu testen, wenn Sie explizit im 32-Bit-Modus kompilieren. Bei der 32-Bit-Kompilierung führt die .NET-Laufzeitumgebung alles im 32-Bit-Modus aus und sollte auf 32-Bit-Plattformen genauso funktionieren wie der 32-Bit-Modus.
Gemäß 64-Bit-Anwendungen ( MSDN ) werden 32-Bit-Anwendungen im Wow64-Modus ausgeführt, und unter Ausführen von 32-Bit-Anwendungen (MSDN) wird dieser Modus ausführlicher erläutert.
quelle
Unter 32-Bit-Windows kommuniziert Ihre Software mit einem Treiber und unter 64-Bit-Windows mit einem anderen? Nehmen wir an, dass es von Zeit zu Zeit neue Versionen dieser Treiber gibt. Wenn Sie Ihre Software also nur unter 32-Bit-Windows testen, können Sie nicht sicher sein, dass es keine Unterschiede im 64-Bit-Treiber gibt, die dazu führen, dass die Kombination von Software + 64-Bit-Treiber fehlschlägt. Und aus der Sicht Ihrer Benutzer spielt es keine Rolle, wer die Schuld trägt (Sie oder der Autor des Treibers), alles, was sie sehen, ist ein nicht funktionierendes System. Selbst wenn Ihr Code fehlerfrei ist, kann ein Test einen Fehler im 64-Bit-Treiber aufdecken, und das Auffinden eines solchen Fehlers kann Ihnen dabei helfen, die richtigen Maßnahmen zu ergreifen (wie das Senden eines Fehlerberichts an den Autor des Treibers).
Wenn Sie diese beiden Treiber jahrelang verwendet haben und sich sicher sind, dass das Verhalten genau gleich ist, können Sie natürlich die Tests für eine Plattform überspringen, indem Sie den Argumenten in der Antwort von @ DavidPerfors folgen. Als Kompromiss können Sie Tests unter 64-Bit-Windows nur ausführen, wenn eine neue Treiberversion verfügbar ist. Tatsächlich hängt dies von der Komplexität der Fahrer, Ihrer Erfahrung und Ihrem Vertrauen in sie ab.
Einige zusätzliche Dinge zu beachten:
quelle
Die Standardannahme in aufgeklärten QA-Kreisen lautet "Wenn Sie es nicht getestet haben, funktioniert es nicht".
In der Praxis ist dies in der Regel ein unerreichbares Ziel, um das sich Anwendungsingenieure auf die gleiche Weise bemühen, wie sie Unit-Tests für alles durchführen möchten. aber sie glauben nicht, dass sie es jemals erreichen und pünktlich veröffentlichen werden.
Ihre Frage kann jedoch nur durch oder in Verbindung mit Vertrieb und Marketing beantwortet werden. Sie stellen ihnen Testkosten zur Verfügung und analysieren den Marktnutzen. Wenn Schätzungen auf beiden Seiten ausreichend genau wären, wäre die Antwort einfach
Nach meiner Erfahrung sind die Kostenschätzungen für alle ungenau. Was die andere Seite der Gleichung angeht, so parodierte Dilbert einmal die Entscheidungsfindung dort mit "Ich habe gerade meine Katze gefragt, Fäustlinge". Um es besser zu machen, müssten sie in anthropologischen Feldmethoden geschult werden.
quelle
Angesichts der Tatsache, dass 99% aller Windows-Installationen von Windows 7 und höher und auch ein Großteil von Vista 64-Bit-Versionen sind, warum sollten Sie überhaupt in Betracht ziehen, diese Plattform nicht zu testen?
Es ist nur ein Kinderspiel, es sei denn, Sie machen es speziell für eine sehr begrenzte Gruppe von Benutzern, von denen Sie wissen, dass sie 32-Bit-Windows verwenden, und dies wird auch für die Lebensdauer Ihres Produkts so bleiben.
Also ja, auf 64-Bit-Probleme testen. In der Tat auf 64-Bit-Plattformen entwickeln und wahrscheinlich eine 64-Bit-Version als Standard mit einer kompilierten 32-Bit-Version als Option für die wenigen Kunden bereitstellen, die in den letzten 6-8 Jahren kein Upgrade auf einen neuen Computer und ein neues Betriebssystem durchgeführt haben .
quelle
Ich würde jeden Installer auf so vielen verschiedenen Windows-Setups wie möglich testen, da die Installer meiner Erfahrung nach wahrscheinlich auf verschiedenen Systemen fehlschlagen.
Ansonsten, wie Sie wissen aus Ihrer Erfahrung mit der gegebenen Software sind Fehler sehr unwahrscheinlich zu nur auf 32-Bit zeigen oder 64-Bit, und Sie können einige kalkuliertes Risiko nehmen.
Erstens sollten Sie viele Testzyklen mit sehr wenig Code haben, der sich zwischen den späteren Zyklen ändert, je näher Sie dem Versand kommen. Wann immer Sie sparen können, können Sie mehr Testfälle erstellen und / oder mehr (und damit kleinere) Zyklen zulassen, um schnelleres Feedback zu erhalten. (Das Risiko, Zeit damit zu verbringen, X zu testen, ist möglicherweise größer als das Risiko, Y nicht zu testen, da Sie X zu häufig testen.)
Deshalb
quelle
Nee. Wenn die FDA damit fertig ist, neue Medikamente an Mäusen und Ratten zu testen, überspringen sie die Tests an Affen und verkaufen sie nur für den menschlichen Verzehr.
</ sarkasmus>
Ja ja ja ja ja. Wenn Sie nicht jede Plattform testen, die Sie möglicherweise können, ist Ihre Software nur traurig. Die Dinge sind immer anders und die Annahmen im Kopf des Designers / Programmierers während des Projekts kommen der Modellierung des realen Lebens normalerweise nur annähernd nahe. Testen Sie also bitte Ihre Software. Bitte.
quelle