Massadata-analyysijärjestelmä suoritin- ja muistinkäytölle
Iso-Junno, Ilari (2018-12-05)
Iso-Junno, Ilari
I. Iso-Junno
05.12.2018
© 2018 Ilari Iso-Junno. Tämä Kohde on tekijänoikeuden ja/tai lähioikeuksien suojaama. Voit käyttää Kohdetta käyttöösi sovellettavan tekijänoikeutta ja lähioikeuksia koskevan lainsäädännön sallimilla tavoilla. Muunlaista käyttöä varten tarvitset oikeudenhaltijoiden luvan.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:oulu-201812083253
https://urn.fi/URN:NBN:fi:oulu-201812083253
Tiivistelmä
Ohjelmistotestaus on avainasemassa laadukkaan ja luotettavan ohjelmiston kehityksessä. Noin puolet ohjelmistokehityksen ajasta ja kuluista menee testaukseen. Huolellinen testaus varmistaa ohjelman toiminnallisuuden, minkä ansiosta asiakas on tyytyväinen tuotteeseen.
Suorituskykytestauksella varmistetaan ohjelmiston toimivuus määriteltyjen vaatimusten mukaisesti. Tämä edellyttää ohjelmiston testaamista normaali- ja stressikuormituksen aikana. Kyseisissä testeissä suoritin- ja muistinkäyttötietojen seuranta paljastaa mahdollisia muistivuotoja, poikkeavaa käytöstä tai trendimuutoksia. Näiden löydösten avulla ohjelmiston toimintaa voidaan parantaa.
Testaus ja testitulosten analysointi on osaamista vaativaa työtä, jonka tehoa ja laatua voidaan parantaa testiautomaation avulla. Automaattinen analysointiskripti, massadatan monimuotoisuuden hyödyntäminen tai koneoppivan järjestelmän älykkyys voivat kukin tuottaa hyödyllisiä testausta edistäviä tuloksia. Testitulosten visualisointi helpottaa testaajaa nopeuttamalla niiden ymmärtämistä ja analysointia.
Massadatalla viitataan laajoihin datajoukkoihin, joiden tallennus ja analysointi vaativat erityisiä järjestelmiä. Massadatajärjestelmään keskitetyt testitulokset ovat tallessa kaikkien saatavilla, niiden välinen vertailu on mahdollista ja niiden analysointi jälkikäteen helpottuu. Massadatan osalta työssä tarkastellaan pääasiassa avoimen lähdekoodin Hadoop-ohjelmistoja.
Tässä työssä suunniteltiin monikäyttöinen massadata-analysointijärjestelmä osaksi testiautomaatiota, jolla testataan radioverkkojärjestelmään kuuluvaa suorituskykykriittistä laitetta. Kehitettävällä järjestelmällä analysoidaan testeihin liittyviä mittauksia ja parametreja, mikä helpottaa testaajien työtä. Työhön sisältyvän analysoitavan datan osuus rajattiin testattavan laitteen suoritin- ja muistinkäyttötietoihin, joihin lukeutuu laitteen lukuisten Linux-solmujen käyttöjärjestelmä- ja prosessitason mittaustiedot.
Työssä kehitettiin ja integroitiin testiautomaatioon suoritin- ja muistinkäyttötietojen kerääjä, joka tallentaa mittaustulokset HDFS-massadatatallennusjärjestelmään. Apache Spark-ohjelmiston ja Livy-palvelun soveltuvuus mittaustulosten analysointiin todettiin huonoksi. Prosessikohtaisille muistinkäyttötiedoille kehitettiin muistivuotoja havaitseva analysointiskripti, joka pohjautuu USS- ja ALLOC-mittaustuloksiin.
Testiautomaation kehitystiimi implementoi analysointijärjestelmän ja integroi sen analysointiskriptin kanssa osaksi testiautomaatiota. Tiimi kehitti myös visualisoinnin kerätyille suoritin- ja muistinkäyttötiedoille sekä analysointituloksille. Testaajilta saatu palaute testiautomaatioon lisätyistä ominaisuuksista oli positiivista ja sisälsi hyviä kehitysehdotuksia. Software testing plays a key role in developing reliable, functional software. Typically, about one half of overall software development time and expense is for testing. Careful testing ensures the program works as intended, which is essential for customer satisfaction with the product.
Software performance testing is a type of testing used to ensure that software functions according to specifications. This requires testing the software under both normal loads and stress loads. Tracking CPU and memory usage in the aforementioned tests can reveal potential memory leaks and unusual usage behavior or trends. This information can then be used to improve the program functionality.
Software testing and analysis is work that requires a high level of knowledge. Automation can both make this work more efficient and improve its quality. Automated testing scripts, big data and machine learning can all produce useful results that further the work of testing. Visualization of test results also improves the testing process by making the results easier to understand and analyze.
The term “big data” refers to data sets which are so large they require special software to store and analyze. Test results that are saved in a big data system can be accessed by multiple users, can be compared among themselves and can be more easily analyzed later on. With regards to big data this thesis mainly covers use of the open-source software Hadoop.
This project involved planning a multipurpose big data analysis system as part of an automated test system, which will be used to test performance critical devices in the radio wave communication network. This system’s intended use is to analyze the measured test results, thus reducing the workload for human testers. The data to be analyzed is limited to the CPU and memory usage data of the tested device, and includes operating system level data and process level data from the device’s numerous Linux nodes.
This project involved development and integration of a collector for CPU and memory usage data, which saves the measurement results in an HDFS big data database. It was found that Apache Spark software and Livy service were not suitable to analyze the results. An analysis script was developed to detect memory leaks on the process level using USS and ALLOC data.
The automated testing development team implemented the planned analysis system and integrated both it and the analysis script into the automated test system. The team also developed visualizations for the CPU and memory usage data and for the analysis script results related to those data. Feedback received from testers on the new features of the automated test system was positive, and included good suggestions for future improvements.
Suorituskykytestauksella varmistetaan ohjelmiston toimivuus määriteltyjen vaatimusten mukaisesti. Tämä edellyttää ohjelmiston testaamista normaali- ja stressikuormituksen aikana. Kyseisissä testeissä suoritin- ja muistinkäyttötietojen seuranta paljastaa mahdollisia muistivuotoja, poikkeavaa käytöstä tai trendimuutoksia. Näiden löydösten avulla ohjelmiston toimintaa voidaan parantaa.
Testaus ja testitulosten analysointi on osaamista vaativaa työtä, jonka tehoa ja laatua voidaan parantaa testiautomaation avulla. Automaattinen analysointiskripti, massadatan monimuotoisuuden hyödyntäminen tai koneoppivan järjestelmän älykkyys voivat kukin tuottaa hyödyllisiä testausta edistäviä tuloksia. Testitulosten visualisointi helpottaa testaajaa nopeuttamalla niiden ymmärtämistä ja analysointia.
Massadatalla viitataan laajoihin datajoukkoihin, joiden tallennus ja analysointi vaativat erityisiä järjestelmiä. Massadatajärjestelmään keskitetyt testitulokset ovat tallessa kaikkien saatavilla, niiden välinen vertailu on mahdollista ja niiden analysointi jälkikäteen helpottuu. Massadatan osalta työssä tarkastellaan pääasiassa avoimen lähdekoodin Hadoop-ohjelmistoja.
Tässä työssä suunniteltiin monikäyttöinen massadata-analysointijärjestelmä osaksi testiautomaatiota, jolla testataan radioverkkojärjestelmään kuuluvaa suorituskykykriittistä laitetta. Kehitettävällä järjestelmällä analysoidaan testeihin liittyviä mittauksia ja parametreja, mikä helpottaa testaajien työtä. Työhön sisältyvän analysoitavan datan osuus rajattiin testattavan laitteen suoritin- ja muistinkäyttötietoihin, joihin lukeutuu laitteen lukuisten Linux-solmujen käyttöjärjestelmä- ja prosessitason mittaustiedot.
Työssä kehitettiin ja integroitiin testiautomaatioon suoritin- ja muistinkäyttötietojen kerääjä, joka tallentaa mittaustulokset HDFS-massadatatallennusjärjestelmään. Apache Spark-ohjelmiston ja Livy-palvelun soveltuvuus mittaustulosten analysointiin todettiin huonoksi. Prosessikohtaisille muistinkäyttötiedoille kehitettiin muistivuotoja havaitseva analysointiskripti, joka pohjautuu USS- ja ALLOC-mittaustuloksiin.
Testiautomaation kehitystiimi implementoi analysointijärjestelmän ja integroi sen analysointiskriptin kanssa osaksi testiautomaatiota. Tiimi kehitti myös visualisoinnin kerätyille suoritin- ja muistinkäyttötiedoille sekä analysointituloksille. Testaajilta saatu palaute testiautomaatioon lisätyistä ominaisuuksista oli positiivista ja sisälsi hyviä kehitysehdotuksia.
Software performance testing is a type of testing used to ensure that software functions according to specifications. This requires testing the software under both normal loads and stress loads. Tracking CPU and memory usage in the aforementioned tests can reveal potential memory leaks and unusual usage behavior or trends. This information can then be used to improve the program functionality.
Software testing and analysis is work that requires a high level of knowledge. Automation can both make this work more efficient and improve its quality. Automated testing scripts, big data and machine learning can all produce useful results that further the work of testing. Visualization of test results also improves the testing process by making the results easier to understand and analyze.
The term “big data” refers to data sets which are so large they require special software to store and analyze. Test results that are saved in a big data system can be accessed by multiple users, can be compared among themselves and can be more easily analyzed later on. With regards to big data this thesis mainly covers use of the open-source software Hadoop.
This project involved planning a multipurpose big data analysis system as part of an automated test system, which will be used to test performance critical devices in the radio wave communication network. This system’s intended use is to analyze the measured test results, thus reducing the workload for human testers. The data to be analyzed is limited to the CPU and memory usage data of the tested device, and includes operating system level data and process level data from the device’s numerous Linux nodes.
This project involved development and integration of a collector for CPU and memory usage data, which saves the measurement results in an HDFS big data database. It was found that Apache Spark software and Livy service were not suitable to analyze the results. An analysis script was developed to detect memory leaks on the process level using USS and ALLOC data.
The automated testing development team implemented the planned analysis system and integrated both it and the analysis script into the automated test system. The team also developed visualizations for the CPU and memory usage data and for the analysis script results related to those data. Feedback received from testers on the new features of the automated test system was positive, and included good suggestions for future improvements.
Kokoelmat
- Avoin saatavuus [34164]