Integration testing of Web Mapping applications (including web mapping server) using Python

Video in TIB AV-Portal: Integration testing of Web Mapping applications (including web mapping server) using Python

Formal Metadata

Integration testing of Web Mapping applications (including web mapping server) using Python
Title of Series
Part Number
Number of Parts
CC Attribution 3.0 Germany:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Release Date

Content Metadata

Subject Area
When you are developing applications, you need to write tests. A unit test is a test written by the programmer to verify that small piece of code is doing what it is intended to do. The tests are intended for the use of the programmer. An integration test on the other hand is done to demonstrate that different pieces of the system work together. Integration tests cover whole applications, and they require much more effort to put together. The integration tests do a more convincing job of demonstrating the system works than a set of unit tests can. Unit tests can be great but they tightly couple your tests to your code, making it really fragile and anti Agile. We will show integration testing of web mapping applications using Python bindings to Selenium browser automation tool. We can test JavaScript application from Python environment, using standard unittest module. Since Python is very easy to be used and it's very universal language, it's easy to be learned by non-programming co-workers, who can automate application tests and help the developers with testing. Using integration tests in continuous integration development, enables us to be more agile, making sure that both parts - frontend and backend remain integrated even bigger refactoring occures. Part of testing is also background data services, with new project called WMSChecker. This is used in our Jenkins environment, so that system administrators can have overview about current status of running custom nad 3rd party services.
Presentation of a group Server (computing) Service (economics) Computer animation File format Texture mapping Statistical hypothesis testing Vulnerability (computing) World Wide Web Consortium
Statistical hypothesis testing Mapping Service (economics) Texture mapping Open source Software developer Information systems Open source Set (mathematics) Grass (card game) Open set Disk read-and-write head Data management Pi Process (computing) Computer animation Whiteboard Electronic meeting system Electric current
Statistical hypothesis testing Asynchronous Transfer Mode Meeting/Interview View (database) Electronic meeting system Synchronization Mathematical singularity Website Physical system
Statistical hypothesis testing Service (economics) Service (economics) Information Software developer Line (geometry) Statistical hypothesis testing Product (business) Product (business) Computer animation Software Thermodynamisches System Internet service provider Software Cuboid Information Metric system Thermal conductivity
Word Data management Computer animation Source code Projective plane Video game Quicksort Task (computing) Statistical hypothesis testing
State of matter Block (periodic table) Software developer Multiplication sign Statistical hypothesis testing Statistical hypothesis testing Software bug Computer animation Software Software Order (biology) Cuboid Figurate number Physical system
Statistical hypothesis testing Group action Software developer Connectivity (graph theory) Disintegration Dynamischer Test Source code Execution unit Black box Rule of inference Statistical hypothesis testing Performance appraisal Computer programming Energy level Lebesgue integration Software testing Aerodynamics Physical system Domain name Execution unit Sine Software developer Interface (computing) Statistical hypothesis testing Statistical hypothesis testing Type theory Thermodynamisches System Process (computing) Computer animation Iteration Text editor Energy level Cuboid
Execution unit Latent heat Functional (mathematics) Computer animation Execution unit Sheaf (mathematics) Energy level Lebesgue integration Unit testing Statistical hypothesis testing Social class
Statistical hypothesis testing Execution unit Functional (mathematics) Interface (computing) Connectivity (graph theory) Software developer Disintegration Execution unit Interactive television Distance Statistical hypothesis testing Statistical hypothesis testing Statistical hypothesis testing Type theory Thermodynamisches System Computer animation Uniform resource name Lebesgue integration Software testing Physical system
Execution unit Mapping Computer animation Software developer Execution unit Coma Berenices Software framework Game theory Cartesian coordinate system Statistical hypothesis testing Statistical hypothesis testing World Wide Web Consortium
Computer icon State of matter Multiplication sign Disintegration Physicalism Database Statistical hypothesis testing Statistical hypothesis testing Computer animation Revision control Cuboid Physical system Inverter (logic gate) Physical system
Functional (mathematics) Variety (linguistics) Code Software developer Multiplication sign Line (geometry) Mereology Food energy Perspective (visual) Statistical hypothesis testing Statistical hypothesis testing Statistical hypothesis testing Computer animation Single-precision floating-point format Computer programming Software framework Right angle Gamma function Physical system
Web page Correspondence (mathematics) Multiplication sign Execution unit Projective plane Web browser Computer font Statistical hypothesis testing Power (physics) Computer animation Software Entropie <Informationstheorie> Singuläres Integral Endliche Modelltheorie Table (information) Form (programming) Physical system
Goodness of fit Propagator Computer animation Sampling (statistics)
Statistical hypothesis testing Web page Metropolitan area network Dependent and independent variables Mapping Multiplication sign Software developer Open set Cartesian coordinate system Arm 2 (number) Element (mathematics) Malware Computer animation Personal digital assistant Formal grammar Website Window Exception handling
Statistical hypothesis testing Web page Frame problem Intel Regulärer Ausdruck <Textverarbeitung> Code Multiplication sign Maxima and minima Branch (computer science) Continuous integration Element (mathematics) Product (business) Statistical hypothesis testing Telecommunication Set (mathematics) Lebesgue integration MiniDisc Error message Video Genie Dean number Task (computing) Metropolitan area network Touchscreen Information View (database) Magneto-optical drive Branch (computer science) Parameter (computer programming) Line (geometry) Variable (mathematics) Cartesian coordinate system CAN bus Computer animation Basis <Mathematik> System on a chip output Summierbarkeit
Statistical hypothesis testing Code Multiplication sign Calculation Function (mathematics) Infinity Special unitary group Cartesian coordinate system Statistical hypothesis testing Set (mathematics) Video game console MiniDisc Summierbarkeit View (database) Building Server (computing) Interior (topology) Coma Berenices Menu (computing) Statistical hypothesis testing Statistical hypothesis testing Single-precision floating-point format Computer animation Multi-agent system Hill differential equation Resultant Wide area network
Statistical hypothesis testing Functional (mathematics) Existence Database Lebesgue integration Product (business) Product (business) Front and back ends
Statistical hypothesis testing Point (geometry) Touchscreen Statistics View (database) Software developer Digitizing Source code Bit Function (mathematics) Statistical hypothesis testing Statistical hypothesis testing Proof theory Mathematics Computer animation Semiconductor memory Order (biology) Right angle Quicksort Exception handling
Message passing Computer animation Dependent and independent variables Line (geometry) Element (mathematics) HTTP cookie Element (mathematics)
Information Texture mapping Software developer Execution unit Element (mathematics) Statistical hypothesis testing Statistical hypothesis testing Message passing Computer animation Computer programming Electronic meeting system Software Lebesgue integration HTTP cookie Physical system Relief World Wide Web Consortium
Point (geometry) Statistical hypothesis testing Functional (mathematics) Open set Parameter (computer programming) Product (business) Number Medical imaging Sign (mathematics) Goodness of fit Different (Kate Ryan album) Electronic meeting system Cuboid Energy level Physical system Overlay-Netz Texture mapping Mapping Projective plane Mathematical analysis Database Cartesian coordinate system Statistical hypothesis testing Graphical user interface Computer animation Vector space Right angle
Computer animation
so that it the hi my name my name is still
future sky and I would like to tell you something to both server application distinct using origin should set it also something about a weakness that services to what we can probably talk later about this because I have to shorten the presentation format just for the 1st topic I still hold you will enjoy as I said I'm not
and it generally speaking to
everything related to GAS of open source and maps and I belong to the pie WPS appointment in the processing services producing committee and it will continue so
and I also work for a company called clear under you met information systems for a so called test sets of property management and on yeah
each article might map sensory and something really cold a data-centric view on the data and to be around
the whole system also on the mobile phones of course of cell phones apparently we need to address somehow do testing problem sing problematic be for we
stopped let's make it clear and what we are going to talk about what is it that suffered distinct according to the kipedia its own investigation conduct dates to provide stakeholders with information about the quality of the product or service hundreds test this thing is done usually at by protesters what are they do nanotube writing the software itself they just try to help to get as far
better everybody's somehow understand that as they apply some metrics on the software and try to make sure that everything is in line with the requirements and that all the systems are working together of course but this is all they really do deafening box in this and sometimes 3 as a developers used to say they're creating new box of course to suffer be but classic distress was founded in depends on how the teams
organized in the task is usually not done some
task is usually not done when tests are not passing
this is the sort of relationship between the project manager is the corporate and source this is a real life we can understand other
that produces various feelings is but so that thing is serious topic we try to eliminate box in the system and disable shows basically that cost the relative costs 2 figures about in various stages of the software development that you should what should shook you hopefully is for the expensive to try to
fix the block in the software which is already freely you should not use the software on the states that means basically that if you find if you try to read if you try to fix a bug in order of these stages costs are by up to 25 times higher than it should talk to try to fix them in 1 of the 1st stages
so I would test certain teams important because they're are kind watching or having of 6 there are watching your back when you try to hack around the system short
history of self-adjusting and volatiles basically slowly moving from the like saving moral to prevention narratives distinct types there's a whole around which I actually don't understand by generally speaking there stopping tests basically this in the quality of the cold itself and our dynamic tests proving that the cold behave the way we want it to behave and those on how deep justice known the source code of the program white the white bollocks why books this thing up to black box the data data is basically no no idea what was going on there just by testing DDI for example there is generally speaking for recognized levels of this thing called human just think iteration distinct component interface thing and system things and they of course there this are frequently groups by where there editors offered in the development process or by the level of this specifically for the test domain levels during the development process our unit and integration or system we can also talk about rule liver and higher levels of software testing
Tokyo's what does the sergeant unit testing I believe everybody using here and
everybody is always you know remembering or keeping a repeating use our bright unit destined to righteousness to get yourself a stable and the units that's the refer to it as the today verify the functionality of specific section of the Colts usually on a functional level on Middleton Class level so I'm very very level integration
testing is any type of software testing that seeks to refine interfaces between between components and so for design integration testing and our tests of 1st to expose the defects in the interface and interaction interaction between various components and they're already written by distance while you this best of course written by software developers and system testing is and to and think that it does the whole components by the Colombian Burke's at printing versus stuff like this all to better but you need to
ensure that the whole system is functioning and that not only small part on functional and so this is the relationship in unit and a system for integration I would like to show
your introduce how we are organizing the development of that Batman application in clear and how do we tested now we have some
things to be is basically the front and the back and team and they use every every game uses a accustomed units there at the front and using incomes Pajares that the candidate use some PHP framework for of last newly and not so far
the we found among the oldest thing doesn't work anymore but 2 stars there exposed states and they they were never able to repeat actually must have physics and twice and you know sometimes we missed something can develop this box in the system so it didn't work and
also from time to time to time yeah as I said have somebody has changed to database data prior diner database so suffered invert just because of the date of a wrong and so it's just simply stopped working can't everybody was complaining OK was going to happen and what was happening right well and being that
the and so we decided to to go more into system system distinct right so what people write a coach will just for us but we heat energy topic problem it was like of developers because of it but it was developing and when it's time for writing tests and apparently to used to developers what's special kind of developers of variety system so what we doing that we
picked 1 of the manual distinct colleagues I have to mention it was a and completely person who never had never has written as a cold single line of code and uh any time before and it took us about 2 week true data somehow into the problem of how how to write a program and another week out till she started to write to system tests using Python and in the 3rd week she is really pretty Britain everything I have done some weeks before and so we made it developers they do not break the main functional it it anymore because of its really around the system that's with every comment just for part of it and then every hour we we test the whole obligation all functionalities enhanced so we can make sure that everything is in dynamic and everything works and what is even nicer from my perspective there's no single 1 of 2 everything works by so it is
not good we set up the size of our use spiking units disorder which is pretty common and sniffing correspondence of that page using mainly a CSS selectors and is chicken from that Parliament's power like datasets spans of tables and it's filling in forms and clicking the buttons and stuff like that yeah this is done actually by the provide of possible by the projects called city New Chinese was this allows you to to to connect to the browser kernel greatest cystic
1 more time and you're currently will be probably touching is pick 1 more time and the article moving from font of GS is a headless preserved to Firefox as a kind so when the system model and so
the whole static she's to manage of course at the beginning she was not so convinced noted that it
was a good idea about what's true 1 of the examples have 1 of the practical in sample we are approaching this is all but the
propagation and the 1st you need to do of course you need to
import some some stuff from last year is the most from and then you have to define so that the development of so called the driver which can be cruel or Firefox performed or whatever and then you need for example as a user usually they think build a case to the little application are dust something we set them as generated time to 90 seconds to be really sure that that is everything thing working and of course you need to define the window size and so that means that you can just of response at the site where every and you go to don't have to do is to URL you to test and then you wait for something for example for selector dead open letters has slowly once the page loaded we make sure that our purpose that everybody is there with me for example can see this disclaimer here represented by 2 D closet years what we do next many find it be have to find a disclaimer element locate the decree button which is of this 1 and weekly collect so given the button and click on it Our the disclaimers if it if it doesn't work and broke cable basically faceless search for this grammar 1 more time and there is an exception expected to be dry so when there is no expect exception we have a problem next we have to look into
that means the estimated identified and manual alignment these too quickly and we have to find local and then and click on the log button what do we
have here again we can find elements called looking for and yet make sure it's it's the end we have to and identify the user input profitable something not fail the input with some variables of course and click on the submit button and so on then we have to make sure that there is a long tour and which will tell us that something is happening so should be information for the models of for the user the desired age he gave basically and and 1 and it's going to be make sure that there's no element anymore and a page and so on but it'll just the beginning of the 1 pretty complex task and we call its so called simple test so this is this is this and furthermore we are running on every comment on our continuous integration appointments you can test composite drawings to just by clicking conforming to map of all longer but you just putting the coordinates and you can always save the screen short and for example compared it and 5 sums and nobody deserves that and this is always so so so this is how it looks for all the time from the test error support of you have fewer lines of code and CSS selectors OK you know the whole infrastructure is
set up lodging conservatism so telling and for branches like 4 for something because master branch out of 4 there reproduction and production and you can see in in Jenkins particulary how we are doing right now so the master doesn't work pretty well but it doesn't bother us that the integration of the production protection application seems to be at time and we have also we can see here to try and how out tests apart doing basically for the
time and this is the common plant output of successful test you can again see the Python code here what we are interested in is this all came and at the end of the course now you can basically just to
sit and watch how all your tests are passing and the results we have
also the product of of course that sometimes still need some manual testing about about 90 per cent of the function of the whole obligation discovered by those of the existence of a because and it's safe to say that
all the time and and sometimes fail to integration to start filling but be reordered know in advance that something is happening all yeah can't really already known as I said about some serious problems between the front-end and the back-end entered the database and the data in advance the all still facing
some use and they would like to work on over all possible it is 1 of the defunct engineers doesn't behave very well it's like very lol sometimes they're are like memories it gives you an exception you don't know why it's is a little bit problem about that also developers are complaining coupled tests right fish therefore falling down and always it's always statistics order problem on the test right from the developer's point of view but then you get into it you get in the cold and proof a look you you did this change and as well and the test proof simply that that you do the wrong think and digits that you broke something so from the from of broader view was that source tests are going to draw from the developer's point of view this sort of working with the terrible broken again now and next problem is still Python an exceptional walk which is not suitable for has you know just Our PHP developers so we have to we have to make nite output looking little bit places and the last problem of mentioned was ingested in which isn't the as we would like to and we'll probably hear about to more tool for folks to come the so this is
open a backtrace through like and I ran some tests it is failing and what you
can see here me as applied per as you're message element is no longer attached to the to the dome and like I could probably go to switches line 169 and check for sampling there but this is really not a message you can show to the front end of over but so
this is this is something that just
a developer would like to see the message what is failing so we are working to go home do
now realize just units that relief you want to have this whole system are running right the system tests were integration but it sometimes even more easily and it's to write it and it gives you sometimes information is very easy to implement and even if you actually don't have any program was at hand in your team and every everybody sexually had had been used to having them around because while the they'll
over the number of the boxes and a whole system significantly and of course Python is a great tool for for vector mapping application testing you know it's and you would probably not consider 1st sign there is a present number 2 is a habit history what does his John happily it means but also for reasons you for since a self organized any questions we do but and available but and how do you deal with has stated the fixed database with special data instead because you you may moving around the and selecting features that good point have a specific especially delays of its testing data which try to cover some how the whole that problematic so to say and now we are at introducing new levels of users because every user after all he looks and see something different different functional think so a this is what we are going to not only the data can change can be different but also the users and the analysis of simply you have to know is that the the best is if you if you current them also you have a test database testing project basically where you can just all the function these and also that you test already a like I applications which are in production and then you can test that is just the just the main functionality right that it's wrong some of as its answer questions walking I was asked to watch a newcomer to now think about this the have you found good ways to test the complex visual features like the extra map itself all the the overlay you show that for example then can big someone here this is a matter of pride
yes have you found for example good ways you do the they are taking their on the on test this is the graphical user interface here everywhere and to reason that I'm drawing McBride so demand we don't test and because it was tested by Open last but it well actually if you look at the notice of of what is that they were created as I said you can make a screenshot of this is actually the way how openness they make a screenshot and compared EMD 5 some image so that would be that would be doing but we simply relying on parameters that it docile to supposed to do this is all I can say to it and we just really rely the remaining functionally which is like
switching camps and got a timetable and stuff like that this is perfectly OK for us more questions the thank you be