7

Mamy tutaj dość dużo programów RPG i przeprowadzamy wiele zautomatyzowanych testów, ale nie jesteśmy jeszcze zbyt dobrzy w łączeniu tych dwóch. Czy istnieją dobre sposoby przeprowadzania automatycznego testowania programów RPG lub innych programów ILE?Zautomatyzowane testowanie w językach RPG (lub innych językach ILE)

Jestem świadomy projektu o nazwie RPGUnit, ale to jest jego ostatnia aktualizacja w 2007 roku. Jednak wygląda na to, że nadal jest używany, ponieważ RPG Next Gen obecnie zajmuje się włączeniem go.

Co z nimi masz? Czy jest coś jeszcze, czego mi brakuje, jak niektóre świetne narzędzia Google'a, których nie udało się znaleźć?

Jestem zainteresowany testowaniem jednostkowym, a także testowaniem integracyjnym kompletnych projektów. Wszystko, co integruje się z narzędziami takimi jak jenkins jest mile widziane. Jeśli dotyczy to Rational Developer lub System i Navigator firmy IBM, to też jest w porządku.

Jesteśmy w początkowej fazie tworzenia nowych planów testowania dla naszego procesu rozwoju RPG, i nie chcę tego, od samego początku idę w złym kierunku.

+2

Prawdopodobnie większym pytaniem jest ... czy masz _architecture_ na testowanie jednostkowe? Wydaje się, że język ten aktywnie zachęca do pisania programów w sposób utrudniający dobre enkapsulowanie (tj. - programy zawierające wszystko, od dostępu do bazy danych, aż po wydruk ekranu, w jednym pliku). –

+0

@ X-Zero, jeśli zdecydujesz się na to, możesz mieć sepera – WarrenT

+0

@ X-zero ILE Moduled może zapewnić hermetyzację, nawet w różnych językach, wszystkie powiązane w jeden program – WarrenT

Odpowiedz

4

Prawdopodobnie już wiesz, jak szeroki może być temat "testowanie". IBM ma produkt o nazwie Rational Function Tester (nie używałem go). http://www-01.ibm.com/software/awdtools/tester/functional/ Sam używam RPGUnit. Nie, nie został ostatnio zaktualizowany, ale nadal posiada wszystkie elementy potrzebne do testowania podprocedur w taki sam sposób, jak testowanie metod Java.

Szczerze mówiąc, to łatwe. Najtrudniejszą częścią jest stworzenie testowej bazy danych i utrzymywanie jej na tyle aktualnej, aby była reprezentatywna dla produkcyjnej bazy danych. Rodin ma trochę narzędzi bazodanowych, ale nie mam dla nich budżetu, więc rzucam własną ręką mniej więcej ręcznie. Używam wielu instrukcji SQL w programie CL, aby wyodrębnić dane produkcyjne, aby zachować integralność referencyjną. Następnie używam trochę więcej SQL, aby dodać wyjątkowe przypadki testowe - te relacje, które nie są obecne w danych produkcyjnych, ale muszą zostać przetestowane. Następnie wykonuję pełną kopię testowej bazy danych jako punktu odniesienia. Następnie uruchamiam moje przypadki testowe, które aktualizują testową bazę danych. Napisałem domowe narzędzie CMPPFM, które pozwoli mi porównać referencyjną bazę danych z obecnie zmodyfikowaną bazą danych testowych. Spowoduje to wyświetlenie zmian, ale nadal wymaga dużego nakładu pracy ręcznej, aby sprawdzić porównania, aby upewnić się, że właściwe wiersze mają odpowiednie aktualizacje. Nie posunąłem się jeszcze do tego, by zautomatyzować to jeszcze. Jednym wielkim zastrzeżeniem jest to, że istnieją pewne kolumny, których nie obchodzi, takie jak znacznik czasu zmiany.

+0

Dzięki za dotychczasowy wgląd. Więc RPGUnit jest użyteczny, to dobra część do usłyszenia. Z jego listy funkcji produkt Functional Tester nie ma żadnej funkcjonalności RPG ani ILE, ma tylko "inne części" do organizowania testów (nie sądzę, że kupimy coś dla tej części). – kratenko

+0

ponieważ jest to dobra odpowiedź i nie wygląda na to, że dostanę w tej sprawie coś więcej, równie dobrze mogę to zaakceptować ... – kratenko

4

Wybraliśmy się z RPGUNIT i uznaliśmy, że jest to dobra baza do pracy, ale w końcu rozszerzyliśmy ją, by powiązać nasz system zarządzania zmianami i sposób, w jaki pracujemy. Napisałem o rzeczach, które próbowaliśmy tutaj: http://www.littlebluemonkey.com/blog/my-rpg-unit-test-journey

+0

Dziękujemy za umożliwienie nam wzięcia udziału w Twojej podróży. Wygląda na to, że ci się udało! Będzie to pomocne, gdy zdecydujemy się poświęcić czas na robienie prawdziwych testów RPG. – kratenko

Powiązane problemy