From: <ru...@us...> - 2007-07-25 11:48:40
|
Revision: 1 http://tomtesttool.svn.sourceforge.net/tomtesttool/?rev=1&view=rev Author: rumbi Date: 2007-07-25 04:48:38 -0700 (Wed, 25 Jul 2007) Log Message: ----------- RR: committed trunk to sf.net, need to discuss docs Added Paths: ----------- branches/ tags/ trunk/ trunk/BUGS trunk/Handbuch.pdf trunk/build.xml trunk/buildsettings.properties trunk/en.lang trunk/fr.lang trunk/src/ trunk/src/de/ trunk/src/de/sopra/ trunk/src/de/sopra/controller/ trunk/src/de/sopra/controller/AnalysisHandler.java trunk/src/de/sopra/controller/AutoSaveHandler.java trunk/src/de/sopra/controller/AutoSaveListener.java trunk/src/de/sopra/controller/ConfigurationParser.java trunk/src/de/sopra/controller/Controller.java trunk/src/de/sopra/controller/ControllerFactory.java trunk/src/de/sopra/controller/ExecutionHandler.java trunk/src/de/sopra/controller/HandlerInterface.java trunk/src/de/sopra/controller/LocaleHandler.java trunk/src/de/sopra/controller/MainHandler.java trunk/src/de/sopra/controller/PerspectiveEnum.java trunk/src/de/sopra/controller/PreparationHandler.java trunk/src/de/sopra/controller/TOM.java trunk/src/de/sopra/controller/UserHandler.java trunk/src/de/sopra/controller/Visitor.java trunk/src/de/sopra/controller/facade/ trunk/src/de/sopra/controller/facade/ControllerInterface.java trunk/src/de/sopra/controller/facade/package-info.java trunk/src/de/sopra/controller/package-info.java trunk/src/de/sopra/controller/pdf/ trunk/src/de/sopra/controller/pdf/PageDecorator.java trunk/src/de/sopra/controller/pdf/ReportGenerator.java trunk/src/de/sopra/controller/pdf/package-info.java trunk/src/de/sopra/controller/tree/ trunk/src/de/sopra/controller/tree/TreeUtilities.java trunk/src/de/sopra/controller/tree/package-info.java trunk/src/de/sopra/controller/xml/ trunk/src/de/sopra/controller/xml/XMLEntityResolver.java trunk/src/de/sopra/controller/xml/XMLErrorHandler.java trunk/src/de/sopra/controller/xml/XMLLoader.java trunk/src/de/sopra/controller/xml/XMLParser.java trunk/src/de/sopra/controller/xml/XMLSaver.java trunk/src/de/sopra/controller/xml/XMLSequenceExporter.java trunk/src/de/sopra/controller/xml/XMLSequenceImporter.java trunk/src/de/sopra/controller/xml/package-info.java trunk/src/de/sopra/exceptions/ trunk/src/de/sopra/exceptions/ConfigFileIOException.java trunk/src/de/sopra/exceptions/IdOverflowException.java trunk/src/de/sopra/exceptions/IllegalLastSelectedPathException.java trunk/src/de/sopra/exceptions/InvalidDefaultConfigFileException.java trunk/src/de/sopra/exceptions/OverflowException.java trunk/src/de/sopra/exceptions/PropertiesNotLoadedException.java trunk/src/de/sopra/exceptions/ReferencesOverflowException.java trunk/src/de/sopra/exceptions/ResourceNotFoundException.java trunk/src/de/sopra/exceptions/TimeParseException.java trunk/src/de/sopra/exceptions/XMLException.java trunk/src/de/sopra/exceptions/XMLExportException.java trunk/src/de/sopra/exceptions/XMLImportException.java trunk/src/de/sopra/exceptions/package-info.java trunk/src/de/sopra/model/ trunk/src/de/sopra/model/Priority.java trunk/src/de/sopra/model/ReadableIterator.java trunk/src/de/sopra/model/TOMVersion.java trunk/src/de/sopra/model/TestProject.java trunk/src/de/sopra/model/Time.java trunk/src/de/sopra/model/Visitable.java trunk/src/de/sopra/model/execution/ trunk/src/de/sopra/model/execution/ExecutedTestCase.java trunk/src/de/sopra/model/execution/ExecutedTestSequence.java trunk/src/de/sopra/model/execution/ReadableExecutedTestCase.java trunk/src/de/sopra/model/execution/ReadableExecutedTestSequence.java trunk/src/de/sopra/model/execution/ReadableTestExecution.java trunk/src/de/sopra/model/execution/ReadableTestExecutionContainer.java trunk/src/de/sopra/model/execution/TestExecution.java trunk/src/de/sopra/model/execution/TestExecutionContainer.java trunk/src/de/sopra/model/execution/package-info.java trunk/src/de/sopra/model/package-info.java trunk/src/de/sopra/model/preparation/ trunk/src/de/sopra/model/preparation/ElementContainer.java trunk/src/de/sopra/model/preparation/ReadableElementContainer.java trunk/src/de/sopra/model/preparation/ReadableTestCase.java trunk/src/de/sopra/model/preparation/ReadableTestElement.java trunk/src/de/sopra/model/preparation/ReadableTestSequence.java trunk/src/de/sopra/model/preparation/ReadableTreeRoot.java trunk/src/de/sopra/model/preparation/TestCase.java trunk/src/de/sopra/model/preparation/TestElement.java trunk/src/de/sopra/model/preparation/TestSequence.java trunk/src/de/sopra/model/preparation/TreeRoot.java trunk/src/de/sopra/model/preparation/package-info.java trunk/src/de/sopra/model/userdata/ trunk/src/de/sopra/model/userdata/ReadableUser.java trunk/src/de/sopra/model/userdata/ReadableUserContainer.java trunk/src/de/sopra/model/userdata/User.java trunk/src/de/sopra/model/userdata/UserContainer.java trunk/src/de/sopra/model/userdata/package-info.java trunk/src/de/sopra/package-info.java trunk/src/de/sopra/view/ trunk/src/de/sopra/view/AboutDialog.java trunk/src/de/sopra/view/AuthorListCellRenderer.java trunk/src/de/sopra/view/FailSafeErrorNotifier.java trunk/src/de/sopra/view/GlobalExecutionListener.java trunk/src/de/sopra/view/GlobalMenuListener.java trunk/src/de/sopra/view/PerspectiveChangeButtonListener.java trunk/src/de/sopra/view/TOMFrame.java trunk/src/de/sopra/view/ViewUtilities.java trunk/src/de/sopra/view/facade/ trunk/src/de/sopra/view/facade/AnalysisInterface.java trunk/src/de/sopra/view/facade/ExecutionInterface.java trunk/src/de/sopra/view/facade/FailsafeErrorFactory.java trunk/src/de/sopra/view/facade/FailsafeErrorInterface.java trunk/src/de/sopra/view/facade/MainInterface.java trunk/src/de/sopra/view/facade/PreparationInterface.java trunk/src/de/sopra/view/facade/UserInterface.java trunk/src/de/sopra/view/facade/package-info.java trunk/src/de/sopra/view/menus/ trunk/src/de/sopra/view/menus/PopupAnalysisList.java trunk/src/de/sopra/view/menus/PopupPreparationTree.java trunk/src/de/sopra/view/menus/PopupUser.java trunk/src/de/sopra/view/menus/package-info.java trunk/src/de/sopra/view/package-info.java trunk/src/de/sopra/view/perspectives/ trunk/src/de/sopra/view/perspectives/SelectionPane.java trunk/src/de/sopra/view/perspectives/WelcomePane.java trunk/src/de/sopra/view/perspectives/analysis/ trunk/src/de/sopra/view/perspectives/analysis/AnalysisListModel.java trunk/src/de/sopra/view/perspectives/analysis/AnalysisListSelectionListener.java trunk/src/de/sopra/view/perspectives/analysis/AnalysisPane.java trunk/src/de/sopra/view/perspectives/analysis/AnalysisTableModel.java trunk/src/de/sopra/view/perspectives/analysis/ListPane.java trunk/src/de/sopra/view/perspectives/analysis/package-info.java trunk/src/de/sopra/view/perspectives/execution/ trunk/src/de/sopra/view/perspectives/execution/ExecutionCasePane.java trunk/src/de/sopra/view/perspectives/execution/ExecutionEndPane.java trunk/src/de/sopra/view/perspectives/execution/ExecutionPane.java trunk/src/de/sopra/view/perspectives/execution/ExecutionSequencePane.java trunk/src/de/sopra/view/perspectives/execution/ExecutionStartPane.java trunk/src/de/sopra/view/perspectives/execution/package-info.java trunk/src/de/sopra/view/perspectives/package-info.java trunk/src/de/sopra/view/perspectives/preparation/ trunk/src/de/sopra/view/perspectives/preparation/CancelButtonListener.java trunk/src/de/sopra/view/perspectives/preparation/InputWatcher.java trunk/src/de/sopra/view/perspectives/preparation/OkButtonListener.java trunk/src/de/sopra/view/perspectives/preparation/PreparationCasePane.java trunk/src/de/sopra/view/perspectives/preparation/PreparationCasesPane.java trunk/src/de/sopra/view/perspectives/preparation/PreparationPane.java trunk/src/de/sopra/view/perspectives/preparation/PreparationSequencePane.java trunk/src/de/sopra/view/perspectives/preparation/PreparationTabPane.java trunk/src/de/sopra/view/perspectives/preparation/PreparationTableModel.java trunk/src/de/sopra/view/perspectives/preparation/package-info.java trunk/src/de/sopra/view/perspectives/userdata/ trunk/src/de/sopra/view/perspectives/userdata/NewUserDialog.java trunk/src/de/sopra/view/perspectives/userdata/UserPane.java trunk/src/de/sopra/view/perspectives/userdata/UserTableModel.java trunk/src/de/sopra/view/perspectives/userdata/package-info.java trunk/src/de/sopra/view/tree/ trunk/src/de/sopra/view/tree/DataTree.java trunk/src/de/sopra/view/tree/DataTreeCellRenderer.java trunk/src/de/sopra/view/tree/DataTreeModel.java trunk/src/de/sopra/view/tree/DataTreeSelectionListener.java trunk/src/de/sopra/view/tree/DataTreeTransferContainer.java trunk/src/de/sopra/view/tree/TreePane.java trunk/src/de/sopra/view/tree/package-info.java trunk/src/resources/ trunk/src/resources/TestCases.dtd trunk/src/resources/config/ trunk/src/resources/config/package-info.java trunk/src/resources/config/std_de.lang trunk/src/resources/config/std_tom.cfg trunk/src/resources/images/ trunk/src/resources/images/abbrechen.png trunk/src/resources/images/auswertung.png trunk/src/resources/images/auswertung_riesig.png trunk/src/resources/images/bearbeiten.png trunk/src/resources/images/durchfuehrung_riesig.png trunk/src/resources/images/emptybox.png trunk/src/resources/images/ende.png trunk/src/resources/images/hilfe_riesig.png trunk/src/resources/images/kategorie.png trunk/src/resources/images/leftjust.png trunk/src/resources/images/loeschen.png trunk/src/resources/images/neu_kategorie.png trunk/src/resources/images/neu_riesig.png trunk/src/resources/images/neu_sequenz.png trunk/src/resources/images/neu_testfall.png trunk/src/resources/images/neu_user.png trunk/src/resources/images/not_ok.png trunk/src/resources/images/oeffnen_riesig.png trunk/src/resources/images/ok.png trunk/src/resources/images/ok_with_comment.png trunk/src/resources/images/package-info.java trunk/src/resources/images/pdf.png trunk/src/resources/images/pos1.png trunk/src/resources/images/rauf.png trunk/src/resources/images/runter.png trunk/src/resources/images/sequenz.png trunk/src/resources/images/speichern.png trunk/src/resources/images/stammdaten.png trunk/src/resources/images/stammdaten_riesig.png trunk/src/resources/images/starten.png trunk/src/resources/images/testfall.png trunk/src/resources/images/todo.png trunk/src/resources/images/vorbereitung.png trunk/src/resources/images/vorbereitung_riesig.png trunk/src/resources/itext-2.0.3.jar trunk/src/resources/itext-src-2.0.3.zip trunk/src/resources/package-info.java trunk/src/resources/save.dtd trunk/stats.sh Added: trunk/BUGS =================================================================== --- trunk/BUGS (rev 0) +++ trunk/BUGS 2007-07-25 11:48:38 UTC (rev 1) @@ -0,0 +1,328 @@ +Collect your bunnies HERE! + +"bunnies" are (in this case) bugs (as the filename might suggest to the discerning reader). + + Gefunden beim Systemtest mit TOM: + --------------------------------------- + + -- Gefunden bei Systemtest 2. Iteration: + + JM: NOT-NICE: ViewUtilities#DATE_TIME_FORMAT ist format hart gecoded, sollte aus Lokale kommen. Frz. Datum in Vorbereitungsperspektive muss in der Form 04 juil. 2007 sein. 04 juil. 07 wird zum Jahr 0007 geparst. alleridngs in anfang der Durchführung dann Deutsches Zeitformat genutzt! Inkonsistent. + --alles ab hier ist in JDefect. + + RR: FIXED (JM: 5 min): Abdeckung_Glassboxtest_windows2.pdf: In Standardconfig und config kein Eintrag für LanguageFile: NullPointerException + + JM FIXED (2 min): Tooltip "Projekt Öffnen" in Willkommensperspektive: "Öffnen Sie eine bestehende Projekt" + JM FIXED (4 min): Zwei Durchführungen, löschen von einer: Andere ist selektiert in der Liste, aber rechts nicht angezeigt. + JM (FK Fixed: 8 min) Lange Strings: Auswertungsperspektive nach Durchführung von langen Strings: Tabelle zu groß. + + JM: (FK fixed: 30 min, Minimum Size des äußeren Panels war preferred und hat sich vermutlich immer wieder neu berechnet)BUG: Noch immer in Vorbereitungsperspektive Problem mit Splitpane: Geklickt auf testsequenz "Darstellungstest große Strings", Splitpane bleibt ganz links und lässt sich nicht weiter nach rechts ziehen. + JM: FIXED in DataTree.drop: (7 min): Fehler, der entstand druch vorherige Korrektur: DragDrop-2.pdf: DragDrop auf sich selbst eines Testfalls tut so als wäre er auf sein Elternelement gezogen worden. + + JM: (FIXED, JM: 18 min) Allgemeines im Programm-2.pdf, S7: In Auswertungsperspektive focus markieren. Wechsel mit strg+1. STRG+p löst IllegalStateException aus. + JM: (FIXED: 7 min) Durchführung abbrechen-2.pdf, S2: Abbruch der Durchführung während Testfallseite angezeigt wird, Ungültige Beginn und Endzeit für Testfall: Im Bericht wird zeit des Testfalls angezeigt als "00:0-1 bis 12:50". + JM: PARTFIXED (3 min: Focus ist nun drin, aber blinkendes Caret wird nicht angezeigt). Stammdatenperspektive-2.pdf, S3: Beim Klick auf Bearbeiten in Stammdaten sollte Focus gleich im Textfeld sein, sonst ist ein zusätzlicher Klick nötig! + JM: FIXED: 10 min: Ich dachte ihr hattet speichern während der Durchführung disabled? Ist nicht so! FK begründet so: Benutzer könnte dann meinen, dass alles schon gespeichert ist. Wir machen jetzt folgendes: Während Durchführung wird beim Speichern der Button nicht disabled. + + + -- Gefunden bei Systemtest 1. Iteration: + + RR: FIXED(5min): Autosave: autoSaveProject() decrements author's references + twice when an unfinished execution is present. + + RR: FIXED(JM: 4 min): Wechsel Ausführung -> Auswertung: selektierte Durchführung nicht angezeigt, erst nach Wechsel weg und zurück wird sie angezeigt + + RR: FIXED(7min): Name, Datum und Autor Felder bei Standardtestsequenzen jetzt ausgegraut + + JM: FIXED (14 min) Allgemeines im Programm.pdf, S8, Testfall "Benutzerperspektive", DEL funktionierte nicht. + JM: FIXED (8 min) Abdeckung glassboxtest.pdf, S7 Programm aus Vorbereitungsperspektive beenden während man was ändert: Programm beendet sich nicht wenn man Ja/Nein Klickt bei Nachfrage, ob Änderungen gespeichert werden sollen. + + JM: FIXED (12min)für RR: Import und Merge von Testsequenzen funktioniert nicht, doppelte Standardtestsequenzen werden erstellt. (abdeckung glassboxtest.pdf, S8, Import und Export, neue Testfälle Glassbox.pdf, S5, Import und Export) + JM: FIXED (6 min) Abdeckung glassboxtest.pdf, S13, neue Testfälle Glassbox.pdf, S21: ändern eines Benutzernamen in "" war erlaubt. + JM: FIXED (2 min) Abdeckung glassboxtest.pdf, S16-18: "Paradoxe Zeit" und "Ungültige Zeitformate", sowie "durchführung genauer angesehen.pdf" S3: Verwechslung von zwei Meldungen bei der Validierung. + JM: FIXED (6 min) Stammdatenperspektive.pdf, S2, Nutzerdaten bearbeiten, projekt erstellen.pdf S5: Toggle von Aktivität eines Benutzers mit Bearbeiten klappt erst nach 2 mal klicken. + JM: FIXED (7 min) Stammdatenperspektive.pdf, S9, Nutzer mit Durchführungen löschen: Löschen von Benutzer: In combobox noch da! Problem war, dass View über Löschen benachrichtigt wurde, vor dem eigentlichen Löschen. + JM: FIXED (3 min) neue Testfälle Glassbox.pdf, S7, Anmerkung, Auswertungsperspektive: In Liste ist Element gewählt. Wegwechseln, zurückwechseln, Anzeige sitmmt nicht mit gewähltem Element überein. + JM: FIXED (11 min) neue Testfälle Glassbox.pdf, S14, Standard Locale Fehlt: Bei gelöschter Standard locale kommt NullPointerException statt Meldung. + JM: FIXED (6 min) neue Testfälle Glassbox.pdf, S19, "Benutzer ändern, Kontextmenü": Erst nach Marierung funktioniert das Ändern. Beim Rechtsklick wird nun die Spalte und Zeile zum Editieren markiert. + JM: FIXED (10min)für RR: Bei Speichern verschiebt sich Stunde des Beginns einer Durchführung um 1 in die Vergangenheit. Z.b. Durchführung von 8:28-8:29. Gleich danach in Auswertungsliste richtig dargestellt. Speichern, steht richtig in XML. Laden: Plötzlich Startzeit 7:28! + + JM: FIXED (8 min): Speichern ohne erstellte Benuter: Invalide XML Datei. Beim Speichern grundsärtzlich aktuelle Perspektive fragen, ob sie verlassen werden darf? - problem: Autosave. Ref: Neue Testfälle Glassbox.pdf, S22 (ohne Benutzer speichern und laden). + + JM: FIXED (5min): Konfigurationsdatei.pdf, Seite 6: Kaputte Konfigurationsdatei (Google logo) wird akzeptiert und ergänzt. Keien Fehlermeldung. + + JM: FIXED(20min): Dateien öffnen und speichern.pdf, Seite 7, "Invalide Datei laden": In XML allen Elementen die gleiche ID geben: XML Validator meckert nicht. Exception bei Vorbereitungsperspektive. + + JM: PARTFIXED (15 min): Lange Namen und Beschreibungen erzeugen in Durchrführungs und Vorbereitungsperspektiven viel zu breite Fenster. Es muss gekürzt werden. Siehe Testbericht "Lange Strings." + ~still neded: Gaps in ExecutionStart, ExecutionSequence and ExecutionEndPanes. + + FK: FIXED (10 min): resizing in der Auswertungsperspektive. + + JM: FIXED(15min): Konfigurationsdatei.pdf, Seite 3: Dateiname der Autospeicherung ist Projektname und nicht Dateiname. Letzteres macht mehr Sinn. Wäre aber nötig trotzdem bei ungespeichertem Projekt + JM: FIXED(15min): mit letzterem u.U. gelöst: Langer Projektname führt zu Filename too long exception im autosave. Wie kürzen? (Darstellungstest große strings.pdf, S4, Autosave mit langem projektnamen). + + JM: FIXED (RR: 6min): Noch immer "null" statt "" im Bericht bei leeren Anmerkungsfeldern. In der Datenstruktur sind diese wirklich null. Problem war beim Öffnen der gespeicherten Datei bei leeren XML-Tags. Im Modell standardwerte auf "" gesetzt. + JM: FIXED (7 min) Auswertungsperspektive: es werden Sekunden in der Liste angezeigt, die aber immer 00 sind. + + FK: FIXED (2 min): TOM fragt nach Drag and Drop und Schließen nicht, ob gespeichert werden soll (DragDrop.pdf). + + FK: FIXED (80 min): Einklappen des Baums bei Drag and Drop wird nun großteils verhindert. + Veraschobene Elemente werden dennoch eingeklappt (imho ok). Nebenbei noch einen Fehler + in der findPath-Methode repariert. (DragDrop.pdf) + + FK: (FIXED 10 min): Kein Drag and Drop bei gesperrtem Baum. + + RR: FIXED(15min):Windows: eine exe als config schmeisst eine IllegalArgumentException: Malformed \uxxxx encoding. +java.lang.IllegalArgumentException: Malformed \uxxxx encoding. + at java.util.Properties.loadConvert(Unknown Source) + at java.util.Properties.load0(Unknown Source) + at java.util.Properties.load(Unknown Source) + at de.sopra.controller.ConfigurationParser.initConfig(ConfigurationParser.java:185) + at de.sopra.controller.ConfigurationParser.<init>(ConfigurationParser.java:98) + at de.sopra.controller.ConfigurationParser.getInstance(ConfigurationParser.java:79) + at de.sopra.controller.MainHandler.setConfig(MainHandler.java:568) + at de.sopra.controller.Controller.getInstance(Controller.java:65) + at de.sopra.controller.TOM.main(TOM.java:61) + + Gefunden beim Bootstrapping-Systemtest: + --------------------------------------- + + JM: FIXED (5 min): In der Durchführung haben die Eingabefelder horizontale Scrolleisten und gehen unendlich weit nach rechts. + + JM: FIXED (10 min): Projekt erstellen.pdf hat Inhaltsverzeichnis am Ende der Datei! Nochmal als pdf exportieren im debugger! + + JM: FIXED (2 min) Tooltip durchführung: Erfolg "OK" und "Ok mit Anmerkung" falsch. Vorbereitungsperspektive allgemein.pdf S10, Testsequenz verschieben, Anmerkung + + FK: FIXED (10 min) Projekt erstellen 19.06.2007 13:25-14:47 Testfall 7, 9. Spezifikation korrigiert. + + FK: FIXED (10 min) Projekt erstellen 19.06.2007 13:25-14:47 Testfall 11, Gespeicherte Datei prüfen 19.06.2007 13:59-15:06 Testfall 20. Umbruch erzwungen. + + FK: FIXED (10 min) Projekt erstellen 19.06.2007 13:25-14:47 Testfall 12. Spezifikation korrigiert. + + JM: FIXED but not tested without Daylight Saving Time (6 min): PDF_Export: Dauer eine Stunde zu viel. + JM: FIXED: (3 min) "Anmerkung" bei Ausgangssituation des Testfalls im Report ist immer gleich der Ausgangssituation. Fehler ist in ExecutionPane zu suchen und nicht in PDF-Export. + JM: FIXED: (Vorbereitung 10, Korrektur 3) Folgefehler aus vorigem Fehler: "null" wird angezeigt im PDF-Report bei Anmerkung und anderen Feldern. Z.B. bei Projekt erstellen ist UserActionComment (wohl bei der Durchführung) zu null statt "" gesetzt. + JM: FIXED: (11 min) SUT fehlt in Bericht, genauso wie Anmerkung der Durchführung. + + JM: FIXED: (5 min) "Testsequenz Durchführen.pdf", Seite 5, Testfall 38: "Durchführen", Scrollpane-Position bei Durchführung nach oben setzen. Auch bei Preparation gemacht. + + JM: FIXED: (3 min): Exception "Empty success may not be set!" in ExecutedTestCase.setSuccess bei Abbruch der Durchführung! + + JM: FIXED(5min): BUG: Siehe auch (gegend Zeile 24: JM: für RR: Bei Speichern): In Auswertungsperspektive und im Report ist die Beginnzeit oder die Endzeit der Durchführung um 2 Stunden falsch. + + JM: FIXED:(20 min)BUG: Wechsel der Perspektive: Splitpane ist nun ganz links. Grund: Tabelle der Testsequenzen enthält zu viel Test bei längerer Beschreibung! Treepane minimumsize von ~100 geben. + JM: WOULDBENICE: DONE JM 5min: Testfälle Reiter der Testsequenz: Hoch-Runter Knöpfe verschieben zwar richtig, Focus sollte für größere Verschiebeaktionen aber in der Tabelle in der Zeile bleiben! + + JM: FIXED 5 Min SPEC: Erwähnt ist STRG+E für Editieren. Das ist nirgendwo drin und auch nicht nötig. + + JM: FIXED(15min): Speichern während Durchführung geht bei uns - auch wenn die Durchführung nicht mitgespeichert wird, den Eindruck hat man aber. + JM: (FIXED in code, 10 min) SPEC sagt, dass beim Löschen eines Elements nachgefragt wird. Das geschieht nicht! + + RR: FIXED(10min):Windows: autosave schlägt fehl, weil das Dateisystem nicht mit den Zeichen umgehen kann + + + JM; RR (FIXED 4 min): Position of SplitPane is always in the center, even if minimumsize for right pane is larger. + + + Gefunden bei unsystematischen Tests: + ------------------------------------ + + RR: FIXED(5min): Benutzer unter selektiertem hinzufügen markiert auch den neuen. + + SPEC: FIXED(25min): Speichern button ausgegraut wenn gespeichert. + -FOLGEFEHLER JM: FIXED(15min) Ausgrauen der Toolbar z.B. durch Änderung und Entgrauen durch Abbrechen: Speicherstatus vergessen + + JM: FIXED(15min): Alle Benutzer inaktiv setzen und dann speichern. Nach Beenden und Öffnen ist es so. Darf nicht! + + JM: FIXED (2 min) Löschen einer Testsequenz: Projectchanged wird nicht auf true gesetzt! + + RR: FIXED (80min):Vorbereitung: Auswahl eines Testfalls. Klick auf das "collapse"-Icon einer Muttertestsequenz. Diese wird nicht geschlossen, sondern selektiert. Bei einer nicht-Mutter Testsequenz funktionierts. + + RR: FIXED (4min): Analysis -> open Project -> direkt exportieren: alte durchführung im Speicher + + RR: FIXED(5min): Benutzer löschen schlägt fehl, wenn man versucht einen aktiven Benutzer zu löschen während + nur noch ein inaktiver existiert. + + RR: FIXED(15min): lastopened.folder wird in Windows nicht korrekt gespeichert + + RR: FIXED(20min): Die Version von tom.cfg wird nicht verifiziert + + JM, FK (FIXED 5 min): Einfügen eines Testfalls direkt unter die Wurzel ist möglich durch Copy&Paste. + JM, FK: FIXED 2 min Folgefehler dieses Fixes: Nach Meldung, dass nicht geht, wird gui nicht unlocked. + + JM: FIXED(80min): Löschen von Sequenz oder Testfall: Daten Bleiben sichtbar auf der rechten Seite! + + JM: FIXED (2 min): Ausschneiden wenn kein Element markiert: NullPointerException. + + + + RR: Tree behaviour sucks during import of default/non-default test sequences and + manipulation via table. + + RR: FIXED (1min): Perspektivwahl zeigt Projekttitel nicht an. + + RR: FIXED (4min): TOM mit Projekt als Parameter öffnet Projekt nicht + + RR: FIXED (35min): TOM can't compare its version to a passed version string + + RR: FIXED (10min): default locales weren't initialized on time + + RR: FIXED(10min): Tooltips bei Autor-ComboBoxes sind durch die Länge der ComboBox beschränkt + + BUG: FIXED(?): Klicke rechts auf untergeordnete Testsequenz (nicht Standardtestsequenz) eines neu geöffneten Projekts, ohne dass irgendwas im Baum markiert ist. Diese wird nicht markiert und kontextmenü Klicks haben keine Wirkung. + + JM, RR: Fixed (10 min): Was beim Schließen so lange dauert ist das Speichern der config datei, vor allem folgende Zeile: + writeStream = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(confFile))); + + JM: FIXED(8min): SaveConfigFile verschoben nach Close aus CloseProject! + +FIXED JM 4 min: D&D von Element auf sich selbst: sollte keine Meldung kommen. + +PARTFIXED JM 3 min: Löschen in Toolbar einige Mal klicken bis nichts mehr markiert: +Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException + at de.sopra.controller.PreparationHandler.removeFromTree(PreparationHandler.java:1121) + at de.sopra.controller.PreparationHandler.removeElement(PreparationHandler.java:873) + at de.sopra.controller.Controller.removeElement(Controller.java:584) + at de.sopra.view.GlobalMenuListener.actionPerformed(GlobalMenuListener.java:134) + at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) +FIXED (30 min)BUG: Ähnlich dazu: Löschen eines Testfalls - darüberliegende Testsequenz wird markiert. Weiter löschen, wird gelöscht. Weiter löschen: Es bleibt gelöschte irgendwo als markiertes element gespeichert! + +FIXED JM 5 min: Auswertungstabelle: Grafiken mit Erfolg werden nicht angezeigt wenn ausgeführt in Jar! + +FIXED RR: 7 min: Nach dom3 änderung: Öffnen von vielDurchgeführt.tom, keine Durchführungen angezeigt! + +FIXED: JM: 15 min: Success_not_set darf nicht gesetzt werden, auch nicht bei Abbruch einer Durchführung durch autosave, das wird dann auf not ok gersetzt. Damit ist sichergestellt, dass der Filter richtig geht. + +FIXED: JM 7 min: Öffnen einer nicht existenten datei: Exception kommt und keine Meldung. + +FIXED: JM/RR: (30 min) In Windows gespeicherte Datei (testsequenz.tom) kann auch in windows nicht mehr geöffnet werden: +java.net.MalformedURLException: unknown protocol: c. Used new File(string). + +FIXED: (80 min) BUG: JM: Kopieren/Ausschneiden eines Testfalls. Irgendwie geschafft Markierung im Baum zu verlieren. Strg+V: +Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Illegal location to paste + at de.sopra.controller.PreparationHandler.paste(PreparationHandler.java:863) + at de.sopra.controller.Controller.paste(Controller.java:520) + at de.sopra.view.GlobalMenuListener.actionPerformed(GlobalMenuListener.java:127) + + +JM: FIXED(vorb:15min, 4min): Schließen eines Projektes mit Markiertem Element im Baum und anderes öffnen danach!!!!!! +de.sopra.exceptions.IllegalLastSelectedPathException + at de.sopra.view.tree.DataTreeModel.setLastSelected(DataTreeModel.java:167) + at de.sopra.view.tree.DataTreeSelectionListener.valueChanged(DataTreeSelectionListener.java:56) + at javax.swing.JTree.fireValueChanged(JTree.java:2825) + at javax.swing.JTree$TreeSelectionRedirector.valueChanged(JTree.java:3196) + at javax.swing.tree.DefaultTreeSelectionModel.fireValueChanged(DefaultTreeSelectionModel.java:629) + at javax.swing.tree.DefaultTreeSelectionModel.notifyPathChange(DefaultTreeSelectionModel.java:1078) + at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(DefaultTreeSelectionModel.java:287) + at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPath(DefaultTreeSelectionModel.java:170) + at javax.swing.JTree.setSelectionPath(JTree.java:1600) + at de.sopra.view.tree.TreePane.setSelectedElement(TreePane.java:210) + at de.sopra.view.TOMFrame.setSelectedTreeElement(TOMFrame.java:1447) + at de.sopra.view.perspectives.preparation.PreparationPane.displaySequence(PreparationPane.java:96) + at de.sopra.controller.PreparationHandler.changeDisplayedTestElement(PreparationHandler.java:171) + at de.sopra.controller.Controller.changeDisplayedTestElement(Controller.java:198) + at de.sopra.view.tree.DataTreeSelectionListener.valueChanged(DataTreeSelectionListener.java:57) + at javax.swing.JTree.fireValueChanged(JTree.java:2825) + at javax.swing.JTree$TreeSelectionRedirector.valueChanged(JTree.java:3196) + at javax.swing.tree.DefaultTreeSelectionModel.fireValueChanged(DefaultTreeSelectionModel.java:629) + at javax.swing.tree.DefaultTreeSelectionModel.notifyPathChange(DefaultTreeSelectionModel.java:1078) + at javax.swing.tree.DefaultTreeSelectionModel.removeSelectionPaths(DefaultTreeSelectionModel.java:497) + at javax.swing.JTree.removeDescendantSelectedPaths(JTree.java:3521) + at javax.swing.JTree$TreeModelHandler.treeStructureChanged(JTree.java:3625) + at de.sopra.view.tree.DataTreeModel.fireStructureChanged(DataTreeModel.java:461) + at de.sopra.view.tree.DataTreeModel.setRoot(DataTreeModel.java:93) + at de.sopra.view.tree.TreePane.setNewRoot(TreePane.java:199) + at de.sopra.view.TOMFrame.registerDataRoot(TOMFrame.java:959) + at de.sopra.controller.MainHandler.registerProjectWithView(MainHandler.java:317) + at de.sopra.controller.MainHandler.openProject(MainHandler.java:289) + at de.sopra.controller.MainHandler.openProject(MainHandler.java:266) + at de.sopra.controller.Controller.openProject(Controller.java:502) + + +FIXED(40min): BUG: In Windows gespeicherte Datei (testsequenz.tom) kann in Linux nicht mehr geöffnet werden: +com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence. + at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(UTF8Reader.java:674) + at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(UTF8Reader.java:547) + at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1742) + at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.scanLiteral(XMLEntityScanner.java:1064) + at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanAttributeValue(XMLScanner.java:974) + at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanAttribute(XMLDocumentFragmentScannerImpl.java:1537) + at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1314) + at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2740) + at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:645) + at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:508) + at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807) + at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737) + at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107) + at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:225) + at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:283) + at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:180) + at de.sopra.controller.xml.XMLParser.fromXML(XMLParser.java:181) + at de.sopra.controller.MainHandler.openProject(MainHandler.java:260) + at de.sopra.controller.Controller.openProject(Controller.java:559) + at de.sopra.view.GlobalMenuListener.actionPerformed(GlobalMenuListener.java:184) + at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) + + + +FIXED(10min): BUG - +Standardconfigdatei löschen: Starten: +java.lang.NullPointerException + at java.io.Reader.<init>(Reader.java:61) + at java.io.InputStreamReader.<init>(InputStreamReader.java:55) + at de.sopra.controller.ConfigurationParser.copyConfFromStandard(ConfigurationParser.java:111) + at de.sopra.controller.ConfigurationParser.initConfig(ConfigurationParser.java:164) + at de.sopra.controller.ConfigurationParser.<init>(ConfigurationParser.java:98) + at de.sopra.controller.ConfigurationParser.getInstance(ConfigurationParser.java:79) + at de.sopra.controller.MainHandler.setConfig(MainHandler.java:568) + at de.sopra.controller.Controller.getInstance(Controller.java:65) + at de.sopra.controller.TOM.main(TOM.java:61) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) + at java.lang.reflect.Method.invoke(Method.java:597) + at com.vladium.emma.rt.AppRunner$Invoker.run(AppRunner.java:655) + at java.lang.Thread.run(Thread.java:619) + +BUG: FIXED: (JM 15min) Warten auf einige autosaves in Execution perspective, während ausführung eines Testfalls: +Remove im elementcontainer entfernt nicht nur Referenz der execution, sondern auch Referenz der durchgeführten testsequenz usw. welche nicht kopiert wurden für austospeichern. +Exception in thread "AWT-EventQueue-0" java.lang.IllegalAccessError: Tried to decrement the amount of references for user "jens m"! + at de.sopra.model.userdata.User.decrementReferences(User.java:70) + at de.sopra.model.preparation.TestElement.deRegister(TestElement.java:221) + at de.sopra.model.preparation.ElementContainer.deRegister(ElementContainer.java:296) + at de.sopra.model.execution.TestExecutionContainer.remove(TestExecutionContainer.java:87) + at de.sopra.controller.MainHandler.autoSaveProject(MainHandler.java:590) + at de.sopra.controller.Controller.autoSaveProject(Controller.java:140) + at de.sopra.controller.AutoSaveListener.actionPerformed(AutoSaveListener.java:29) + at javax.swing.Timer.fireActionPerformed(Timer.java:271) + at javax.swing.Timer$DoPostEvent.run(Timer.java:201) + at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) + at java.awt.EventQueue.dispatchEvent(EventQueue.java:597) + at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273) + at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183) + at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173) + at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168) + at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160) + at java.awt.EventDispatchThread.run(EventDispatchThread.java:121) + + + +UNIT TEST: +---------- + +RR: FIXED (5min): removeMnemonic(String) removed all escapes, not only those of &s +RR: FIXED (15min): deepCopy() in TestSequence did two setAuthor()s +RR: FIXED (10min): deepCopy() in TestSequence didn't rethrow exception from recursion +RR: FIXED (10min): deepCopy() in TestCase didn't reliably track references +RR: FIXED (10min): deepCopy() in TestSequence doesn't reliably track references +RR: FIXED (10min): passing null to Time(String) didn't result in a TimeParseException +RR, JM: FIXED (45 min with preparation): UID was 1) not always valid for XML and 2) ambiguous. +JM, RR FIXED (4min): Iterated over a collection and removing from it. Error, solved by using array. +FK, JM: FIEXED (2min): Iterated over a collection and removing from it. Error, solved by using array. +FIXED: JM: 3 min: NullpointerException in TestExecutionContainer#remove occurs when ExecutedTestSequence of an execution is null. +FIXED JM: 5min: TestExecution.toString was missing a calendar.gatTime when formatting. +FIXED ALLE 5 min: isDefault gibt true für treeroot (ID=1 - Konstruktor getNewID) zurück! +FIXED JM: 20 min: Time#getTimeInMillis Method very buggy. Had to add modulo day and TimezoneOffset. +FIXED: 5 min JM: ElementContainer may not contain itself! +FIXED: 5 min JM: Time has no equals, and Object#Equals returns false on same time. +FIXED: JM: 10 min: TestProject, isDefault gab true für Testfälle. Property changes on: trunk/BUGS ___________________________________________________________________ Name: svn:executable + * Added: trunk/Handbuch.pdf =================================================================== --- trunk/Handbuch.pdf (rev 0) +++ trunk/Handbuch.pdf 2007-07-25 11:48:38 UTC (rev 1) @@ -0,0 +1,15154 @@ +%PDF-1.4 +5 0 obj +<< /S /GoTo /D (chapter.1) >> +endobj +8 0 obj +(Einleitung) +endobj +9 0 obj +<< /S /GoTo /D (section.1.1) >> +endobj +12 0 obj +(\334bersicht \374ber dieses Handbuch) +endobj +13 0 obj +<< /S /GoTo /D (section.1.2) >> +endobj +16 0 obj +(Der Testzyklus) +endobj +17 0 obj +<< /S /GoTo /D (section.1.3) >> +endobj +20 0 obj +(\334berblick \374ber TOM) +endobj +21 0 obj +<< /S /GoTo /D (chapter.2) >> +endobj +24 0 obj +(Systemvoraussetzungen) +endobj +25 0 obj +<< /S /GoTo /D (section.2.1) >> +endobj +28 0 obj +(Hardware) +endobj +29 0 obj +<< /S /GoTo /D (section.2.2) >> +endobj +32 0 obj +(Software) +endobj +33 0 obj +<< /S /GoTo /D (chapter.3) >> +endobj +36 0 obj +(Installation) +endobj +37 0 obj +<< /S /GoTo /D (chapter.4) >> +endobj +40 0 obj +(Benutzeroberfl\344che) +endobj +41 0 obj +<< /S /GoTo /D (section.4.1) >> +endobj +44 0 obj +(Allgemeiner Aufbau) +endobj +45 0 obj +<< /S /GoTo /D (subsection.4.1.1) >> +endobj +48 0 obj +(Die Men\374leiste) +endobj +49 0 obj +<< /S /GoTo /D (subsection.4.1.2) >> +endobj +52 0 obj +(Die Werkzeugleiste) +endobj +53 0 obj +<< /S /GoTo /D (subsection.4.1.3) >> +endobj +56 0 obj +(Hauptfenster) +endobj +57 0 obj +<< /S /GoTo /D (chapter.5) >> +endobj +60 0 obj +(Erste Schritte) +endobj +61 0 obj +<< /S /GoTo /D (section.5.1) >> +endobj +64 0 obj +(Projekt anlegen) +endobj +65 0 obj +<< /S /GoTo /D (section.5.2) >> +endobj +68 0 obj +(Stammdaten) +endobj +69 0 obj +<< /S /GoTo /D (section.5.3) >> +endobj +72 0 obj +(Dateimanagement) +endobj +73 0 obj +<< /S /GoTo /D (chapter.6) >> +endobj +76 0 obj +(TOM f\374r Testvorbereiter) +endobj +77 0 obj +<< /S /GoTo /D (section.6.1) >> +endobj +80 0 obj +(Die Vorbereitungsperspektive) +endobj +81 0 obj +<< /S /GoTo /D (subsection.6.1.1) >> +endobj +84 0 obj +(Symbole in der Werkzeugleiste) +endobj +85 0 obj +<< /S /GoTo /D (section.6.2) >> +endobj +88 0 obj +(Standardtestsequenzen) +endobj +89 0 obj +<< /S /GoTo /D (section.6.3) >> +endobj +92 0 obj +(Testsequenzen erstellen) +endobj +93 0 obj +<< /S /GoTo /D (section.6.4) >> +endobj +96 0 obj +(Testf\344lle erstellen) +endobj +97 0 obj +<< /S /GoTo /D (section.6.5) >> +endobj +100 0 obj +(Testsequenzen bearbeiten) +endobj +101 0 obj +<< /S /GoTo /D (section.6.6) >> +endobj +104 0 obj +(Testf\344lle bearbeiten) +endobj +105 0 obj +<< /S /GoTo /D (section.6.7) >> +endobj +108 0 obj +(Testsequenzen und Testf\344lle l\366schen) +endobj +109 0 obj +<< /S /GoTo /D (section.6.8) >> +endobj +112 0 obj +(Testsequenzen und Testf\344lle verschieben) +endobj +113 0 obj +<< /S /GoTo /D (section.6.9) >> +endobj +116 0 obj +(Import und Export von Testsequenzen) +endobj +117 0 obj +<< /S /GoTo /D (chapter.7) >> +endobj +120 0 obj +(TOM f\374r Tester) +endobj +121 0 obj +<< /S /GoTo /D (section.7.1) >> +endobj +124 0 obj +(Die Durchf\374hrungsperspektive) +endobj +125 0 obj +<< /S /GoTo /D (subsection.7.1.1) >> +endobj +128 0 obj +(Symbole in der Werkzeugleiste) +endobj +129 0 obj +<< /S /GoTo /D (section.7.2) >> +endobj +132 0 obj +(Eine Testdurchf\374hrung beginnen) +endobj +133 0 obj +<< /S /GoTo /D (section.7.3) >> +endobj +136 0 obj +(Durchf\374hrung des Tests) +endobj +137 0 obj +<< /S /GoTo /D (section.7.4) >> +endobj +140 0 obj +(Abschluss einer Testdurchf\374hrung) +endobj +141 0 obj +<< /S /GoTo /D (section.7.5) >> +endobj +144 0 obj +(Testabbruch) +endobj +145 0 obj +<< /S /GoTo /D (chapter.8) >> +endobj +148 0 obj +(TOM f\374r Testauswerter) +endobj +149 0 obj +<< /S /GoTo /D (section.8.1) >> +endobj +152 0 obj +(Die Auswertungsperspektive) +endobj +153 0 obj +<< /S /GoTo /D (subsection.8.1.1) >> +endobj +156 0 obj +(Symbole in der Werkzeugleiste) +endobj +157 0 obj +<< /S /GoTo /D (section.8.2) >> +endobj +160 0 obj +(Anzeige und Filterung von Testdurchf\374hrungen) +endobj +161 0 obj +<< /S /GoTo /D (section.8.3) >> +endobj +164 0 obj +(Testdurchf\374hrungen l\366schen) +endobj +165 0 obj +<< /S /GoTo /D (section.8.4) >> +endobj +168 0 obj +(Testdurchf\374hrung als PDF exportieren) +endobj +169 0 obj +<< /S /GoTo /D (chapter.9) >> +endobj +172 0 obj +(Stammdaten) +endobj +173 0 obj +<< /S /GoTo /D (section.9.1) >> +endobj +176 0 obj +(Die Stammdatenperspektive) +endobj +177 0 obj +<< /S /GoTo /D (subsection.9.1.1) >> +endobj +180 0 obj +(Optionen im Men\374 \214Bearbeiten\215) +endobj +181 0 obj +<< /S /GoTo /D (subsection.9.1.2) >> +endobj +184 0 obj +(Symbole in der Werkzeugleiste) +endobj +185 0 obj +<< /S /GoTo /D (section.9.2) >> +endobj +188 0 obj +(Einen neuen Mitarbeiter anlegen) +endobj +189 0 obj +<< /S /GoTo /D (section.9.3) >> +endobj +192 0 obj +(Eigenschaften eines Mitarbeiter bearbeiten) +endobj +193 0 obj +<< /S /GoTo /D (section.9.4) >> +endobj +196 0 obj +(Einen Mitarbeiter l\366schen) +endobj +197 0 obj +<< /S /GoTo /D (chapter.10) >> +endobj +200 0 obj +(Konfigurationsdatei) +endobj +201 0 obj +<< /S /GoTo /D (chapter.11) >> +endobj +204 0 obj +(Deinstallation) +endobj +205 0 obj +<< /S /GoTo /D (chapter.12) >> +endobj +208 0 obj +(Tipps und Tricks) +endobj +209 0 obj +<< /S /GoTo /D (chapter.13) >> +endobj +212 0 obj +(Anhang) +endobj +213 0 obj +<< /S /GoTo /D (section.13.1) >> +endobj +216 0 obj +(Tastaturk\374rzel) +endobj +217 0 obj +<< /S /GoTo /D [218 0 R /Fit ] >> +endobj +220 0 obj << +/Length 416 +/Filter /FlateDecode +>> +stream +xڍSAn\xDB0\xBC\xFB<R@\xB9\xE1.ɥ\x98c\x81\xB8Eڠ@ \xE4R\xE7\xE0ČT\x96I\xBE\xF4\xF5]Z\xAE\xAB\xB6A\x90H\xED\xCCpvH\xA2\xB2\xF2\xA0\xAAP"\xA7"\x88\\xB3z\xDC-\xAC\xDAJ\xED\xC3O\x8F\x9C\xB0L_\xA9 +\xE7\xC8+\xE3\xA0a\x8E\xFA]Ă"\xC9\xC09,\xE8\xF7\xCD\xE2b\x89I\x91f +\xAAyRD\xC1zu\x865\x9B\xAF\xFA\xE3\xBA\xDB<+b\xFD\g\x936\xE5S\xEB\xE6\xCBMu\xDF\_,I\xF1\xE0<S1\xC9CD\xC7\xCA\xF8=Ut}wY\xB6\xEC5\x82-\xFC\xC5Usv\x8A\x84\x90\\xF4\x8A}F\x8A\xFFl\xEB\x8C6s\xF8\xB1\xAF\xDF-Ib\xB23ٙ\xA5\xA7\xF50\xE4\xFE\xF2O+X8A( \xAC\x8D\xFF \xF86s\xF4+F\x88 \xC4C\xFA\xA5Z\x8C,\x8B\x91u\xFB\xAD\xA2\xA8\xF7\x92-F\xFD\xA9Ľr\xCC\xE3\x98\xFBwӿ\xEB\xDC +\xD3\xE8f%]\xB7m\xA9\x88k\xB1`0J\xA7\xBEn\xF3K\xF7\xBCo7\xF6\xF6\xB0+Z\x95\x91w?r:ur\x96\xE48\xFA#\xF5\xAA\xC6ܶ\xE3D]\xEFd\xAB\xBC\xE7\xA0%?\xEB\x80\xC4\xF1y\xC1\xEBtd}\xCE\xE3\xF71O\x9C\x95\xB3\xBE\xDB\xE4\xFE\xD0m\x85L\x88\xAC-\x83\x8DB\xAE\xEAI`\x9E\xF3\xCF\xCBP6\x93\x83\xAB\xDF~~ |