Dienstag, April 15, 2008

Lidl und der Kassen-Bug


Es gibt Fehler, im Informatiker-Jargon "Bugs", die etwas anrühriges haben. Ich bat den Menschen an der Kasse bei Lidl um einen Moment Geduld und meine Kinder um Ruhe, um nicht den wunderbaren Moment zu verpassen, bei dem es passierte. Der Lidl-Mensch fluchte kurz auf -- und ich war entzückt! "Einen Moment, davon muss ich ein Foto machen!" Und dann machte ich noch eines.

Ich bin heute extra für diesen Fehler zu Lidl gepilgert -- ich wollte es mit eigenen Augen sehen. Gestern hat mir ein Student (vielen Dank Herr Breyer) von diesem Fehler in einer EMail berichtet. Ein richtig schöner Fehler, ein Klassiker geradezu. Ein Fehler, den man selten zu Gesicht bekommt, so einer mit Museumswert. Dafür wäre ich sogar noch weiter gereist als bis zum nächsten Lidl.

Der Fehler tritt auf, wenn Sie an der Kasse Waren im Wert von 0 Euro (Null Euro) bezahlen. Dann streikt das System. Die kurze Einkaufsliste dazu: Geben Sie zwei Pfandflaschen zurück und Lidl steht mit 50 Cent bei Ihnen in der Kreide. Zu dem Pfandzettel, den Ihnen der Automat ausspuckt, besorgen Sie sich eine Wasserflasche (19 Cent plus 25 Cent Pfand macht 44 Cent) und begehen die Umweltsünde und greifen nach einer Einkaufstüte für 6 Cent. Ab zur Kasse damit. Minus 50 Cent plus 50 Cent machen 0 Cent bzw. 0 Euro. Rien ne va plus!

Herrlich, die Kasse streikt und ruft nach "Autorisierung". Wie Sie auf dem rechten Bild sehen, hat die Schlange hinter mir gleich das Weite gesucht. "Das kommt so einmal im halben Jahr vor", erfuhr ich vom Kassierer.

Ich habe im Netz einen Blogeintrag gefunden, der belegt, dass der Fehler mindestens seit Mitte November 2007 bekannt ist (Alphawinkel.de: "Der tägliche Blödsinn: Lidl und die Kasse", 13. Nov. 2007). Vermutlich tritt der Fehler zu selten auf, als dass Lidl ein schnelles Bug-Fixing für nötig erachtet.

Das Faszinierende jedoch ist, dass dieser Fehler überhaupt auftritt. Warum hat man bei der Programmierung des Kassensystems diesen einfachen Testfall übersehen? Haben Sie oben beim Lesen kurz gestockt, als ich schrieb

Der Fehler tritt auf, wenn Sie an der Kasse Waren im Wert von 0 Euro (Null Euro) bezahlen.


Haben Sie für einen Moment gedacht "Wie soll das denn gehen"? Dann sind wir der Ursache schon auf der Spur. Wir selbst mit unseren eingefahrenen Denkmustern sind das Problem.

Die Kunst des Testens ist, Grenzfälle möglich zu machen, nicht sie für unmöglich zu halten.

[Nachtrag: Lesen Sie auch auf den Denkspuren: "Ist der Kassen-Bug von Lidl ein Bug?"]

Kommentare:

Christoph hat gesagt…

Vielen Dank für diesen herrlichen Beitrag. Dann weiß ich ja, was ich morgen mal probieren werde.
Ich frage mich, wie sich dieser Fehler eingeschlichen hat. Hat LIDL schon immer Pfandflaschen entgegen genommen? Das ist doch noch gar nicht so lange her, dass es Pflicht wurde auf Plastikflaschen Pfand zu zahlen.
Ich würde sagen, dass sich dabei der Fehler eingeschlichen hat. Mal schnell nen Workaround basteln ;)

nm hat gesagt…

Phantastisch - das ist wirklich ein hervorragendes Beispiel! Mich würde noch interessieren, wie es dann weitergeht? Pro forma ein Cent bezahlen oder herausbekommen? Die Tatsache, dass der Fehler noch nicht systemseitig behoben wurde, deutet ja darauf hin, dass es im Alltag eine Lösung gibt, die einfacher ist, als das Problem zu eskalieren und beseitigen zu lassen...

maurice hat gesagt…

Na, ganz klar, da hat wohl einer statt einem "kleiner" ein "kleiner gleich" einprogrammiert: Wenn der Kaufbetrag kleiner gleich Null ist, muss der Chef kommen und das autorisieren. ;-) Oder muss der Chef nicht kommen, wenn man nur Pfandflaschen abgibt, aber nichts einkauft (Betrag kleiner als Null)?

kb hat gesagt…

Bei kleinergleich Null muss der Chef nicht kommen. Habe schon Problemlos auch mal nur Pfand abgegeben - dieser noch realistischere Testfall wurde zum Glück berücksichtigt ;-)

dh hat gesagt…

@nm: Wie es weiter ging?

Ich wollte eigentlich den Kassenbon haben, der diesen historischen Moment dokumentiert. Der Kassierer verzweifelte -- und ich fragte, wie wir denn weiter machen könnten. Er sagte, er könne den Vorgang lediglich stornieren, er könne mir wegen des Fehlers einfach keinen Bon ausgeben. Er war dazu eindeutig nicht autorisiert ;-)

Wir einigten uns darauf, dass ich meine Fotos machen darf und er dafür die weiteren Sachen meines Einkaufs (man sieht sie auf den Bildern auf dem Band liegen) über den Scanner ziehen kann, um aus dieser Nullnummer rauszukommen ...

Dieter hat gesagt…

Ich kann mir nicht vorstellen... -ok vorstellen kann ichs mir schon, aber sagen wir, "ich denke nicht", dass die Leute die bei Lidl (oder anderen Ketten) für die Kassenlogik zuständig sind, diese Möglichkeit übersehen haben. Vielmehr könnte es ein "Sicherheitsmechnismus" sein nach der Devise: "Wenn jemand was einkauft, aber nichts dafür bezahlt (oder gar Geld zurück bekommt), dann lassen wir das den Fillialleiter mal kontrollieren".
Ob das in Praxis praktibel ist oder ob der FL nur noch mit dem Schlüssel an der Kasse steht das muss Lidl dann selbst wissen. In diesem Fall wäre es aber wirklich ein Spaß auf dem Niveau "ich bzehal mein Happy Meal mit 1-Cent-Stücken". Zudem kein Bug sondern "works as designed".

Um Betrug aus zu schliessen ist es jedoch nur bedingt wirksam. Ich war gestern bei Lidl, hab Flaschen zurückgegeben, habe noch etwas gekauft und musste dann 12 Cent zahlen. Hätte ich jetzt nen Betrug veranstaltet bei dem ich Lidl um nen Warenwert von z.B. 200€ betrüge, dann würde ich natürlich lieber 12 Cent zahlen, statt auf 0 Cent raus zu kommen und dann dem FL zu begegnen, der meinen Betrug vielleicht aufdeckt...

Anonym hat gesagt…

Hat das auch schon mal jemand beim Aldi ausprobiert?

Anonym hat gesagt…

Jau. Das Mädel an der Kasse hat zwar ziemlich verdutzt geschaut, aber ansonsten lief alles normal weiter. Alerdings hätte ich mir den Kassenbon mit "0,00 €" aufheben sollen...

Geprüft bei: ALDI auf der Leipziger Straße, Frankfurt/Main

Anonym hat gesagt…

Schonmal probiert, was passiert, wenn du eine Pfandflasche zurückgibst und nichts kaufst? Richtig, LIDL steht in der Kreide und muss dir was auszahlen. Und dreimal darfst du raten, was dann passiert?

Wäre es möglicherweise ein klein wenig vorstellbar, dass das immer dann geschieht, wenn der seltsame Fall auftritt, dass jemand im Prinzip was einkauft, aber nix bezahlen muss (oder eben sogar noch was rausbekommt)? Wäre das möglicherweise ein klein wenig vorstellbar, dass dies eine Schutzmaßnahme gegen in den Abrechnungen nicht nachvollziehbaren Missbruach darstellt?

Aber schön, dass ihr einen Bug gefunden habt und jemanden als blöd dastehen lassen könnt. Achso, und schön natürlich auch, dass ihr das Design der Kassen kennt (oder wenigstens mal ne Sekunde drüber nachgedacht habt, was da sein könnte), um hier auch mit Sicherheit konstatieren zu können: Das ist eine Abweichung vom Design.

Anonym hat gesagt…

'[...] um hier auch mit Sicherheit konstatieren zu können [...]'


Bitte, schreib doch keinen Unfug!
Der Fall hier ist _VÖLLIG_ legal und führt zu einem BUG. Die Transaktion ist völlig korrekt.
Da kannst du noch so viel schreiben, der Fehler hier liegt bei Lidl bzw dem Programmier(n), nicht beim Konsumenten.

Sowas regt mich auf wenn man "Überlegungen" von Programmiereren verteidigen will, die am real-life Szenario total vorbei schrammt.

Andreas Heider hat gesagt…

>Und dreimal darfst du raten, was dann passiert?

Was soll denn passieren? Ich habe schon oft mehr Pfand zurückgegeben als eingekauft sodass ich am Ende Geld zurückbekommen habe. Das ist aber nichts besonderes und dazu braucht es keinen Geschäftsführer oder ähnliches.
Wieso sollte das dann bei 0€ anders sein? Ob der Bug jetzt im Design oder in der Implementation steckt ist ja egal, er ist da.

Anonym hat gesagt…

Hmm, also ich hab selbst ne zeitlang als Aushilfe bei Lidl gejobbt, dieser Bug ist mir aber schon Anfang 2007 begegnet.

Die Lösung ist aber relativ simpel: Einfach Kunden wegschicken, und mit dem nächsten weitermachen ;)

My-Doom hat gesagt…

Hey ja! So kriegen wir die Discounter vom Markt!

Ab jetzt die Flaschen mit dem Pfand drauf nur noch in Geschäften kaufen wo die MitarbeiterInnen gut behandelt werden. Und Rückgabe erfolgt nur noch bei Lidl.

hahahahar - alle mitmachen :D Pfand kaufen, wo ihr wollt(aber nicht bei lidl) und dann trotzdem bei lidl zurückgeben!

Michl hat gesagt…

Hihi, vielen Dank auch.
Dieser kleine Gag sollte sich über das Wochenende noch weiter verbreiten, ich denke das wird ein lustiger Montag in den Lidls dieser Welt. :)

Anonym hat gesagt…

Ich seh die Codezeile, wahrscheinlich noch aus der Zeit vor der Pfandrückgabe, die mit dem Wert 0 eine Stornierung signalisiert quasi vor mir. :-)

if(!bon->getSumme()) kasse->getAuthorisation(). // Storno?

Anonym hat gesagt…

Ich glaube nicht, dass das ein BUG ist.

Pfandbetrug ist sehr beliebt bei Kassierern. Es wird an normalen Kassen sich was genommen und genauso viel Pfand abkassiert wie das Zeug gekostet hat.

Da muss der Kassierer weder eigenes Geld in die Kasse tun noch etwas heraus nehmen (beides _sehr_ gefährlich, da Kasseneinlagen bei verdacht markiert werden und du oft keine eigene Geldbörse an der Kasse dabei haben darfst).

Bei LIDL gibt es zwar meistens Pfandautomaten, Flaschen kann man aber auch einfach so an der Kasse abgeben, wenn der Automat sie nicht will.


Also eher kein Bug, sondern eine ziemlich dämliche interne Regelung.

sarc hat gesagt…

Muahaha. Das wird nächste Woche direkt mal getestet. Aber mit etwas längerer Einkaufsliste, damits nicht so auffällt. Übt auch im Kopfrechnen... ;-) (Fies wäre, dann auf den Bon zu bestehen... ^^)

Wenn man sich davor schützen will, hier der ultimative Workarround für Lidl: Stellt nen Mathematiker ein, der die Preise so kalkuliert, dass es quasi unmöglich wird, auf exakt 0 Euro zu kommen. Dies sollte Produkte mit tageszeitabhängigen Preisen beinhalten. Weiterhin sollten alle Produkte mit RFID-Tags ausgestattet sein. Dann kann der Leergutautomat aus dem Einkaufsverhalten erkennen, ob hier der Bug ausgenutzt werden soll und bei Bedarf an passender Stelle streiken.

...
...

Warum hab ich nur das Gefühl, dass diese Form von Workaround in verdammt vielen Fällen eingesetzt wird?

Anonym hat gesagt…

Ich arbeite bei Edeka, habe mal meinem Kollegen das erzählt, da ich noch nie an der Kasse war. Er meinte das sein bei uns auch so.

Anonym hat gesagt…

Als mathematiker muss ich sagen dass es annähernd unmöglich ist die Preise sinnvoll so zu gestallten das nicht 0 rauskommen kann

sarc hat gesagt…

Darum ja auch die zufälligen Preise für ausgewählte Artikel (zum Beispiel Tüten ;-), um dieses Problem aus der Welt zu schaffen. Bei Tankstellen klappt das doch auch super, warum sollte das Lidl nicht auch können?

Anonym hat gesagt…

also, wir habens ausprobiert und es funktionierte nicht...der bug kam, war aber in weniger als 5sekunden gefixxt...

dh hat gesagt…

Liebe Leser der Denkspuren,

es mehren sich die Hinweise, dass der Bug mittlerweile behoben zu sein scheint. Davon weiß zum Beispiel Herr Breyer zu berichten (von ihm hatte ich den Hinweis auf den Kassen-Fehler bei Lidl). Auch weisen Kommentare zu einem entsprechen Artikel bei gulli.com darauf hin.

Herzliche Grüße,

Dominikus Herzberg

Anonym hat gesagt…

Funz immernoch... Habs probiert... LoL

Anonym hat gesagt…

Das ist kein Fehler bei LIDL, sondern in der Kassensoftware von Siemens-Nixdorf. Falls sich einer wundert, warum das so lange dauert. Ich gehe jede Wette ein, das der noch ca. 3 Jahre bestehen bleibt UND dass er auch bei diversen anderen Supermärkten vorhanden ist.

cowider hat gesagt…

Bei der Rewe ist es iirc so, dass kleine Beträge unter 5 Euro keine Authorisierung benötigen, ab 5 Euro muss der Kassierer dann jemanden rufen der dazu berechtigt ist.

Anonym hat gesagt…

Angeblich geht es auch bei Plus, hier kassieren die dann einfach weiter und umgehen den Fehler in manchen Filialen. Ein Kassenbon gibt es dann nicht.

Chaotenclub hat gesagt…

Vielleicht ist es gar kein Bug im eigentlichen Sinne, sondern ein reiner Konfigurationsfehler.

Denkbar ist, dass der entsprechende Autorisierungszwangs-KleinerGleich-Parameter der Kasse auf 0,00 EUR konfiguriert ist und nicht auf -0,01 EUR.

Also ist das möglicherweise kein Fehler des Kassensystems, sondern ein Fehler, der von Lidl durch eine korrekte Kassen-Konfiguration behoben werden könnte.

Anonym hat gesagt…

Nullbeträge durch Preiskalkulation auszuschließen ist nicht möglich, solange es Negativbeträge (Pfand oder einfach eine Rückgabe) gibt.

Mit abgewogener Ware sowieso.
Der Rest ist eine Frage der Anzehl der Rückgabeflaschen. :)

Anonym hat gesagt…

Was für ein Unsinn. Das ist kein Bug sondern gewollt. Wenn die Kassenschublade aufgeht, ohne das Geld rein- oder rauskommt, ist die Diebstahlgefahr am größten. Jährlich verliert der Einzelhandel in Deutschland 4 Mrd. EUR durch sog. Inventurverluste. Ein erheblicher Teil geht auf Mitarbeiterdiebstähle, auch an den Kassen, zurück (heißt nicht, dass die Mehrzahl der Mitarbeiter klaut, aber es gibt immer einen Prozentsatz schwarzer Schafe). Lidl und andere Einzelhändler schützen sich, indem sie solche Vorgänge autorisieren lassen.

Wer jetzt den Helden spielt und die Lidl-Kassiererinnen nerven geht oder laut BUG BUG schreit, hat keine Ahnung von der Branche.

Dennis hat gesagt…

Warum geht denn dann überall die Kassenschublade auch bei Kartenzahlung auf, obwohl sie dann direkt wieder zugedrückt werden kann?

gerrit hat gesagt…

Die Kassenschublade geht deshalb auf, damit KassierInnen (ich bin einer) den ec-Beleg hineinlegen können. Alle ec-Belege werden am Ende mit der Abrechnung (und den Einnahmen (wenn noch welche übrig bleiben, manchmal geben die Leude j bloß Leergut ab und kaufen nüscht ;) gesammelt abgegeben.

Sema hat gesagt…

Sowohl der Kommentar mit dem Hinweis auf die Kassensoftware von Siemens-Nixdorf als auch der mit der Diebstahlsgefahr bei Öffnen der Kassenschublade zeugen von Nichtwissen grösseren Ausmasses.

Ich habe bis zum November 2007 etliche Jahre mit Siemens-Nixdorf Kassen gearbeitet und mitunter auch problemlos Bons mit einer Summe von null Euro produziert. Kein Problem für die Kassen, selbst für die Kasse war das kein Problem, die mir ansonsten regelmäßig samstags abgestürzt ist weil ich schneller kassiert habe als die die Daten verarbeiten konnte.

Ansonsten bleiben in vernünftig eingestellten Systemen die Kassenschubladen geschlossen, wenn der Bon ein Summe von null Euro hat (was in Märkten, in denen die anwesende Marktleitung nicht weiß, wie sie ein Bonstorno korrekt ausführt, durchaus öfter mal vorkommt).

Anonym hat gesagt…

In "unserem" Kauflanf ist es z.B. den KassiererINNEN nicht möglich den ersten Artikel gleich wieder zu stornieren (evtl. weil dann 0 Euro rauskommen würdebn?). Dann muss erst ein weitere Artikel eingegeben worden, dann ist eine Stornierung des 1. Artikels möglich ... komische Welt.

paul-anton hat gesagt…

Eben gerade getestet im LIDL Dreieich bei Frankfurt: Leider ist absolut nichts passiet. Wir waren alle total gespannt, haben bestimmt gegrinst und waren sehr enttäuscht, als die Kassiererin einfach sagte, dass sie ja nichts von uns bekommen würde und der Betrag mit 0,00 € angezeigt wurde.
Schweigend sind wir uns dem Laden getrottet.
Dafür haben wir jetzt zwei Päckchen passierte Tomaten für je 25 Cent.

Bianca hat gesagt…

Danke für diesen tollen Beitrag. Hat meinen Seminarvortrag über Modultests heute sehr schön aufgepeppt.

LG Bianca

Zettt hat gesagt…

lol ^^ das muss ich doch glatt mal ausprobieren.

Anonym hat gesagt…

Kann für Münster nur bestätigen, dass es her auch nicht mehr funktioniert. Habe es heute ausprobiert.
Kennt jemand andere Ketten mit miesen Arbeitsbedingungen, bei denen das Probleme macht?

Anonym hat gesagt…

Ja hacking is wohl hart übertrieben, macht euch doch den Spass und gebt nur eine Flasche ab und kauft goarnix dann schreit die Kasse genauso nah Autorisierung bs jemand von "Far-Far-Away" mit nem Bon "gelaufen" kommt. Is mir ausversehen heut passiert fand allerdings viel lustiger als den"BUG" oder die "Schlange hinter mir" die ca 192 Kg schwere "Uschi" die mit Ihren ca 42cm "langen" Beinen mit feuerrotem Kopp den schier endlos langen 20 meter Gang zur Kasse gesprintet kam. . . Also Bug hin oder her SPASS MACHTS AUF JEDEN FALL :-)))))))))

hr hat gesagt…

Zum Thema lustige Bugs:
Ich wollte gerade um 23:58 Uhr am 31.05 nach eine Zugverbindung auf www.bahn.de suchen. Wer findet den Fehler im Bild?
http://img88.imageshack.us/my.php?image=lolbahnbugbv1.jpg

hr hat gesagt…

kleiner Nachtrag. Der Bug lässt sich sogar rekonstruieren. Einfach Die Systemuhr auf 23:58Uhr und das Datum auf den letzten des Monats stellen.
Der Monat verlängert sich wie durch ein Wunder um einen Tag. Habs bis jetzt aber nur mit Mai und Juni und dem Firefox getestet.

Romano hat gesagt…

ich denke, dass es daran liegt, dass die Kasse versucht die Mehrwertsteuer für den Beleg zu berechnen und in dieser Berechnung dann eine Division durch NULL stattfindet. Da das bekantermaßen nicht geht stellt das system einen Fehler fest.

dh hat gesagt…

Ich habe einen anonymen Kommentar erhalten, der Lidl mit einer religiösen Splittergruppe in Verbindung bringt und eine -- in meinen Augen -- unqualifizierte Anmerkung zur Fehlerursache beisteurt.

Ich bitte den anonymen Kommentator bzw. die anonyme Kommentatorin, solche Kommentare z.B. auf einem eigenen Blog unterzubringen und nicht die anonyme Kommentarfunktion für solche Beiträge zu verwenden.

cheaty hat gesagt…

Stimmt - klappt wirklich - habs ausprobiert - Die Leute auf dem Bild haben sich nicht schnell aus dem Staub gemacht, sie wurden noch im Nachhinein weggezeichnet - ich glaub nicht, dass alle ihre Wahren auf dem Band liegen gelassen haben

Berlioz hat gesagt…

Hach, sowas ist schön, das probiere ich auch mal aus.
Danke für den Tipp!

Mir ist mal passiert, dass ich zwar Geld zurückbekam (hatte jede Menge Pfand), aber die Kassiererin trotzdem von mir das Geld wollte. Hat mich viel Zeit und Nerven gekostet, um sie davon zu überzeugen, dass der angezeigte Betrag mir zustand. (War in einem REWE in Bonn, normalerweise sind die da aber ziemlich fit, vllt. war sie neu.)

Tim hat gesagt…

Ich glaube den Bug gibt's wahrscheinlich immernoch, denn auch wenn für ein paar Scherzkekse, die das ganze absichtlich testen und die wenigen Ausnahmefälle in denen so ein Betrag zufällig zustande kommt, lohnt es sich wohl wirklich nicht, das ganze Kassensystem zu fixen. Vermutlich hat Lidl eh genug andere baustellen um die sie sich kümmern müssen. So ganz einfach können die die Skandale auch nicht von sich abschütteln wie mir scheint.

dh hat gesagt…

Ich habe in den Morgenstunden einen anonymen Kommentar erhalten, der beginnt mit "Gratulation. Das ist der mit Abstand dümmste BLOG 2008!" und dann nicht mehr schafft, als unflätig über diesen Blogbeitrag herzufallen. Solche Kommentare lehne ich wegen des Stils der Äußerung von Kritik ab. Entweder bringen Sie, lieber Anonymous, Ihre Kritik in einem angemessenen Ton vor, oder Sie tun das, was Sie offenbar sowieso vorhaben: den dümmsten aller Blogs nicht mehr zu lesen.

Anonym hat gesagt…

KANNS SEIN DASS SIE/DU IN SOLINGEN WOHNST? :D ich kenn den lidl :)

dh hat gesagt…

@Anonym: *l* Nein! Aber um die Mitarbeiter(innen) nicht zu diskreditieren, verrate ich nicht, aus welchem Lidl die Bilder stammen. Weit weg von Solingen ;-)

Anonym hat gesagt…

Ich glaube, ihr denkt alle genauso kompliziert, wie die Programmierer dieser Kassen. Warum wird denn "Autorisieren" angezeigt? Das wird natürlich immer genau dann automatisch angezeigt, wenn die Kasse "nicht weiter weiß", und nicht, wenn der Betrag kleiner oder kleiner gleich Null ist. Ganz klar wurde dieser Testfall nicht geprüft, es wurde etwas ungenau programmiert, aber eine Standard-Routine wirf das "Autorisieren" raus.

Ansonsten fällt mir nur noch ein: eine ziemlich ausgefallene Anmache für das Mädel an der Kasse. So kriegt ihr sie bestimmt...