diff --git a/doc/Auto UI Testing.md b/doc/Auto UI Testing.md new file mode 100644 index 0000000..23b5b35 --- /dev/null +++ b/doc/Auto UI Testing.md @@ -0,0 +1,13 @@ +# Auto UI testing feladat leírása + +Az automata UI tesztelést a QF-Test nevű alkalmazással valósítottam meg,mert Java Swinget is tud tesztelni, illetve egyszerű a használata. + +Alább látható a tesztek lefutásának eredménye. Látszik, hogy talált hibát a rendszer. + +Tapasztalatok: Használata kényelmes az alkalmazásnak, bár pl a Gomb-nál nem lehet a tulajdonságokra keresni, csak pl. a Text propertyre. Ha pl. a borderre vagyunk kíváncsiak (hogy megnézzük, hogy egy pipe eltört-e pl.), akkor csak az image alapján kereshetünk. Ezt kényelmesen megtehetjük, ha az alkalmazásunk működik már (akár a pipe kép egyezését vizsgálhatjuk vagy akár csak néhány pixelét). Ebből viszont az következik, hogy ha az alkalmazásunk még gyerekcipőben jár, akkor nem látjuk még, hogy milyennek kéne kinéznie, és ekkor még tesztet sem tudunk így csinálni. + +Következtetésképp arra jutottam, hogy akkor érdemes ezt az ellenőrzés típust végezni, ha azt szeretnék vizsgálni, hogy már egy működő UI elem nem változik meg egyéb más funkciók megvalósítása esetén. De ekkor is valószínű, hogy változtatni kell a tesztjeinkem. + +Egy nem dinamikus, főleg fix adatokat tartalmazó alkalmazás esetén viszont jól működhet ez a tesztelési forma. + +![alt text](image.png) diff --git a/doc/image.png b/doc/image.png new file mode 100644 index 0000000..9cca81f Binary files /dev/null and b/doc/image.png differ diff --git a/qf-test/Auto_UI_Tests.qft b/qf-test/Auto_UI_Tests.qft new file mode 100644 index 0000000..e71a25f --- /dev/null +++ b/qf-test/Auto_UI_Tests.qft @@ -0,0 +1,727 @@ + + + +qfs.qft + + + +Nomadok + + +This node checks whether the SUT is already running. The result of this check will be stored in the variable isSUTRunning. The variable itself can contain true if SUT is already running or false if SUT is not running. This variable will be used in the following 'If' node. + + + +-classpath +C:\BME 6. félév\IET\iet-hf-2024-nomad-szabotorok\out\production\iet-hf-2024-nomad-szabotorok + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +UaRz-dBAv(*wpBQPT?37TAAA8GaLGA/Tsmxeg/0=B_UO9\j=3+3+}fs?%-UD5R(z[`CH1xJDi~+rcaXb** +`pqY(*56A`FMYP?*6vXt5H{?H@qxe%hqjn6h#xBFwGIwzLUj.6-P![\.Nd2BE#dZqSkN.#`f`QcjkZlQ +]Z"AOd@5h@uS)$|18M\=i@*"KQ]Vkk3NkJGCM;W8+dX7@yCP9iX4lHCAA + + + + + + + + + + + + + + + + + + + + + + + + +Vége a Játéknak! +Szerelők pontjai: 0 +Szabotőrök pontjai: 5 +A szabotőrök nyertek! + + + + + + + + + + + + + + + + + + +Vége a Játéknak! +Szerelők pontjai: 0 +Szabotőrök pontjai: 0 +Döntetlen + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +UaRzMfBAv(*wpBQPT?K]TAAA8GaLGA:$cjxei7cRkl?j:Up0?jZG$C1jDrkbtFU3B5`ek$O==Zb=x|sIJD +)_PLaf(TtO5qM?I64KW1BwlY]h]hihtpU,ILe:`uYphJjU0I9%YtQI$9S$'~dsocsDS,X;HCyi?!cK;m +\kxraJ]9!Q44f'}Yh/25vGB;7u2A~{^9?aJ;g85Gk5q.KC"St|d}^EqBDAA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +UaRz{hBAv(*wpBQPT?JlUAAA8GaLGAQuK;0m'fxVf_6|*8[dumaDmCn1thD\wy8Mf!|\fS']-H3maT**]= +DO'.;e**eJ;Kx9cXdhs"t5[Sk,pvIIZ/_H0tY.d4',k)C}%xY).s~QVRbjv2Mtd0Iwtn,xw/9T`RF7XL +0oYL%AUECfsE4DOfN[,h*Bwi\'p`PJ3k~udQSKttAMGoiK1t?$!?W^vCt5WQFAAA + + + +S0 + + + +UaRz'5BAv(*wpBQPT?37YAAA8GaLGAPBg\0mk9h7Y$?6bHpQY$yzN$o.);j=PGSL/"fzm-:N$W9ZVhl}]~ +a@0mQRB+T3*u/s-H{2UzuAM2+"74O0[t0:H2\do)(d;yTw=JxteE%tk_:h``bv^aB$S{AwOP{@*tUmmh +/`((W000cl\VonU.s?5SlB$QxdIAKC%yLo0CAjj+!MKyY?MtW@2G/hTcupLBoS?43E5!8rpIGBo)3KbB +$WAAu!R,FBrjQ*r\AFUku=KAA + + + +S1 + + + + + + + + + + +M0 has: nothing + + + + + + + + + +M0 has: nothing + + + + + + + + + +M0 has: nothing + + + + + + + + + +M0 has: pipe 3 + + + + + + + + + + + + + + + + + + + + + + + + + + +UaRz'5BAv(*wpBQPT?37YAAA8GaLGA4Wsm[UJPA,0mtO"lupOo8!jCs@QnFu~CT_"!{4*~z+O=giA{%VND +^hRA+KLcw^}EsAZx7UC)JF=Laegu#JUlvM14s1ZN#5$.049;-(cq4Ib\+'vR|qc8y{VtiL:3JV8.rS_v +4J1Ebuir"]5I7;UtrnJINzdP#iqV+''0K7fTZ9p")dXG2eQT|!DA+?/t!PIosDcwHw$wyWyu;$EEC?CA +2'xAqid2`SoqdiIL*sU+?(BAA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GUIControl +Window +Sivatagi Vízhálózat +Sivatagi Vízhálózat +javax.swing.JFrame + +javax.swing.JButton +Button +Játék indítása +Játék indítása +Sivatagi Vízhálózat +javax.swing.JButton + + +javax.swing.JComboBox +ComboBox +Hány kör legyen? +Hány kör legyen? +javax.swing.JComboBox + +javax.swing.plaf.metal.MetalComboBoxButton +Button +javax.swing.plaf.metal.MetalComboBoxButton +Button:ComboBoxButton + + + +javax.swing.JButton +Button +Játék indítása +Játék indítása +Hány szerelő legyen? +javax.swing.JButton + + +javax.swing.JComboBox +ComboBox +Choose an action: +Choose an action: +javax.swing.JComboBox + +javax.swing.plaf.metal.MetalComboBoxButton +Button +javax.swing.plaf.metal.MetalComboBoxButton +Button:ComboBoxButton + + + +javax.swing.JButton +Button +pipe 1 +pipe 1 +javax.swing.JButton + + +javax.swing.JButton +Button +pipe 2 +M1 +S1 +pipe 2 +javax.swing.JButton + + +javax.swing.JLabel +Label +S0 +S0 +javax.swing.JLabel + + +javax.swing.JLabel +Label +S1 +S1 +javax.swing.JLabel + + +javax.swing.JButton +Button +pipe 4 +pipe 4 +javax.swing.JButton + + +javax.swing.JButton +Button +javax.swing.JButton + + +javax.swing.JButton +Button +javax.swing.JButton + + +javax.swing.JLabel +Label +Choose an action: +Choose an action: +javax.swing.JLabel + + +javax.swing.JButton +Button +pipe 3 +pipe 3 +javax.swing.JButton + + +javax.swing.JTextArea +TextArea +Choose an action: +Choose an action: +javax.swing.JTextArea + + +javax.swing.JButton +Button +pipe 0 +pipe 0 +javax.swing.JButton + + +javax.swing.JLabel +Label +M1 +M1 +javax.swing.JLabel + + +javax.swing.JLabel +Label +M0 +S0 +M0 +javax.swing.JLabel + + +javax.swing.JLabel +Label +S0 +M0 +S1 +S0 +javax.swing.JLabel + + +javax.swing.JComboBox +ComboBox +Hány szabotőr legyen? +Hány szabotőr legyen? +javax.swing.JComboBox + +javax.swing.plaf.metal.MetalComboBoxButton +Button +javax.swing.plaf.metal.MetalComboBoxButton +Button:ComboBoxButton + + + +javax.swing.JComboBox +ComboBox +Hány szerelő legyen? +Hány szerelő legyen? +javax.swing.JComboBox + + +javax.swing.JLabel +Label +M0 +M3 +M1 +M0 +javax.swing.JLabel + + +javax.swing.JLabel +Label +M1 +M0 +M2 +M1 +javax.swing.JLabel + + +javax.swing.JLabel +Label +M2 +M1 +M2 +javax.swing.JLabel + + +javax.swing.JLabel +Label +M3 +M3 +M0 +javax.swing.JLabel + + +javax.swing.JLabel +Label +S0 +S3 +S1 +S0 +javax.swing.JLabel + + +javax.swing.JLabel +Label +S1 +S0 +S2 +S1 +javax.swing.JLabel + + +javax.swing.JLabel +Label +S2 +S1 +S2 +javax.swing.JLabel + + +javax.swing.JLabel +Label +S3 +S3 +S0 +javax.swing.JLabel + + +javax.swing.JTextArea +TextArea +javax.swing.JTextArea + + +javax.swing.JButton +Button +S0 +S0 +javax.swing.JButton + + +javax.swing.JButton +Button +M0 +M0 +javax.swing.JButton + + +javax.swing.JButton +Button +M1 +M1 +javax.swing.JButton + + +javax.swing.JLabel +Label +M1 +S0 +M1 +javax.swing.JLabel + + +javax.swing.JLayeredPane +Panel +javax.swing.JLayeredPane + + +javax.swing.JButton +Button +pipe 2 +S1 +S0 +pipe 2 +javax.swing.JButton + + +javax.swing.JButton +Button +M1 +M1 +javax.swing.JButton + + +javax.swing.JButton +Button +pipe 1 +pipe 1 +javax.swing.JButton + + +javax.swing.JButton +Button +S0 +S0 +javax.swing.JButton + + +javax.swing.JLabel +Label +S1 +M1 +S1 +javax.swing.JLabel + + +javax.swing.JLabel +Label +S1 +S0 +S1 +javax.swing.JLabel + + + + diff --git a/qf-test/Auto_UI_Tests.qft.bak b/qf-test/Auto_UI_Tests.qft.bak new file mode 100644 index 0000000..e8295be --- /dev/null +++ b/qf-test/Auto_UI_Tests.qft.bak @@ -0,0 +1,524 @@ + + + +qfs.qft + + + +Nomadok + + +This node checks whether the SUT is already running. The result of this check will be stored in the variable isSUTRunning. The variable itself can contain true if SUT is already running or false if SUT is not running. This variable will be used in the following 'If' node. + + + +-classpath +C:\BME 6. félév\IET\iet-hf-2024-nomad-szabotorok\out\production\iet-hf-2024-nomad-szabotorok + + + + + + + + + + + + + + + + + + + + + + + + +Vége a Játéknak! +Szerelők pontjai: 0 +Szabotőrök pontjai: 5 +A szabotőrök nyertek! + + + + + + + + + + + + + + + + + + +Vége a Játéknak! +Szerelők pontjai: 0 +Szabotőrök pontjai: 0 +Döntetlen + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +UaRzMfBAv(*wpBQPT?K]TAAA8GaLGA:$cjxei7cRkl?j:Up0?jZG$C1jDrkbtFU3B5`ek$O==Zb=x|sIJD +)_PLaf(TtO5qM?I64KW1BwlY]h]hihtpU,ILe:`uYphJjU0I9%YtQI$9S$'~dsocsDS,X;HCyi?!cK;m +\kxraJ]9!Q44f'}Yh/25vGB;7u2A~{^9?aJ;g85Gk5q.KC"St|d}^EqBDAA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +UaRz{hBAv(*wpBQPT?JlUAAA8GaLGAQuK;0m'fxVf_6|*8[dumaDmCn1thD\wy8Mf!|\fS']-H3maT**]= +DO'.;e**eJ;Kx9cXdhs"t5[Sk,pvIIZ/_H0tY.d4',k)C}%xY).s~QVRbjv2Mtd0Iwtn,xw/9T`RF7XL +0oYL%AUECfsE4DOfN[,h*Bwi\'p`PJ3k~udQSKttAMGoiK1t?$!?W^vCt5WQFAAA + + + +S0 + + + +UaRz'5BAv(*wpBQPT?37YAAA8GaLGAPBg\0mk9h7Y$?6bHpQY$yzN$o.);j=PGSL/"fzm-:N$W9ZVhl}]~ +a@0mQRB+T3*u/s-H{2UzuAM2+"74O0[t0:H2\do)(d;yTw=JxteE%tk_:h``bv^aB$S{AwOP{@*tUmmh +/`((W000cl\VonU.s?5SlB$QxdIAKC%yLo0CAjj+!MKyY?MtW@2G/hTcupLBoS?43E5!8rpIGBo)3KbB +$WAAu!R,FBrjQ*r\AFUku=KAA + + + +S1 + + + + + + + + + + +M0 has: nothing + + + + + + + + + +M0 has: nothing + + + + + + + + + +M0 has: nothing + + + + + + + + + +M0 has: pipe 3 + + + + + + + + + + + +GUIControl +Window +Sivatagi Vízhálózat +Sivatagi Vízhálózat +javax.swing.JFrame + +javax.swing.JButton +Button +Játék indítása +Játék indítása +Sivatagi Vízhálózat +javax.swing.JButton + + +javax.swing.JComboBox +ComboBox +Hány kör legyen? +Hány kör legyen? +javax.swing.JComboBox + +javax.swing.plaf.metal.MetalComboBoxButton +Button +javax.swing.plaf.metal.MetalComboBoxButton +Button:ComboBoxButton + + + +javax.swing.JButton +Button +Játék indítása +Játék indítása +Hány szerelő legyen? +javax.swing.JButton + + +javax.swing.JComboBox +ComboBox +Choose an action: +Choose an action: +javax.swing.JComboBox + +javax.swing.plaf.metal.MetalComboBoxButton +Button +javax.swing.plaf.metal.MetalComboBoxButton +Button:ComboBoxButton + + + +javax.swing.JButton +Button +pipe 1 +pipe 1 +javax.swing.JButton + + +javax.swing.JButton +Button +pipe 2 +M1 +S1 +pipe 2 +javax.swing.JButton + + +javax.swing.JLabel +Label +S0 +S0 +javax.swing.JLabel + + +javax.swing.JLabel +Label +S1 +S1 +javax.swing.JLabel + + +javax.swing.JButton +Button +pipe 4 +pipe 4 +javax.swing.JButton + + +javax.swing.JButton +Button +javax.swing.JButton + + +javax.swing.JButton +Button +javax.swing.JButton + + +javax.swing.JLabel +Label +Choose an action: +Choose an action: +javax.swing.JLabel + + +javax.swing.JButton +Button +pipe 3 +pipe 3 +javax.swing.JButton + + +javax.swing.JTextArea +TextArea +Choose an action: +Choose an action: +javax.swing.JTextArea + + +javax.swing.JButton +Button +pipe 0 +pipe 0 +javax.swing.JButton + + +javax.swing.JLabel +Label +M1 +M1 +javax.swing.JLabel + + +javax.swing.JLabel +Label +M0 +S0 +M0 +javax.swing.JLabel + + +javax.swing.JLabel +Label +S0 +M0 +S1 +S0 +javax.swing.JLabel + + +javax.swing.JComboBox +ComboBox +Hány szabotőr legyen? +Hány szabotőr legyen? +javax.swing.JComboBox + +javax.swing.plaf.metal.MetalComboBoxButton +Button +javax.swing.plaf.metal.MetalComboBoxButton +Button:ComboBoxButton + + + +javax.swing.JComboBox +ComboBox +Hány szerelő legyen? +Hány szerelő legyen? +javax.swing.JComboBox + + +javax.swing.JLabel +Label +M0 +M3 +M1 +M0 +javax.swing.JLabel + + +javax.swing.JLabel +Label +M1 +M0 +M2 +M1 +javax.swing.JLabel + + +javax.swing.JLabel +Label +M2 +M1 +M2 +javax.swing.JLabel + + +javax.swing.JLabel +Label +M3 +M3 +M0 +javax.swing.JLabel + + +javax.swing.JLabel +Label +S0 +S3 +S1 +S0 +javax.swing.JLabel + + +javax.swing.JLabel +Label +S1 +S0 +S2 +S1 +javax.swing.JLabel + + +javax.swing.JLabel +Label +S2 +S1 +S2 +javax.swing.JLabel + + +javax.swing.JLabel +Label +S3 +S3 +S0 +javax.swing.JLabel + + +javax.swing.JTextArea +TextArea +javax.swing.JTextArea + + + + diff --git a/qf-test/TestResult.pdf b/qf-test/TestResult.pdf new file mode 100644 index 0000000..2baf28f Binary files /dev/null and b/qf-test/TestResult.pdf differ diff --git a/qf-test/qftest.qpj b/qf-test/qftest.qpj new file mode 100644 index 0000000..e69de29 diff --git a/src/main/java/hu/bme/mit/iet/pipe_game/Main.java b/src/main/java/hu/bme/mit/iet/pipe_game/Main.java index 52fc24d..e0e5f87 100644 --- a/src/main/java/hu/bme/mit/iet/pipe_game/Main.java +++ b/src/main/java/hu/bme/mit/iet/pipe_game/Main.java @@ -2,10 +2,8 @@ public class Main { public static void main(String[] args) { - /** - * Létrehozzuk a GUIControl-t, amely a játék grafikus futtatásáért felelős. - * Ennek a Run függvénye futtatja a játékot(Azaz először a beállításokat, majd a játékot) - */ + // Létrehozzuk a GUIControl-t, amely a játék grafikus futtatásáért felelős. + // Ennek a Run függvénye futtatja a játékot(Azaz először a beállításokat, majd a játékot) GUIControl control = new GUIControl(); control.run(); }