 Selamat pagi, semua. Kita dari GavTech. Hari ini, kita akan berkongsi tentang eksperimen yang kita sekarang membuat. Ia disebabkan membuat pembinaan GDS. Jadi, mari kita memperkenalkan diri kita. Jadi, berdua-dua kita adalah pembinaan di GDS Hive. GDS berkongsi untuk pembinaan digital. Sebelum saya mula memperkenalkan pembinaan kita, saya ingin memberitahu apa yang berlaku dengan pembinaan ini, sehingga ia berkongsi untuk pembinaan Hive Agile Testing. Pembinaan ini di dalam sekarang, ia disebabkan GDS Hive. Pembinaan ini sebenarnya membuat pembinaan ini supaya kita dapat memperkenalkan dan memperkenalkan pembinaan untuk pembinaan melalui hidup projek kita. Jadi, dari lepas ini, kita dapat melihat bahawa ada pembinaan gila dan blu. Jadi, setiap pembinaan sebenarnya berkongsi untuk pembinaan, seperti pembinaan fungsi, pembinaan sekuriti dan pembinaan load. Jadi, apakah kita dapatkan pembinaan ini untuk eksperimen ini? Kita cuba melihat banyak pembinaan online Facebook, Google, dan Amazon. Mereka sebenarnya mempunyai pembinaan sendiri untuk menggunakan pembinaan kualiti. Jadi, sekarang saya akan menunjukkan pembinaan yang pertama dari pembinaan. Jadi, ia nampak seperti itu. Kita gunakan beberapa semua pembinaan yang kita dapat dalam pembinaan yang digunakan oleh pembinaan lain untuk projek mereka. Dan kita dapat pembinaan random, Mac mini, laptop, dan desktop yang tidak digunakan. Kemudian kita akan memulai pembinaan pembinaan atau pembinaan dari pembinaan. Kita tidak memulai pembinaan di seluruh pembinaan, tapi saya bermakna, ia memulai pembinaan kerana semua pembinaan itu sangat menarik. Tetapi, saya hanya meletakkan pekerjaan. Saya tidak akan memulai, semuanya, selama 3 bulan. Jadi, ini pembinaan pembinaan yang kita sekarang menggunakan. Saya akan menunjukkan ini supaya kita dapat menunjukkan segala-galanya bagaimana kita memiliki segalanya. Saya akan memulai pembinaan, pertahanan, dan perang. Kita memiliki 2 Mac mini, 2 desktop, dan banyak harbis. Dan satu sinoniasis, dan banyak pembinaan. Dan hardware servo untuk memulai VM supaya kita dapat mempunyai mempunyai, supaya mereka tidak mempercaya bahawa ia tidak akan mempunyai mempunyai, apabila kita memulai pembinaan. Saya akan menunjukkan ini 3 kali untuk menjelaskan ini dengan baik. Saya akan menunjukkan segala-galanya. Jadi, kita memiliki semua pembinaan. Saya akan menunjukkan harbis USB dan memulai pembinaan untuk setiap pembinaan. Dan setiap pembinaan sebenarnya digunakan dengan pembinaan USB. Jadi, pembinaan ini akan menjelaskan segala-galanya perang supaya kita dapat memulai segala-galanya perang. Saya akan menunjukkan ini 3 kali sebab ia sangat membuatkan. Dan kemudian konfigurasi software untuk sekarang adalah kita menggunakan hal ini disebabkan pembinaan Rapsul yang telah dibuat beberapa kali lalu. Ini adalah pembinaan robot APM dan Selenium. Jadi, kita memiliki semua pembinaan ini untuk membawa semua pembinaan parallel web dan aplikasi untuk semua pembinaan yang digunakan di network. Dan kita juga menggunakan CICD2 untuk sebenarnya membantu memulai semua pembinaan seperti apabila kita memulai. Dan juga, kemudian semua pembinaan di dalam pembinaan single. Jadi, mari kita mulakan jalan kita dan bagaimana kita sebenarnya datang mengenai pembinaan disability. Jadi, pada awal kita sebenarnya mempunyai pembinaan yang sangat mudah dengan 3 pembinaan Android dan 1 iPhone. Dan setiap pembinaan ini juga dengan pembinaan robot dan APM. Kemudian kita mula meminta beberapa pertanyaan. Kerana kita tidak boleh berhubung pada Apple untuk segalanya. Jadi, kita memutuskan untuk menjelaskan OS lain seperti Fedora dan Windows. Tetapi, Windows memberikan masalah lain yang bermaksud pembinaan biasa dan pembinaan biasa. Jadi, kita memutuskan untuk menggunakan Fedora. Jadi, pertama, kita memiliki Fedora dan kita memplikasi kemungkinan yang kita boleh menggunakan segalanya di Fedora. Setelah itu, kita menghargai masukkan kemungkinan. Jadi, kita memiliki masin virtual sepanjang golong-golong dan sebagainya, seperti rambut dan desktop dan kemungkinan yang kita boleh liat. Kemudian dengan instillation, kita memutuskan bahawa sepanjang golong-golong ini semasa proses transor dapat dilompat, Jadi kami mempunyai senarai Dan tentu saja anda perlukan router yang kuat Just in case Sistem otopek sebenarnya gagal Kemudian masalah yang berlaku Kami ada lebih banyak devices Jadi dengan lebih banyak devices, kami perlukan lebih banyak waris Jadi, bagaimanapun, ada sebuah kabel micro-USB Dan setiap kabel micro-USB sebenarnya datang ke kualiti Satu-satunya mereka tidak memperbaiki kekuatan yang berharga Satu-satunya kabel kabel berharga Kerana kabel berharga tidak memperbaiki kekuatan yang berharga Selepas itu, kami mempunyai segalanya Jadi kami beli banyak kabel Dengan sebuah kabel yang sama Jadi kami tahu bahawa jika ia salah, ia adalah tempat ini Jadi kami mempunyai tiga kabel micro-USB, micro-USB dan lightning Sekarang, saya akan menjelaskan ini lagi Jadi bagaimana kami berakhir seperti ini? Kenapa tidak kami hanya beli banyak kabel Dan berhubung dengan sebuah kabel Dan berhubung dengan sebuah kabel Itu harus bekerja, bukan? Ya, jadi ini adalah bahan-bahan yang sebenarnya berlaku Yang mencari ini untuk menjadi seperti ini Jadi pertama, kami ingin menambahkan lebih banyak kabel Sebelumnya, saya menjadikan hanya 4 kabel, bukan? Jadi kami berkata, ok, mari kita menambahkan lebih banyak kabel Dan melihat apa yang akan berlaku Jadi, seperti kami menambahkan lebih banyak kabel, kami merenangkan kabel Sudah tentu, laptop telah mempunyai lebih banyak kabel Jadi kami mencari laptop Tapi bahan-bahan untuk memperkenalkan bahawa beberapa kabel tidak dapat memperkenalkan dengan baik Apabila kami mencari 4 atau 5 kabel Mungkin satu atau dua kabel akan gagal Bukan sebab kabel kita tidak memperkenalkan Bukan sebab kita tidak dapat mencari cukup kuat dari masin Jadi kami mempunyai kabel USB-hubs Tapi dengan itu, kami mencari kabel OEM yang tidak berhubung Untuk menyelamatkan duit Tapi setelah 3-4 hari, mereka semua mencari diri Semuanya berhubung, semuanya berhenti kerja Jadi kami berkata, mari kita mencari duit Kemudian kami menikmati link github di sini Ada sebuah grup di Amerika yang mencari banyak USB-hubs Dan mencari sebuah kabel yang berhubung Dan dapat mencari mereka Jadi perkara kedua yang berlaku Ia beberapa kedengaran daripada pukul ini Sebelum kita memulangkan kuat, ada sebuah kabel yang mencari kuat Jadi apabila kita mempunyai kabel yang mencari kabel Ini seperti 80 dolar Jadi ini untuk mencari semua kabel kita daripada Mencari kabel yang berlaku Kemudian kedua yang berlaku adalah itu Sebelum saya beritahu Jadi walaupun ia tidak mencari kuat Kita percaya ia masih tidak cukup untuk mencari semua kabel Jadi kita mempunyai bagaimana ia berlaku seperti ini Jadi kita cuba mencari semua kabel yang berlaku Jadi kita cuba 4 kabel, 5 kabel, 6 kabel Dan apabila saya katakan dengan 4, 5, 6 Ia tidak bermakna kabel yang sama Ia cuba dengan kabel yang berlaku, kabel yang berlaku Dan kita percaya bahawa beberapa kabel yang lebih awal Mereka akan mencari lebih banyak kuat Dan jika anda mencari kabel yang lebih banyak Jadi anda perlu mencari kuat yang sama seperti Mereka tidak mencari kuat tidak terlalu banyak Dan mencari semua kabel Jadi kita sebenarnya mencari kabel yang berlaku Dengan mempunyai kabel yang berlaku seperti USB Jadi anda boleh mencari semua kabel yang berlaku Jadi bagaimana ia berlaku? Jadi dengan 3 kabel yang berlaku Ini mempunyai kabel yang berlaku Yang berlaku dengan kabel yang berlaku Dan 3 kabel yang berlaku Jadi anda hanya perlu mencari semua kabel yang berlaku Untuk mencari kabel yang berlaku Dan dalam kabel yang berlaku Dengan mempunyai kabel yang berlaku Anda akan mengerti bahawa Anda akan mencari bahawa Mereka berlaku dengan kabel yang berlaku Jadi pada akhirnya, tidak akan ada kuat yang berlaku Kerana setiap kabel yang berlaku Boleh berlaku dengan kuat yang berlaku Untuk sekurang-kurang 4 kabel Kemudian kemudian kami telah memiliki kabel Kerana kita perlu memutuskan kabel yang lebih berlaku Selepas menerima kabel yang berlaku, ia berlaku seperti itu Selepas berlaku, sekarang ia berlaku lebih baik Jadi saya boleh mengajar lagi Jadi kabel yang berlaku Ia semua kuat yang berlaku Kita ada kabel yang berlaku dengan kabel yang berlaku Dan saya sebenarnya mempercayai kabel yang berlaku Dan kami berlaku dengan kabel yang berlaku Untuk kita tahu bagaimana menjelaskan kabel yang berlaku Jadi kabel yang berlaku adalah kuat yang berlaku Dengan kabel USB Kemudian kabel yang berlaku adalah kabel yang berlaku Dengan kabel mobile Dan kabel yang berlaku dengan kabel 2 Mac mini Dan kabel di sini hanya untuk kembali Kerana seperti anda lihat, tidak ada kabel di sini Dan kami hanya membesar kabel dengan kabel di sini Dan ini pada kabel yang berlaku dan kita juga ada iphone yang menghubungkan untuk mak minis kerana hanya mak minis dapat mengenali iphone dan setelah itu, kita berharap bahawa ia tidak berubah sehingga setelah itu masih menjaga selama tiga bulan setelah itu, kita sebenarnya membuat software open source untuk menjaga semua ini jadi sekarang saya akan berjumpa dengan Zeyang saya akan menjelaskan bagaimana untuk menghubungkan software ini bagus, ya saya akan berjumpa dengan software semuanya ada software bagaimana ia berjumpa? jadi kita menggunakan software open source 100% untuk menghargainya untuk menggabungkan bahan-bahan dan juga untuk menghubungkan bahan-bahan sendiri jadi ini sebabnya hanya yang memiliki gini dan pembelaan kami dapat menjelaskan di mana-mana dan saya akan mencuba pasangan sehingga untuk menghubungkan aktiviti ini dapat mengubah dan menggunakan bahan-bahan untuk menghancurkan dan menghargainya untuk menggabungkan bahan-bahan tapi untuk menggunakan bahan-bahan jadi software ini sebenarnya menghancurkan dan menghancurkan bahan-bahan jadi bagaimana saya mencuba? jadi kita mencari dan menghubungkan bahan-bahan dan yang lainnya Dan berita-berita ada di sisi penjualan. Yang seperti ada di BNCS. Mereka tahu apa yang ada di BNCS. Semua yang di-linex, semuanya hanya perang. Dan hanya memuatkan mereka dengan komentar yang tidak di-gekalkan. So, software yang pertama di-side adalah SPRA. Ayah ini hanya menghubungi jalan yang di-linex dengan portak HDP. In our case, we use AKDP with web softwares. Then the next piece of software is actually called SCR-CTY, so Spring Copy for short form. Spring Copy is an utility on GitHub, it allows you to expose your ADB, using ADB to capture screenshots and take user input from the keyboard and mouse actions to control the phone. So, this is the summary of how you can get it to work. So, this is, this is what shows our HAX framework, what you can compose of. So, very reusable industry standard components that a lot of mobile testers are using. If you are using Java or Serenium, just use Java, so you need that first. Then, followed by using your Python PIP to install mobile framework and supporting libraries for mobile test automation. After that, use Node to get APM installed. And then, if you are doing web operation, you need your Chrome or your Chrome driver. Followed by Android SDK build tools. And if you are using a specific version of Android, Android 8 or 9, then you need to get those versions of the SDK installed. If you have Windows, just need to get richly passed build tools because it's required for APM, then s-code for Mac. And string copy, as I mentioned earlier, it can be installed using Google or it's the better ways to install it from source. So, the latest specifics. So, as far as possible, it is highly reasonable. It has the sense that anytime we need a recreate environment, we can just go in, get a blank PM or blank machine and recreate it within an hour or less. So, how we do that? So, we base, we take our setup from all to basic. We both setup the similar boat distribution of flavor, such as what I'm hoping to mention, Fedora or Chibos and Poon 2, as well. So, just need to install a few packages. I will skip the... So, this side doesn't look like the basic thing such as your development SDK. But you need USB utils. On top of all those mentioned, I'm sure you're going to run your mobile devices as root. So, you need to change the device's power condition so that a standard user with given access in the CIC environment will be able to run access of mobile devices through USB. Then, as I mentioned, as shown in the screen shot, you can install your X11, Star, SPRA, string copy. Impact impact is a co-back, so you need that as well. And for all the different bug processes we need to reach a leader's labor just go to our website to see all the details in source code. So, every is available then. You can take a look and try it out yourself. So, this project we really want to support the community that's why we are here tonight. All the source code is freely available. So, just check out this thing. Just search our GALTEC SGD GALTEC SGD GALTEC GAS Open Source Policy and our computer is there as well. And, some experimental stuff just go to young link. So, what we do I want to give you a demo and we have something prepared for you right now. I'll set it to go like that. I'll keep running. We've triggered a build and so that nobody going online access everything is being live to the user and ready my desktop code. They are going to just get it set up. My Chrome like crash. Eh, where's the Chrome ah? Oh, they are accidentally press hide. Eh, where did you go? Where did you go ah? It's just full screen. Full screen ah? No way. It just suddenly disappeared. No, not this one. Eh, it just suddenly disappeared. That's why it was just there. No, I don't want to reopen everything. Okay. Eh! Eh, the thing just start. Suddenly the Chrome the Chrome die. Alright, so this is the XPRA console. So this is the shape of the system client but everything is available through the web. So ah and the user just needs to do is go to the right URL and they can connect to the mobile device directly. And you can see right now this is the screen capture of the mobile device and ah it's running on the real test CIC platform. So this is running on Xiaomi A1. And you notice that every single device actually runs at a different pace. So ah, so ah, let me trigger the view and show you what it's like. So basically when you run through every software, everything is just a port number. And ah, it's just running from the box config. So when we run from our CIC platform what happens is we have scripts in the back end to connect to mobile device and synchronize the window and all the and all the ADB commands. So why this is good is because say we need to maintain this on the device. So all you need to do is go to device, your software update, plug device back in our back end script will just pick up the ADB device and just connect screen back online. So this actually helps us to reduce sustainability. Because these are real devices and real devices have physical issues like cables and all that. So this helps us if you have a large set up of say 15, 20, 30 devices it's really difficult to troubleshoot in our experience. Difficult to troubleshoot these issues. So since it is completed I'll try to show you. Each individual tab is actually a mobile device. As you can see. So why it takes a while to test set up is because we need to run a robot framework and robot framework will then pick up our own pattern script or pick up all the devices that are attached to the machine or based on the video ID. To specify the desired capabilities to run your test. And from there pattern script does one thing it just captures the UID sense the relevant ADB commands to APM. So as you can see the test is running on 3 devices. This is a Galaxy S4 so it will take a longer time to get the results back. To all those things that I mentioned you need to write a script that will check all the individual processes that are running to check whether the device is still in the test mode or not. You won't know actually when the test end. So only after each of the item commands that is on the robot framework command that is sent whether the process ends then at the very end then can you queue the APM server and then retrieve the report for the robot test automation. The benefit of running in parallel is one test takes about 2 minutes 2-3 minutes depending on the speed on the phone and when you do it in 8 or 10 devices it still takes the same amount of time it won't take longer. So that really gives you dividends in terms of the time taken to run your test. So we are going to run a demo on the SLA One Map app and what it did just now is just to do a basic map search. So the test is completed you can see that the build log is available in our CICD pipeline then everything is available to the developer to troubleshoot and we have the report in the artifact format like that. So every single device sticked up by the framework will be labeled and from there we can see where the error occurred on a particular robot device. So for example there is a problem searching on this map and the element appear so we get that error screenshot so this is by default robot framework feature with APM so you get this and from there of course you can do your own analysis but this has passed so there is no error and as if someone know robot framework everything is just keyword driven so this is how easy it is to run a test so we go back to our slides just info since we are the sponsor for the friendly sponsor for the talk so where we are at today so HEDS so we are doing this not just for the fun of doing it just to prove something we are here to actually build this capability for our government as you know if you are a tester you know that your time and effort and energy is a limited resource there is only so many testers you can have in that project and we want to encourage government agencies to test early so that you can just wait at the end and if you are a robot tester you know that the mobile device landscape changes every single month every 6 months and the popular devices today may not be the popular devices tomorrow so we are also helping agencies to keep track and ask us what are the most widely used devices so we are helping them to get a testing on more of these devices and we don't waste the effort so we want to share resource of more devices so having a device farm actually makes a lot of sense so let's say you got development time 6 months then you can do a test and enjoy development phase so you can share the devices and from there you can be better from there and of course what we just show you today is just a snapshot of where we are today for security testing for performance testing and overall to improve the quality of these services that we deliver to government agencies so yeah so that's about it for our presentation by Cupfab tonight so if you have any questions feel free to reach out to me and we are happy to engage with you all in the community and also I can mention that we are also very much interested just come talk to us thank you very much any questions you may have most curious how long was the whole process from when you started to reaching another level of maturity you have now how long did it take you so I'll let you know of a secret and that is this project we started XCOM Works so we did not get any approval or funding for this project so what we did, we just started very small we had a few quality engineers that were thinking out loud think out of the box how can we make testing easier so that was really the fundamental question and we see that there are barriers to getting into this space so we tried to tackle it from a very simple low cost and some of these like utilizing open source and all that so we built this thing really every single future or every single fix to the issues that we had was done in very small stages there are only recently that we think we are confident enough that there is very potential and we went on to build it in GDS, we created a squad so we created a squad to get this thing rolling and then we started to pitch this to our draft text and get feedback so it's really I would say the last 6 months we really started taking this as a more full time campaign we talked about that you're using the mic we need to connect the iPhone 7 to running on Linux machines or on GDS so the final thing is this is a rare experience so the test centre actually works on at least connected device actually work on Linux for the iPod Touch but somehow after the iPhone, the large screen iPhone so those devices actually couldn't work on Linux so something Apple did there to prevent that from running so this is an industry and we checked with other people who had by building this system STF why do you have to reinvent the wheels? so the OpenSTF is a so called cumulative software package if i'm thinking it will get started in a way why we did not update the approach because we already had something going and we want to build things from 10 minimum so we believe that we keep things simple then it's robust and we understand every single line of code that goes inside so if there's something change in Android SDK we know where the line needs to be changed no questions from the bikes i'm just curious if you guys want to build your own device farm instead of using the existing providers because it has been around for some time that providers so the main reason why we are looking at OpenDeviceFarm is to first of all we had and we thought of just to answer our own questions so where device farm at certain capabilities it may not be we may not need them and we also want to take small steps so who knows maybe 6 years 6 months down the road any more questions? thank you