Language Testing Plan/LanguageTestingWorkflow

Łatwo sobie wyobrazić, jak bolał Winnetou z powodu utraty ojca i siostry. Podczas pogrzebu mógł tę boleść wyrazić, potem jednak musiał ją zamknąć w sobie głęboko. Nakazywał mu to z jednej strony indyański obyczaj, a z drugiej konieczność zwrócenia całej uwagi na spodziewane przybycie Keiowehów. Nie był to już przygnieciony gorzką stratą syn i brat, lecz wódz wojowniczej drużyny, na której czele miał odeprzeć napad nieprzyjaciół i pochwycić mordercę Santera. Miał widocznie plan już gotowy, gdyż zaraz po pogrzebie kazał Apaczom przygotować się do drogi i sprowadzić konie, które znajdowały się na dolinie. — Dlaczego mój brat wydaje to zarządzenie? — spytałem. — Teren jest tak uciążliwy, że sprowadzenie tu koni będzie wiele trudu kosztowało. — Wiem o tem — odrzekł — ale stać się to musi, gdyż chcę w ten sposób wywieść w pole Keiowehów. Ujęli się za mordercą, za to wszyscy zginą? Twarz jego przybrała przy tych słowach wyraz groźny, stanowczy. Jeśliby dokonał swego zamiaru, Keiowehowie byliby zgubieni. Ja byłem w tym wypadku za łagodniejszą karą. Keiowehowie byli wprawdzie naszymi wrogami, lecz nie zawinili śmierci Inczu-czuny i jego córki. Czy mogłem pozwolić sobie wpłynąć na zmianę nastroju Winnetou? Kto wie, czybym nie był wzbudził w nim gniewu na siebie. Nastręczyła się jednak sposobność do tego rodzaju próby, gdyż byliśmy sami na polowaniu. Apacze poszli natychmiast za jego rozkazem, a Stone i Parker przyłączyli się do nich. Nikt zatem nie byłby usłyszał odpowiedzi, która, dana w gniewie, więc niewątpliwie szorstka, w obecności drugich byłaby mnie obraziła. Wyjawiłem Winnetou swoje zdanie w tej sprawie, ale ku memu zdumieniu nie nastąpił skutek, jakiego się obawiałem. On spojrzał na mnie dużemi, posępnemi oczyma i odpowiedział spokojnie: — Spodziewałem się tego po moim bracie, gdyż on ustępowania przed wrogiem nie uważa za słabość. — Tak nie myślałem, o ustępowaniu nie może być mowy. Zastanawiałem się już nawet nad tem, jak ich wszystkich pochwycić. Ale oni nie winni temu, co się tutaj stało i byłoby niesprawiedliwością, gdyby mieli karę za to ponieść. — Ujęli się za mordercą i chcą tu przyjść, aby uderzyć na nas! Czy nie dostateczny to dla nas powód, żeby ich nie oszczędzać? — Nie, a przynajmniej dla mnie nie. Przykro mi, że brat mój, Winnetou, gotów popełnić błąd, który jest przyczyną zguby wszystkich indyańskich narodów. — Jaki błąd ma Old Shatterhand na myśli? — Ten, że Indyanie rozdzierają się nawzajem, zamiast pomagać sobie przeciwko wspólnemu nieprzyjacielowi. Pozwól, że szczerze z tobą pomówię. Kto zdaniem twojem na ogół jest mędrszy i chytrzejszy, czerwony mąż, czy blada twarz? — Blada twarz. Przyznaję to, bo to prawda. Biali posiadają więcej niż my wiadomości i zdolności. Przewyższają nas niemal we wszystkiem. — Masz słuszność. My was przewyższamy. Ty jednak nie jesteś zwyczajnym Indyaninem. Wielki Duch udzielił ci darów, jakiemi nawet u białych mało kto się cieszy, dlatego chciałbym, żebyś myślał inaczej, niż zwykły czerwony mąż. Rozum masz bystry, a wzrok twój sięga o wiele, o wiele dalej od cielesnego i duchowego oka zwykłego wojownika. Ileż to razy wykopywano między wami wojenny tomahawk! Nie zaprzeczysz, że to jest nieustannem, okropnem samobójstwem, popełnianem przez czerwonego męża na sobie, a kto postępuje w ten sposób, bierze udział w tem samobójstwie. Inczu-czunę i Nszo-czi zabili nie czerwoni, lecz biali, a morderca schronił się do Keiowehów i namówił ich do napadu na was. To przedstawia wystarczający powód do tego, żeby tu na nich zaczekać i walczyć z nimi, ale nie usprawiedliwia tego, żeby ich jak pochwytane wściekłe psy wystrzelać. To są twoi czerwoni bracia; pamiętaj o tem! Prowadziłem tak rzecz jeszcze przez jakiś czas, Winnetou zaś słuchał spokojnie. A kiedy wypowiedziałem ostatnie słowo, podał mi rękę i rzekł:

THIS IS A PROPOSAL

The Wikimedia Language Engineering team presently uses the Cucumber and Selenium to test implemented features in web-browsers. Besides these automated tests implemented using Ruby, the team also tests manually when automated tests are not feasible or not implemented. For all tests the scenarios to be tested are written in the Given-When-Then format. This can be explained as:

Given a Situation When a certain event occurs Then a certain result is expected

This document outlines the process and best practices to implement tests that fully cover the user interface functionalities for repeated runs.

Phase 0: Conceptualization
When a feature is identified for implementation, the details of its functionalities, interface design and interactions are ascertained by the Product Owner in consultation with other stakeholders and described in the design documents. These descriptions are the blueprints for the developers when they implement the functionalities through code. It is imperative that the functionalities are clearly described for all possible user activity. A means to this end is the conceptualization of the individual Given-When-Then scenarios, that provide the developers with the description of the events that can be executed under different conditions and the intended reactions.

Phase 1: Scenario Building
The Given-When-Then scenarios are the smallest levels of activities that can be put together to describe a functionality. It is if extreme important to create the scenarios from the defined designs, including user interface mockups. This ought to be done by simulating interactions by the user on the dialogs, forms, buttons, input boxes and other user interaction elements described in the mock-up.

The number of scenarios can be extremely elaborate at this stage. It is also preferable that the original concept creators are not consulted at this point, to avoid leading the scenario writer.

Completed: A list of Given-When-Then scenarios of possible user activities for all functionalities is prepared

 People Involved: Language Engineering QA

Phase 2: Feature Review and Consensus
The list of scenarios created in Phase I is the foundation for all tests that need to be run against the feature. This exercise of granularity may also identify any missing functionalities or scenarios that may have been overlooked during the original design decisions. At this stage it is important to verify these inconsistencies with the Product Owner and/or UI Designer. This may or may not require the scenarios to be rewritten or modified.

In cases where the scenarios are written for extension of already implemented features, the original developers' may also be consulted.

Completed: The GWT scenario list is ratified for consistency with the intended feature

 People Involved: Language Engineering QA, PO, UI Designer, (Developers)

Phase 3: GWT Scenario Refinement
In the next stage the ratified scenarios need to be refined for actual use. This will have to be done depending upon how the scenarios will be used. For automated tests, the GWT scenario descriptions will have to be reformatted and committed into the appropriate gerrit repository as .feature files, suitable for writing the step definitions. Since this step may somewhat reduce the verbosity of the scenario, the original set of scenarios should remain unchanged to aid the manual tests. The text for the .feature files should be checked against the original GWTs for any loss of information.

Completed: The GWT scenarios identified for the automated tests are refined and submitted to the repository as .feature files

 People Involved: Language Engineering QA (Scenario writer and code writer)

Phase 4: Implementation
The test scenarios are now ready for implementation.

Automated
The process for writing the automated tests is elaborately described in the QA document.

Completed: The code for the scenarios in the .feature files is written and set in the build-system

 People Involved: Language Engineering QA (Code writer) and WMF QA team member (pairing)

Manual
The tests that are not set for automated tests are written as manual test cases, with 'execution steps'.

Given I am in the Main Page of the wiki When I press the 'Log-In' link Then I should see the 'Log-In' dialog

Test Case 1 Step 1 : Go to URL-of-Main-Page-of-the-wiki Step 2 : Click on the 'Log-In link on this page

Are you taken to the 'Log-In' page? - Yes/No

Completed: The scenarios for the manual tests are written as manual test cases i.e. it contains the steps for executing the test and for reporting the result

 People Involved: Language Engineering QA (Scenario writer)

Manual
(WIP) The results of the tests are collected from the TCMS. Failed tests are verified and bugs filed.

Completed: Regressions, bugs etc. are verified and submitted in the bug-tracking system for prioritization

 People Involved: Language Engineering QA