2010-05-13 6 views
5

Chcielibyśmy stworzyć proste testy automatyczne, które będą tworzone i utrzymywane przez testerów. W tej chwili mamy testera, który może kodować w dowolnym języku, ale w przyszłości możemy chcieć, aby każdy tester z ograniczoną znajomością programowania mógł dodawać lub modyfikować testy.Jaki jest dobry język programowania dla testerów, którzy nie są świetnymi programistami?

Jaki jest dobry język programowania dla testerów, którzy nie są świetnymi programistami lub programistami?

Ktoś zasugerował LUA, ale zajrzałem do LUA i może być bardziej skomplikowany niż inny język.

Najlepiej, aby język był interpretowany i nie był kompilowany. Powiedz mi co myślisz.

Aktualizacja: C i C++ są pod maską. Nikt nie aspiruje do bycia programistą ... to może być coś, nad czym mogliby potencjalnie pracować, jeśli potrafią sobie z tym poradzić.

Aktualizacja 2: Jestem inżynierem oprogramowania, który obecnie jest testerem. Mam bardzo dobrą wiedzę na temat całego cyklu życia ... w tym tworzenie kodu, więc dla mnie mogłem pracować z dowolnym językiem, ale staram się myśleć o innych testerach, którzy nie są tak dobrze zorientowani w programowaniu jak ja.

Aktualizacja 3: Język będzie musiał mieć możliwość łatwego nawiązywania połączeń z kodem C++.

+2

--------> Python! – Nix

+3

Z pewnością zależy to od języka używanego w testowanym systemie? –

+1

Testy powinny być napisane przez wielkich programistów. Jakość ponad ilość. –

Odpowiedz

4

Zawsze polecam Python.

Ludzie zawsze myślą, że jestem szalony, ale jest to najprostszy i najbardziej elastyczny sposób na pokazanie ludzi. I zawsze możesz zaprojektować jakiś rodzaj "testowej" struktury i wystawiać je tylko na bardzo mały podzbiór.

I zawsze można odwołać się do nich:

alt text http://images.barnesandnoble.com/images/16900000/16904769.JPG

+0

+1 dla Pythona, -1 dla wszystkiego "dla manekinów" – Earlz

+0

Nienawidzę książek, ludzi, którzy je czytają, ale uwielbiam ich wizerunek. ;) Większość innych "nerdowych" książek ma dość kiepskie okładki. – Nix

+0

Zgadzam się, a jeśli naprawdę jesteś manekinem, łatwo to zrozumieć. –

1

Zależy trochę o tym, co chcesz, ale za moje pieniądze Ruby jest chyba najbardziej zrozumiały język wokół.

Również, jeśli pracujesz z materiałami sieciowymi, to Watir zapewnia wiele funkcji testowania właśnie tam.

+0

... i wiele frameworków testowych. Na przykład. Ogórek (http://cukes.info). – nathanvda

+0

Nie zgadzam się z oświadczeniem "najbardziej zrozumiałym językiem". Szczerze mówiąc, zawsze odkryłem, że pętle Ruby są niezręczne, a użycie interpunkcji w nazwach metod jest również wątpliwe. –

+0

Sądząc po twoim przedstawicielu SO jesteś całkiem programistą, Matthieu M. Rzeczy oczywiste i/lub wątpliwe dla ciebie mogą nie być oczywiste dla nie programisty lub kogoś z bardzo ograniczonym doświadczeniem programistycznym. – glenatron

5

Nie może nawet trzeba języka w zależności od tego, co testują można użyć narzędzi do modelowania test jak CubicTest: http://cubictest.seleniumhq.org/

Gorąco polecam to sprawdzić, jeśli robisz Web Applications.

Nasz zespół QA odniósł z tym duży sukces.

przeciwnym razie polecam język dziedzinowy nad General Purpose Język w domenie problemu. DSL może faktycznie być podzbiorem GPL (na przykład Rake for Ruby), więc starannie google.

Jeśli nie można znaleźć istniejący DSL następnie:

  • Tworzenie DSL dla testerów korzystających Ruby lub Scheme.Te dwa języki są najłatwiejsze do stworzenia języków specyficznych dla domeny.

  • Python Jeśli wszystko inne zawiedzie, a oni potrzebują GPL niż Python jest zdecydowanie najprostszym językiem do nauczenia IMHO.

EDYCJA - W oparciu o zaktualizowane wymagania, Python może być najlepiej dopasowany. Zauważyłem, że bardzo łatwo jest wywołać C lub C++ z pytaniami typu Python. Jednak jestem pewien, że Ruby ma coś równie dobrego.

1

Jeśli masz ambicję stać się programistą, proponuję użyć języka testowanego systemu.

Doświadczenie uczyni Cię lepszym programistą, a wiedza może tylko sprawić, że będziesz lepszym testerem.

+0

dobrzy programiści prawie nie są dobrymi testerami – Earlz

+0

dlatego właśnie mamy inżynierów oprogramowania –

+0

prawdziwych inżynierów oprogramowania, a nie informatyków, którzy twierdzą, że są inżynierami oprogramowania. –

0

Myślę, że lepszym pytaniem może być to, co planujesz zrobić z tworzonymi programami. Zrobiłem Java, html, css, php, mysql, vb, C#, etc, itp. Z nich wszystkich fundementals pozostają takie same. Zawsze masz ten sam typ logiki z języka na język. JEŚLI instrukcje ELSE, dla pętli itp. Jednak jeśli nie planujesz tworzenia programów ładujących się, to pójdziesz na coś, co by tego nie zrobiło.

Persoanlly Java jest trudna, ale pozwala na dużą przenośność. Nie poprzestawaj na tym, co najłatwiejsze, bo możesz nie być w stanie z nim zrobić w przyszłości.

EDIT *

jeśli nadal jesteś zainteresowany, Java ma możliwość wykonywania połączeń do C++, ale nie jest to akcja bez problemów. Link ten link sprawdza połączenia, ale może być nieco zbytnio zaangażowany, jeśli masz tylko nadzieję na programowanie wprowadzające.

+0

Java jest zbyt trudna, aby nie-programista zaczął się angażować. Nie do końca sam język, ale ustawienie go to wielki ból ... upewniając się, że masz właściwy JRE, JDK itd ... większość ludzi nie potrafi nawet rozróżnić, co jest czym. Chcę, żeby tester mógł powiedzieć: pobierać, instalować, pisać, uruchamiać, robić ... nie musisz się martwić o głupie wersje JRE i całe to gówno. –

+0

P.S. Uwielbiam Javę i używam jej do wewnętrznego oprogramowania, ale zdecydowanie nie spełnia potrzeb tutaj. –

1

Python jest bardzo prostym i przydatnym językiem do zrozumienia. Niektórzy nawet porównują go do pisania pseudokodu. Jest również dostępny z własnym unit testing framework.

EDYCJA: Jest również wyposażony w C API.

2

Myślę, że zanim właściwie wybiorimy język, powinniśmy jeszcze dokładniej zdefiniować to, czego szukacie.

  • Śmieci zebrane, ponieważ nie chcemy, aby ludzie rozumieli zarządzanie pamięcią !!
  • Dobry ilość modułów/bibliotek wokół, tak aby nie wyważać otwartych drzwi
  • Korzystnie wymyślanie już istniejących (i sprawdzonych) ram unit-testów
  • dobrej dokumentacji dla modułów/bibliotek
  • Korzystnie skryptowych język, ponieważ testy muszą zostać zmodyfikowane/run szybko
  • Łatwa interakcji z C/C++, choć deweloperzy będą musieli zapewnia interfejs

I, być może najważniejsze:

  • jasne i składniowe "angielski-like", tak, że będzie to (co najmniej) czytelny non-tech osób

opiera się na tej liście, polecam Python.

  • Być może język programowania (który osiągnął masę krytyczną) jest najbliższy tradycyjnym wyrażeniom języka angielskiego/algorytmu. Jest to z pewnością jedna z tych o najmniejszych interpunkcyjnych/dziwacznych symbolach, które zrzucają nieprogramistów.
  • Natychmiast pojawia się tak wiele modułów, że jest mało prawdopodobne, że wkrótce będziesz musiał sięgnąć po więcej ... zawierający moduł unittest
  • documentation jest naprawdę dobre, ogólnie zilustrowany przykładami
  • jest to dość prosty interfejs go z C
  • można nawet uruchamiać skrypty Pythona z Java z wykorzystaniem JPython;)

mamy in- oprogramowanie domowe dla naszego non regressi na testach. Mimo że został zaprogramowany w Javie (prawdopodobnie dla części GUI i wymogu przenośności Windows/Unix), Python został wybrany jako język używany w samych testach bez regresji.

Używana jest głównie przez naszych pracowników ds. Kontroli jakości, a nawet początkujący zazwyczaj łatwo się do niej dostosowują, nawet jeśli nie mają żadnego tła programistycznego.

Uwaga: Nie mam żadnego praktycznego doświadczenia z LUA, więc nie mogę wybrać między Python i LUA. Jednak używając zarówno Pythona, jak i Ruby, muszę powiedzieć, że znalazłem Pythona o wiele bardziej czytelnego (konstrukcja pętli/interpunkcja). Tylko pamiętaj, aby nie odbierać Perla;)

+0

Masz tutaj kilka bardzo dobrych punktów. 1. Nie mogę zmusić testerów do martwienia się o bzdury w pamięci. Całą pamięć należy zatroszczyć się o testera. 2) Duża liczba modułów jest niezbędna do wbudowania, powiedzmy, że muszą wyodrębnić niektóre pliki z pliku zip i umieścić je na pulpicie jako pierwszy krok, wtedy to będzie łatwiejsze lub nie będzie działać. 3) język skryptowy jest koniecznością, 4) platformy testów jednostkowych ... nie obchodzi ich to, prawdopodobnie nie będą z nich korzystać. 5) Łatwa interakcja z C/C++ jest koniecznością –

+0

Na szczęście zarówno Python, jak i Ruby posiadają solidną bibliotekę i obsługują natywnie różne pliki kodujące, kompresujące, ... Python nawet wymyśla bibliotekę sqlite i oczywiście tam Django do administrowania nim, etc :) –

0

Ok, jak rozumiem pytanie, to jest naprawdę, jak mogę pozwolić na nieautomatyczne pisanie testów automatycznych dla aplikacji napisanej w języku C++? Dlatego w tym kontekście polecam przyjrzeć się Fit i FitNesse.

Fit jest zasadniczo oparty tabeli F R AMY do I ntegration T Esting. Chodzi o to, że podłączasz urządzenia do kodu, aby je przetestować, a te urządzenia są następnie kontrolowane na różne sposoby, używając tylko tabel lub w przypadku prostego języka Wiki FitNesse, który tworzy tabele pod maską.

Zaletą jest to, że w ogóle nie ma żadnego języka programowania.Muszą tylko wiedzieć, jakie urządzenia zostały przez nich odsłonięte i czy ich użycie jest prawidłowe.

Wadą tego jest to, że początkowo może być trudne mapowanie urządzeń potrzebnych/potrzebnych do testów. Zasadniczo jest to również więcej czynności konserwacyjnych niż użycie platformy testowej do testów jednostkowych, w której testy są po prostu kodowane.

+0

Nigdy nie używałem FitNesse z C++, ale natknąłem się na to trochę jak. Jest dość stary, więc nie mogę ręczyć za aktualną dokładność, ale może to być przynajmniej dobry punkt wyjścia do konfiguracji. http://accu.org/index.php/journals/305 – mockobject

Powiązane problemy