Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Stefan Schwarzer Newsgroups: de.comp.lang.python Subject: Re: [Python-de] =?utf-8?q?Fehler_vor_Ausf=C3=BChrung_finden?= Date: Wed, 1 May 2019 22:31:02 +0200 Lines: 33 Message-ID: References: <27b1be15-9096-c2c0-67e0-631040875561@chrisarndt.de> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: news.uni-berlin.de ZPPKgSxGafpf6W/itJdiNwOzbVPcpC2QUutKMgzbSKLA== Return-Path: X-Original-To: python-de@python.org Delivered-To: python-de@mail.python.org Openpgp: preference=signencrypt Autocrypt: addr=sschwarzer@sschwarzer.net; prefer-encrypt=mutual; keydata= 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 WdtUokwYRxk= User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.24) Gecko/20100411 Thunderbird/2.0.0.24 Mnenhy/0.7.6.666 In-Reply-To: Content-Language: de-DE X-Provags-ID: V03:K1:0xlTkV90EoL1eXbApTUicWIZasTv9Q5bvW/0neS68iXVoGWwjHh 0O/i6cp2Fy5jB05goCF/Zebz8Y3ZZnbS1EMM10QV9ZHPDrd1CHAHKH9XTrJyXKjiZ8/wfAR 2ZFJzjf0o9X6M1Gj7KRgmmnPuMsn/5Qeal7KkPeVNEL1n3U80VBxqTy547ZtLFZOcLbZrdT 3NI57HgDt3p/a/BQCOgNQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:cbyEDckfqPQ=:ARnemrGfwPl2uwQLkT99En u0c7UOqHXeJ7Xy7KoUQgj1gFrfHSLqEwe0YZu1WrQ4FcCLAQdnJSjbtL7Oz/L7CD3NfoiMU7H rAOqnu/CIE77zj+NawvSy+iDlBqkyNqM6EW9tO2XYqHgmSu1idO07tjv6HiWD9zyY9o4Tcsup tRG4ow4bUVVgevD00uzNr3L7ep44CbGnlEjFBnbovq7c1jgr8avNQHH5l+b/P4a7GK6d/0GZ2 uvKc/OMkVlSinvTM6yV+rOYGd4Zg0+kAXQUBbwpO6s9+yO+rFCg0N40z5whMaRpHxok3Wk6+t r30bj97gf0+H9AXv5Bsjq7XLRonrTo44CiMbiUWpfWjcqRoiIe2EeQYWZ+ykNJor/VImlYLdc l8DJq6VaTOaZhKK7ccMuJ1lU/59aD9ltRsTVcxPjRWJjk2iR/YOL7cP5nMf+R3VQMv0jxle89 P28tqRgekrclxcUA0XmR2a3BdBkgonGCRA+G/w+TOPkySGRoPeWH8GUi+GGBonOWNfrInOFp9 L48ODgXW0ci0QrfIciIXhLmep3oN/cXejv+q35wutHOSSbLFyAhIrEDlnIUixuDeiFB8Tfuey Aywli2jVl1/425vZrjqXMQqO3gu9rjETn3C8P414BffUPAR3jCujbIclyExA3MMxqm5r8lU/O J5cs/GDYV5eMwFjmF4sAaMqFK9/2AcfgbkzskIqYx9R8U2qYaroAqqIjdlZHPXdJKzBnFuTdz i1xlci6glgcmnrqbT5c0Mwsxy525XFJFJSZ/BCqzx7GGZaf/azuROi6q4oXX4g5YNqASvBaTP ktwUjq1 X-BeenThere: python-de@python.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Die Deutsche Python Mailingliste List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: X-Mailman-Original-References: <27b1be15-9096-c2c0-67e0-631040875561@chrisarndt.de> Xref: csiph.com de.comp.lang.python:5477 On 01/05/2019 20.58, Raymond Czerny wrote: > Zu Qualitätssicherung sollte man testgetrieben entwickeln. > Die trifft übrigens auf alle Programmiersprachen zu. Ich finde testgetriebene Entwicklung vor allem dann sinnvoll, wenn man schon genau weiß, wo man hin will. Wenn ich noch mit dem Design experimentiere und Dinge noch während der Entwicklung hin- und herschiebe, schreibe ich noch keine Tests für diesen Code. Ich schreibe die Tests dann aber, wenn sich das Design einigermaßen stabilisiert hat. Ein Kompromiss ist unter Umständen, auch schon während einer solchen Design-Phase ein paar "High-Level-Tests", also eher Integrationstests zu schreiben, so dass man wenigstens ein bisschen Qualitätskontrolle hat. > Bei Unittest wird nicht nur das Verhalten auf gültige > Eingabewerte geprüft, sondern auch die Fehlerverarbeitung > mit mit ungültigen Werten. Wichtiger Hinweis, ja. :-) In dem Zusammenhang ist auch interessant, wenn es keine "falschen" Werte für einzelne Argumente gibt, sondern ein Fehler durch bestimmte Argument-Kombinationen zustandekommt. In dem Fall sollte man möglichst versuchen, das Design zu vereinfachen, so dass es möglichst keine "Querabhängigkeiten" zwischen Argumenten gibt bzw. sie unabhängig voneinander getestet werden können. Viele Grüße Stefan