Welche Vorgehensweisen gibt es für länderspezifische Komponententests?

17

Wir haben kürzlich ein lokalspezifisches Problem in unserer Anwendung entdeckt und obwohl es einfach zu beheben war (nachdem wir herausgefunden hatten, was vor sich ging), hat es das Team erreicht, über das ich in dieser Hinsicht über Unit-Test-Praktiken nachdenke.

Wir möchten diese Probleme möglichst frühzeitig erkennen, bevor sie von einem Kunden entdeckt werden, und wir möchten uns davor schützen, in Zukunft länderspezifische Fehler erneut einzuführen, aber es scheint viel zu sein, jeden Komponententest in mindestens einer anderen Kultur zu duplizieren Overhead.

Wie gehen Sie vor oder wie gehen Sie mit dem Testen von Einheiten mit mehreren Ländereinstellungen um?

Adam Lear
quelle
1
Möchten Sie weitere Details zu Ihrem Problem mitteilen? Es klingt interessant und ich würde gerne mehr darüber erfahren.
Mchl
1
@Mchl Es war der türkische Locale-Bug . Wir hatten einen String-Vergleichscode, der den Buchstaben i enthielt.
Adam Lear

Antworten:

4

Im Allgemeinen müssen Sie nicht jeden Komponententest duplizieren. Sie sollten identifizieren, was wirklich vom Gebietsschema abhängt (eine gute Checkliste finden Sie hier ). Viele Dinge im Zusammenhang mit der Internationalisierung unterliegen einem höheren Testniveau als dem Unit-Test.

Wenn Sie es mit den Zeichenfolgendaten zu tun haben, die möglicherweise in unterschiedlichen Codierungen vorliegen, können Sie "datengesteuertes Testen" verwenden, dh Daten in unterschiedlichen Codierungen an dieselbe Testmethode übergeben. Für Java ist das TestNG am besten geeignet.

Ein weiteres mögliches Problem ist das Formatieren und Parsen von Datum und Uhrzeit. Die meisten Gebietsschemas verwenden: um Zeitelemente zu trennen, aber es gibt diejenigen, die Punkte verwenden und Brasilianer verwenden hm und s (12h15m30s). Dies kann auch von übergebenen Daten in verschiedenen Ländereinstellungen verwendet werden - Sie müssen nicht alle testen.

Das Testen der grafischen Benutzeroberfläche mit Ländereinstellungen von rechts nach links ist normalerweise nicht Gegenstand von Unit-Tests.

Im Endeffekt müssen Sie ermitteln, welche Daten in Ihren Komponententests länderspezifisch sind, und anhand datengesteuerter Tests (Datenanbieter) diese Daten für Ihre Tests bereitstellen.

Sergii Pozharov
quelle
3

Hier sind einige Vorschläge:

  • Entwickeln Sie immer auf einem Computer mit lokalen Einstellungen, die sich von Ihrer Hauptzielgruppe unterscheiden . Es hilft Ihnen dabei, Fehler in Bezug auf Datum, Währung und jedes numerische Formatierungsproblem sehr schnell zu finden. Machen Sie dasselbe mit Ihrem Build-Server, legen Sie ihn in Brasilien oder Vietnam ab (nicht physisch, nur die Einstellungen).

  • Verwenden Sie Akzente und Sonderzeichen in Ihrem Testtitel, in Zeichenfolgen usw. in Ihren Komponententests. Das häufigste Problem bei der Internationalisierung von Software, die ich verwende (nicht die, die ich entwickle), ist é und è oder sogar ç in Französisch. Tragen Sie sie in jede Zeichenfolge ein, die Sie in Ihren Tests verwenden. Verwenden Sie ein allgemeines Wort, das Sie ständig verwendenbrèç©

  • Vergessen Sie nicht, in Pfaden auch Akzente und spezielle Diagramme zu verwenden . Visual Studio.NET selbst hat noch viele Probleme damit! Sie sollten auf solche Verzeichnisse zugreifen und diese in Ihren Tests lesen / schreiben.

  • Wenn Sie Visual Studio .NET verwenden , aktivieren Sie in den Projekteigenschaften unter Codeanalyse die Option Globalisierungsregeln . Bei den meisten häufig auftretenden Problemen wird beim Kompilieren eine Warnung ausgegeben.

  • Stellen Sie einen Ausländer in Ihrem Team ein.


quelle