Historia testowania oprogramowania [aktualizacja - rok 2006]

Testowanie oprogramowania ma swoją znaczącą rolę w historii informatyki. Choć na osi czasu pojawiło się relatywnie niedawno, to warto pamiętać o korzeniach jego powstania.

 

Na początku był... BŁĄD.

Błąd przyczynił się do wynalezienia przez firmę IBM maszyny obliczeniowej, która umożliwiła sprawdzanie poprawności wykonywanych rutynowo zadań.

W 1950 roku uzmysłowiono sobie, że najważniejsze jest zadowolenie klienta, realizacja jego potrzeb oraz oczekiwań, które ulegają zmianom w czasie. Aby osiągnąć te cele należało zaplanować, kontrolować oraz oczywiście poprawiać jakość produktu. Jak wiadomo, u podstaw każdego błędu leżą źle zdefiniowane wymagania, dlatego stale powstawały modele obrazujące relacje między poszczególnymi elementami projektu. Pojawiające się błędy sklasyfikowano oraz określono międzynarodowe standardy jakości oprogramowania.

Często wyróżnia się następujące fazy rozwoju testowania:

  • Do 1956 testowanie postrzegane było jako debagowanie.
  • Od 1957 do 1978 następowało metodyczne rozróżnienie tych dwóch czynności i czas potwierdzania, że oprogramowanie jest zgodne z wymaganiami.
  • 1979-1982 to "czas destrukcji", kiedy to celem było znajdywanie defektów.
  • Od 1983 do 1987 następowała zmiana oceniania oprogramowania w kategoriach mierzenia jego jakości.
  • Od 1988 zaczęliśmy mówić o testowaniu jako formie zapobiegania powstawania defektów.

 

Od tego czasu rozwój technologii przyczynił się do usprawnienia przeprowadzanych testów oprogramowania, a co za tym idzie udoskonalenia procesu testowania. Na rynku pojawiły się testy automatyczne wspierane między innymi przez narzędzia open source.

Ewolucja testowania doprowadziła nas do dzisiejszego miejsca, gdzie testowanie oprogramowania stało się procesem opartym na poszukiwaniu, wykrywaniu, przeprowadzaniu badań, a co najważniejsze na stałym uczeniu się oprogramowania.

 

Najważniejsze fakty z historii testowania.

 

1957 - Charles L. Baker (RAND Corporation) w swojej publikacji w Mathematical Tables and Other Aids to Computation rozróżnił testowanie programów od debagowania.

1958 to rok, w którym Gerald M. Weinberg stworzył pierwszy zespół testerski. Zespół ten pracował w amerykańskim projekcie Mercury, którego celem były loty załogowe w kosmos.

 

 

1961 to rok, w którym napisany został pierwszy rozdział książki w całości dedykowany testowaniu. W Computer Programming Fundamentals Gerald Weinberg spierał się z Herbertem Leedsem odnośnie celu testowania.

1961 to również rok zdefiniowania techniki notacji logiki jako tablic decyzyjnych. Publikacja: Tabular Form in Decision Logic autorstwa Burtona Grada.

1963 - w publikacji dla przygotowywanego amerykańskiego standardu Robert J. Rossheim opisał symbole do użycia w grafach przepływu. Praca została opublikowana przez American Standards Association, która później stała się ANSI.

1967 - William Elmendorf w publikacji IBM o tytule "Evaluation of the Functional Testing of Control Programs" wezwał do bardziej sformalizowanego podejścia do testowania oprogramowania.

 

1968 - Podczas konferencji "Software Engineering" sponsorowanej przez NATO Science Committee pojawił się temat dotyczący zapewnienia jakości (ang. Quality Assurance). W katalogu podsumowującym wystąpienia opublikowano "Checklist for planning software system production" autorstwa Roberta W. Bemera, w którym jeden z rozdziałów dotyczył zapewnienia jakości.

1969 - Edsger W. Dijkstra wypowiedział jedną z najważniejszych zasad testowania: "Testowanie ujawnia obecność defektów, a nie ich brak" (z ang. "Testing shows the presence, not the absence of bug").

 

1970 - Winston Royce w swojej publikacji "Managing the Development of Large Software Systems" opisał model kaskadowy (1970). Jest to sekwencyjny procesy wytwarzania oprogramowania z wyraźnym zaznaczeniem konieczności testowania. Oryginalna praca: http://www.cs.umd.edu/class/spring2003/cmsc838p/Process/waterfall.pdf

1971 - W publikacji "Fault Diagnosis of Computer Programs" Richard Lipton zaproponował koncept mutacji. Testowanie mutacyjne jest metodą dla testów jednostkowych, w której modyfikuje się małe fragmenty kodu. Zmiany mają na celu sprawdzenie zdolności testów jednostkowych do wykrycia modyfikacji.

1972 - Podczas wykładu "The Humble Programmer" Edsger W. Dijkstra powiedział "Nie należy zaczynać od tworzenia oprogramowania, a potem udowadniać jego poprawność, ponieważ wówczas wymóg dostarczenia dowodu poprawności obciąży dodatkowo biednego programistę."

 

1973 - Podsumowaniem sympozjum Chapel Hill była publikacja książki "Program Test Methods" zredagowanej przez Williama Hetzela. Opisywała ona problemy występujące podczas testowania i walidacji.

1973 - IBM opublikował "Cause-Effect Graphs in Functional Testing" Williama Elmendorfa opisujący graf przyczynowo-skutkowy.

1973 - Powstała firma Compuware Corporation tworząca oprogramowanie wspierające testowanie.

1974 - IBM opublikował "The Walk-Thru--A Method of Specification" N.S. Waldsteina wprowadzającego koncept przeglądu - przejście.

1975 - Tom Gilb opublikował "Laws of Unreliabilty" w magazynie Datamation. Zdefiniował w niej niezawodność systemów i oprogramowania i relacje między błędem ludzkim, a błędem systemu.

1975 - Publikacja John B. Goodenough i Susan L. Gerhart omawia ograniczenia ustrukturyzowanego testowania.

1975 - W książce "The Mythical Man-Month: Essays on Software Engineering" Fred Brooks napisał, że dodawania zasobów ludzkich do już opóźnionego projektu jeszcze bardziej go opóźni (prawo Brooksa).

1975 - W książce "An Introduction to General Systems Thinking" Gerald M. Weinberg zaproponował swoją wizję teorii systemów. Głównym tematem książki jest świadomość ograniczeń narzędzi jakie posiadamy.

1976 - W publikacji "Software Engineering" w IEEE Transactions, Barry Boehm opublikował krzywą kosztów zmiany (ang. cost-of-change). Publikacja pokazywała, że koszt zmiany oprogramowania (w tym naprawiania defektów) rośnie wykładniczo w funkcji czasu.

1976 - W publikacji IBM-a Michael Fagan zaproponował użycie inspekcji kodu w celu zredukowania kosztów jego poprawek. 

1976 - Thomas J. McCabe w publikacji dla IEEE "A Complexity Measure" zaproponował miarę złożoności cyklomatycznej do mierzenia skomplikowania kodu oraz technikę testowania ścieżek do testów białoskrzykowych.

1976 - W książce "Software Reliability: Principles and Practices" Glenford Myers szeroko omówił aspekty testowania zapisując m.in., że "celem testera jest zmuszenie oprogramowania do ujawnienia defektów".

1977 - W książce "Software Metrics" Tom Gilb zaproponował dużą liczbę metryk oprogramowania.

1977 - Maurice Halstead opublikował metody pomiaru złożoności kodu w książce "Elements of Software Science".

1978 - W opublikowanej przez IEEE pracy Williama Howdena znalazł się opis testowania funkcjonalnego. Projektowanie programów określono w niej jako integrację zbioru jego funkcji.

1978 - W publikacji "Testing Software Design Modeled by Finite-State Machines" Tsun S. Chow zaproponował technikę testowania przejść stanów oraz odpowiednie miary pokrycia.

 

1979 - W tym roku ukazała się książka "The Art of Software Testing" Glenforda Myersa. Uznaje się ją za pierwszą książkę w całości poświęconą testowaniu. Myers m.in. wprowadzić w niej koncept testowania czarnej skrzynki.

1979 - W książce Philipa B. Crosbyego opisany został jego program do usprawniania jakości. Jakość została w niej określona jako zgodność z wymaganiami. Zdefiniował pięć kategorii 'Quality Maturity Grid'. Nastawienie kierownictwa przekłada się na dojrzałość oraz na zdolność do usprawnień.

1979 - Opublikowano brytyjski standard zapewnienia jakości BS 5750, który docelowo został włączony w ISO 9000.
W publikacji "Software Failure Mode and Effects Analysis" Donald J. Reifer zastosował technikę analizy przyczyn i skutków awarii (ang. FMEA) do oprogramowania.

1979 - Książka "Structured Analysis and System Specification" autorstwa Toma DeMarco opisała ustrukturyzowaną analizę z takimi elementami jak: dekompozycja funkcjonalna, słownik danych, specyfikacja procesu, modelowanie systemu dla budowania przyszłych systemów.

1979 - W publikacji "Measuring Application Development Productivity" Allan Albrecht, pracujący dla IBM wprowadził punkty funkcyjne, których celem miało być opomiarowania produktywności programisty.

 

1981 - W przełomowej książce "Software Engineering Economics" Barry W. Boehm stwierdza, że koszt naprawiania defektów rośnie wykładniczo w czasie. Definiuje również model kosztów (COCOMO), w którym (w uproszczeniu) przelicza się linie kodu na osobogodziny.

1981 - Powstaje firma Rational Software produkująca narzędzia wspierajace zarządzanie jakością (m.in ClearQuest).
W książce "What is Total Quality Control? The Japanese Way" Kaoru Ishikawa określa, że jakość jest dynamiczna tak jak zmienne są potrzeby, wymagania i oczekiwania klienta.

1981 - W publikacji "Information Engineering" James Martin i Clive Finkelstein wprowadzają pojęcie analizy CRUD (od angielskich słów Create, Retrieve, Update, Delete) jako metody analizowania projektu.

1982 - Gerald Weinberg w książce "Rethinking Systems Analysis and Design" opisuje iteratywne tworzenie i testowanie oprogramowania.

1982 - Powstaje niemiecka firma Software Quality Systems (SQS), która stanie się europejskim liderem w testowaniu oprogramowania.

1982 - W książce "Out of the crisis : Quality, Productivity and Competitive Position" William Edwards Deming zaproponował aby jakość była definiowana jako satysfakcja klienta.

1983 - Opublikowany zostaje standard IEEE 829 "Standard for Software Test Documentation". Definiuje on wzorce dla specyfikacji testowej oraz określa osiem etapów testowania oprogramowania.

1983 - Amerykański rząd publikuje "The Guideline for Lifecycle Validation, Verification, and Testing of Computer Software" (FIPS 101).

1983 - Książka "The Psychology of Human-Computer Interaction" autorstwa Stuarta K. Carda, Thomasa P. Morana i Allena Newella po raz pierwszy w tak kompleksowy sposób opisuje zagadnienia użyteczności.

 

1984 - W książce "An Information Systems Manifesto" James Martin opisał rozłożenie defektów w procesie wytwarzania, pokazując, że większość defektów (ponad 50%) spowodowanych jest przez niskiej jakości wymagania.

1984 - Pierwsza konferencja w całości dedykowana testowaniu - "International Conference and Exposition on Testing Computer Software".

1985 - Microsoft publikuje pierwszą wersję Excela. Arkusz kalkulacyjny stał się prawdopodobnie najpopularniejszym narzędziem testerskim.

1985 - Na rynku pojawiło się pierwsze narzędzie automatyzacji - Autotester, dla systemu pecetów (pod MS-DOS).
 
1985 - Amerykański Departament Obrony publikuje standard DOD-STD-2167, który opisuje między innymi wymagania na wytwarzanie systemów krytycznych oraz wprowadza formalizację testowania.
 
1986 - W artykule "Controlling Software Projects", opublikowanym w IEEE Software Engineering Journal, Paul E. Rook wprowadza Model V. Model pokazuje relacje między poszczególnymi fazami wytwarzania i testowania.
 
1986 - IEEE publikuje standard dla weryfikacji i walidacji (Standard for Software Verification and Validation Plans (IEEE Std 1012-1986)).
 

1987 - Została opublikowana praca "Software Reliability: Measurement, Prediction, Application" był to sygnał do tego by niezawodność stała się ważną częścią jakości oprogramowania.

1987 - Koszt niskiej jakości został opisany przez H. Jamesa Harringtona w jego książce "Poor Quality Costs". Książka opisywała podejście IBMa do raportowania kosztów będących następstwem niskiej jakości.

1987 - W prezentacji "Using Pattern Languages for Object-Oriented Programs" Kent Beck i Ward Cunningham zaproponowali adaptację konceptu języka wzorców do programowania zorientowanego obiektowo. Wzorce powinny prowadzić projektanta poprzez dostarczanie realizowalnych i możliwych do ponownego użycia rozwiązań do rozwiązywania powtarzających się problemów.

 

1988 - Rok 1988 w sławnej książce "Testing Computer Software" Cem Kaner po raz pierwszy użył pojęcia "testowanie eksploracyjne".

1988 - W artykule "The Growth of Software Testing" David Gelperin oraz William Hetzel opisali cztery modele testowania i ewolucję testowania.

1988 - Firma Qualtrak stworzyła pierwsze narzędzie do zarządzania defektami DDTS (ang. Distributed default tracking system), który dostępny był na systemie Unix.

1988 - Boehm w artykule "A Spiral Model of Software Development and Enhancement" wprowadza model spiralny jako zamiennik dla modelu kaskadowego.

1988 - Barton Miller wprowadził pojęcie "fuzz testing" do opisania użycia losowych danych do identyfikowania dziur bezpieczeństwa.

1989 - Powołano do życia brytyjską organizację Specialist Interest Group in Software Testing (SIGIST). Celem grupy było dzielenie się problemami, sukcesami i porażkami w testowaniu.

1989 - Powstała firma Mercury Interactive, która na rynek wprowadziła wiele narzędzi automatyzacji, między innmi LoadRunnera do testów wydajnościowych.

 

1990 - Boris Beizer udostępnił taksonomię (klasyfikację defektów) w drugiej edycji książki "Software Testing Techniques". W tej samej książce zaproponował określenie "paradoks pestycydów" do opisania sytuacji, w której czym więcej testujemy oprogramowanie tym bardziej staje się ono odporne na nasze testy.

1990 - W książce "The Machine That Changed the World" autorzy James P. Womack, Daniel Roos, i Daniel T. Jones opisali filozofię lean manufacturing.

1991 - Opublikowano międzynarodowy standard ISO 9126 opisujący aspekt jakości oprogramowania oraz charakterystyki jakości.

1991 - Opublikowano pierwszy raport CAST (Computer Aided Software Testing) autorstwa Dorothy Graham opisujący WSZYTSKIE narzędzia testerskie dostępne na rynku.

1991 - W książce "Rapid Application Development" James Martin opisał RAD jako nowy model wytwarzania oprogramowania zaprojektowany tak by szybciej tworzyć oprogramowanie wyższej jakości.

1992 - Pierwsza konferencja STAR (Software Testing Analysis & Review) odbyła się w Las Vegas.

1992 - Ivar Jacobson, Grady Booch oraz James Rumbaugh opisali strukturę procesową Rational Unified Process (RUP). Jest to podejście przyrostowe stworzony przez Rational Software.

1992 - Powstała pierwsza wersja Testing and Test Control Notation (TTCN). Stworzono specyfikację protokołów dla International Telecommunications Union.

1992 - Howard G. Cunningham wprowadził pojęcie długu technologicznego.

1993 - Pierwsza europejska konferencja EuroSTAR odbyła się w 1993 roku. Szefem programowym konferencji była Dorothy Graham.

1993 - Jeff Sutherland, John Scumniotales i Jeff McKenna stworzyli oprogramowanie w zespołach scrumowych w firmie Easel Corporation. Był to początek Scruma.

1993 - Daniel J. Mosley opisał metodę tablic decyzyjnych w "The Handbook of MIS Application Software Testing".

1993 - W prezentacji "The Politics of Testing" Paul Herzlich pokazał model W, próbujący uzupełnić i poprawić ograniczenia modelu V.

1993 - Opublikowano ankiety (kwestionariusze) SUMI (Software Usability Measurement Inventory).

1993 - W pracy "Classification Trees for Partition Testing" Matthias Grochtmann i Klaus Grimm opublikowali metodę drzewek klasyfikacji.

1994 - Książka "Usability Inspection Methods" pod redakcją Jakoba Nielsena i Roberta L. Macka była pierwszą kompleksową publikacją dotycząca użyteczności. Opisywała strategie, narzędzia, techniki i metody oceny użyteczności.

1994 - Dai Clegg z firmy Oracle opracował i opublikował technikę MoSCoW służącą do definiowania priorytetów.

1994 - Organizacja Standish Group rozpoczęła publikację "Chaos report", czyli raport zawierający analizę przyczyn powodzeń i niepowodzeń projektów informatycznych.

1995 - Martin Pol, Ruud Teunissen i Erik van Veenendaal opublikowali swoje podejście do zarządzania testami w formalnym testowaniu - TMap.
1995 - Konsorcjum DSDM publikuje Dynamic Systems Development Method (DSDM), iteracyjne i inkrementalne podejście do wytwarzania oprogramowania.
1995 - Mercury publikuje narzędzie do nagrywania i odtwarzania - Winrunner.

1996 - Pierwszy projekt został przeprowadzony przy pomocy Extreme Programming przez Kenta Becka, Rona Jeffriesa i Howard G. Cunninghama.
1996 - Testing Maturity Model (TMM) został tworzony w Illinois Institute of Technology.
1996 - James Bach zaproponował heurystykę dla testowania oprogramowania. Po zmianie i rozszerzeniu została zmieniona na Test Strategy Model.
1996 - W publikacji "The Combinatorial Design Approach to Automatic Test Generation" autorstwa authors Davida Cohena, Siddhartha Dalala, Jesse Pareliusa i Gardnera Pattona wprowadzono technikę testowania par.

1997 - Powstała pierwsza wersja UML (Unified Modeling Language) stworzona przez Jamesa Rumbaugha, Grady Boocha i Ivara Jacobsona w Rational Software.

 

1998 - Pierwsza europejska certyfikacja testerska - ISEB Software Testing Certification stworzona przez British Information Systems Examinations Board. Pierwszy kurs przygotowujący do egzaminu poprowadzili Dorothy Graham i Mark Fewster.
Powstał "The Standard for Software component testing" (BS 7925-2).


1998 - Powstała pierwsza wersja (1.0) narzędzia testowania wydajności Apache jMeter. Jest to narzędzia autorstwa Stefano Mazzocchi, udostępnione na licencji open - source.

1998 - Udostępniono Bugzillę. Była to pierwsza wersja narzędzia open - source do zarządzania defektami rozwijanego w ramach projektu w Mozilla.org.

1998 - W książce "The Inmates Are Running the Asylum" Alan Cooper opisał użycie personas. Jest to forma projektowania interfejsu bazująca na archetypach użytkownika.

 

1999 - Cem Kaner, James Bach, Brian Marick i Bret Pettichord rozpoczęli działania w ramach szkoły testowania Context-Driven bazującej na zasadzie, że 'The value of any practice depends on its context'.

1999 - Opublikowano książkę "Software Test Automation" autorstwa Marka Fewstera i Dorothy Graham, która omawia kwestie automatyzacji i jej strategie i taktyki.

1999 - Tim Koomen i Martin Pol opublikowali ich podejście do oceny i poprawiania procesu testowego "Test Process Improvement".
1999 - Mercury interactive wydaje QuickTest jako narzędzie do tworzenia i utrzymywania testów automatycznych dla SAP. Później zmienił nazwę na QuickTest Professional.
1999 - Magazyn "Better Software" ruszył z pierwszym numerem. Prezentował on publikacje dla profesjonalistów oprogramowania dbających o jakość.
1999 - Powstała kolejna testerska certyfikacja Certified Software Test Professional (CSTP).
1999 - Wydano TestFrame metodyke testowania (z silnym naciskiem na automatyzację) autorstwa Hansa Buwalda, Dennisa Jansena i Iris Pinkster.

 

2000 - Magazyn "Software Testing and Quality Engineering" opublikował artykuł "Session-Based Test Management" autorstwa Jonathana Bacha.

2000 - Pojawił się pierwszy numer magazynu Professional Tester.

2000 - W artykule "Continuous Integration" Martin Fowler opisał praktykę tworzenia oprogramowania z częstymi (w ciągu dnia) integracjami pracy zespołu programistycznego.

 

2001 - Opublikowano Manifest Agile i dwanaście zasad Agile Software.

2001 - James Bach, Cem Kaner i Bret Pettichord opublikowali książkę "Lessons Learned in Software Testing" zawierającą ich doświadczenia z testowania sterowanego kontekstem.

2001 - W artykule "Software as a Service: Strategic Backgrounder" zdefiniowano i zaprezentowano model SaaS (Software as a Service).

2001 - Opublikowano pierwszą wersję darmowego narzędzia OpenSTA do obciążania aplikacji sieciowych oraz testowania wydajności.

2001 - James Bach rozwinął swoje szkolenia z testowania eksploracyjnego w szkolenie Rapid Software Testing (RST). W 2003 roku dołączył do niego Michael Bolton.

2002 - Powstało ISTQB (International Software Testing Qualifications Board).

2002 - Opublikowano książkę "Test Driven Development: By Example" autorstwa Kenta Becka opisujące technikę tworzenia oprogramowania, w której test jest napisany przed kodem.

2002 - Wydano narzędzie IBM Rational Functional Tester (na początku jako RobotJ).

2002- W książce "How to Break Software: A Practical Guide to Testing" James Whittaker opisał 23 ataki na oprogramowanie.
2002 - Atlassian Software wydał JIRA 1.0.

2002 - Framework for Integrated Test (Fit), został napisany przez Warda Cunninghama. Jest to narzędzie open source do automatyzacji testów klienckich.

 

2003 - Bret Pettichord opublikował "Schools of Software Testing" i sklasyfikował idee testowania w pięć różnych szkół.
Opublikowano pierwszą część SPICE (Software Process Improvement and Capability Determination) czyli ISO/IEC 15504, który jest frameworkiem do oceny procesów.

2003 - W książce "Domain-Driven Design: Tackling Complexity in the Heart of Software" Eric Evans pokazał zestaw technik testowania dla złożonych projektów.

2003 - Powstało stowarzyszenie non-profit Association for Software Testing, w skład, którego wchodzili: Patrick J. Schroeder, James Patrick McGee, Cem Kaner, Andrew David Tinkham, Douglas Hoffman, Tim van Tongeren i Hung Quoc Nguyen

2003 - Na swoim blogu Brian Marick opublikował Agile Testing Quadrant. Kwadranty pokazują różne oblicza testowania w projektach zwinnych.

2003 - W artykule Cema Kanera "The Power of ''What If'' and Nine Ways to Fuel Your Imagination" autor omawia użycie scenariuszy w testowaniu. Scenariusz według Kanera to hipotetyczna historyjka pomocna w zrozumieniu złożonego problemu lub też systemu.

2004 - Powstała pierwsza wersja narzędzia do automatyzacji testów - Selenium. Twórcą aplikacji był Jason Huggins z ThoughtWorks.

2004 - Wystartował magazyn Software Test & Performance wydawany przez BZ Media. W międzyczasie zmienił nazwę na Software Test & Quality Assurance.

2004 - W artykule "Soap Opera Testing", opublikowanym w magazynie Better Software, Hans Buwalda wprowadził koncept testów opery mydlanej. Test jest scenariuszem bazującym na prawdziwym życiu, ale przesadzonym i skondensowanym w ograniczonej liczbie zdarzeń. Podejście to traktuje środowisko biznesowe jako punkt startowy do tworzenia testów.

2004 - Pierwsza wersja narzędzia do współpracy Confluence zostaje wydana przez australijską firmę Atlassian. Aplikacja to (w uproszczeniu) wiki służące do zbierania i zarządzania wiedzą.

2005 - Opublikowano Test Maturity Model Integration przez TMMi Foundation. Model służy do oceny i poprawiania procesu testowego.

2005 - Odbył się pierwszy London Exploratory Workshop in Testing rozpoczęty przez Jamesa Lyndsaya. Jest to warsztat testowania eksploracyjnego zbudowany z krótkich wystąpień, które są następnie dyskutowane.

2005 - Wydano SoapUI popularne narzędzie do testowania serwisów sieciowych.

2005 - Powstała i została opublikowana tzw. heurystyka zwiedzania FCC CUTS VIDS.

2006 - Odbyła się pierwsza konferencja CAST organizowana przez Association for Software Testing. Pierwszymi głównymi mówcami byli James Bach i Cem Kaner.

2007 - ...

cdn.

 

Wizualizacja historii testowania oprogramowania [kliknij, aby powiększyć].

 

 

Więcej informacji na temat historii testowania oprogramowania na stronach:

https://en.wikiversity.org/wiki/Software_testing/history_of_testing

 

 

SPRAWDŹ TAKŻE
Historia polskiego testowania oprogramowania 

 

 

 

Najbliższe terminy szkoleń

Partnerzy

Narzędzia testerskie