Name: | Description: | Size: | Format: | |
---|---|---|---|---|
1.86 MB | Adobe PDF |
Authors
Advisor(s)
Abstract(s)
In this thesis it is proposed a distributed software testing environment, that is able to
test a wide variety of applications, such as a user space processes, kernel space processes,
web applications and others. The testing environment is supported by an API of probes,
where each probe has a specific test task according to its purpose. The base API can be
extended to fulfil new testing requirements. This environment can be applied to general
software testing, programming contests and as a support for programming classes as the
Mooshak automatic judging environment. The essential differences between both these
environments is where the software testing is performed. Unlike Mooshak, the proposed
test environment can use client computers to do the actual test. This reduces the overhead
on the server dramatically, which is especially useful when there are many test
submissions simultaneously. These are the cases of classroom environments, lab environments
or programming contests. Another option is to have a set of testing computers, or
slaves, ready to test user code. However this way more hardware is required. The only
requirements for a computer to be a slave, part of the testing environment, is that is
has installed a java client application that communicates with the master computer also
addressed here as the main server. On the main server a portal allows users to access this
testing environment. This master computer is also responsible to distribute the testing
workload, according to the choosen strategy, sending to each slave the executable and
testing probes, which includes the matching pairs of inputs and expected outputs. After
the slaves had performed the tests, they generate a report with information on the tests,
and send it back to the master, being available to the users on the portal. To support simultaneous
clients the portal is thread based, being launched a new thread to serve each
new client connection. Communication between all computers in the test environment,
is done using the BSD sockets API.
Description
Dissertação de mestrado, Engenharia Electrónica e Telecomunicações, Faculdade de Ciências e Tecnologia, Universidade do Algarve, 2016
Keywords
Teste de programas automático Ambiente distribuído Programação orientada a objetos Aplicações Web Java