72 resultados para Software testing
Resumo:
Today's business environment has become increasingly unexpected and fast changing because of the global competition. This new environment requires the companies to organize their control differently, e.g. by logistic process thinking. Logistic process thinking in software engineering applies the principles of production process to immaterial products. Processes must be optimized, so that every phase adds value to the customer, and the lead times can be cut shorter to meet the new customer requirements. The purpose of this thesis is to examine and optimize the testing processes of software engineering concentrating on module testing, functional testing and their interface. The concept of logistic process thinking is introduced through production process, value added model and process management. Also theory of testing based on literature is presented, concentrating on module testing and functional testing. The testing processes of the Case Company are presented together with the project models in which they are implemented. The real life practices in module testing and functional testing and their interface are examined through interviews. These practices are analyzed against the processes and the testing theory, through which ideas for optimizing the testing process are introduced. The project world of the Case Company is also introduced together with two example testing projects in different life cycle phases. The examples give a view of how much effort of the project is put in different types of testing.
Resumo:
BlueGiga Technologies on uusi Bluetooth -teknologiaa soveltava pk-yritys. Yrityksen tuotekehitysprosessia täydentämään tarvittiin testausprosessi. Testausprosessin luominen oli haastavaa, koska Bluetooth -teknologia on uutta ja yritys on vielä nuori. Lisäksi se integroi kovo- ja ohjelmistokomponentteja tuotteissaan. Testaus aloitettiin evaluoimalla standardinmukaista tapaa dokumentoida testit. Tämän jälkeen tutkittiin BlueGigan ohjelmistokehitysprosessin suhdetta olemassa oleviin ohjelmistokehitysprosesseihin. Samanaikaisesti perehdyttiin Bluetooth -kvalifikaation testaukselle asettamiin vaatimuksiin. Tämän seurauksena TTCN:ää kokeiltiin helppolukuisen testitapauksen määrittelyssä. Käyttötapauksiin perustuvan testauksen sopivuutta Wireless Remote Access Platform:in (WRAP) testaamiseen arvioitiin kokeilemalla sitä Man-to-Machine -käyttötapauksen testaamisessa. Yllämainittujen tehtävien aikana kerätyn tiedon ja hankittujen kokemusten pohjalta laadittiin testausprosessi, joka kattaa yksikkö-, integraatio- ja järjestelmätason testauksen. Painopiste on järjestelmätason testauksessa. Prosessi määrittelee myös vastuuhenkilön tai -henkilöt eri testaustasoille.
Resumo:
Terrestrial Trunked Radio (TETRA) on moderni digitaalinen matkapuhelinjärjestelmän standardi, joka on suunniteltu täyttämään erityisesti viranomaisten vaativat tarpeet turvallisuuden ja luotettavuuden suhteen. Ohjelmiston testaus on tärkeä osa sen laadun takaamiseksi. Testaus on jaettu useisiin vaiheisiin ja se kattaa koko ohjelmiston elinkaaren: ohjelmiston kehittelystä alkaen asiakkaalle lähetettyyn valmiiseen tuotteeseen saakka. Toiminnallisuustestauksen suorittaa joko ohjelmiston suunnittelijat tai erillinen testausryhmä käyttäen Nokia TETRA-järjestelmän testauslaboratoriota. Testauksen tarkoituksena on varmistaa, että ohjelmisto, sen aliohjelmat ja ominaisuudet täyttävät niille annetut toiminnalliset ja laadulliset vaatimukset. Tämä diplomityö antaa yleiskuvan toiminnallisuustestausprosessista Nokia TETRA järjestelmän laboratoriossa. Se tarjoaa esimerkkitestitapauksen avulla kokonaiskuvan siitä, kuinka toiminnallisuustestausprosessi suoritetaan alusta loppuun.
Resumo:
Tässä työssä on esitetty sen ohjelmiston kehittämisen prosessi, joka on tarkoitettu annettavien palveluiden valvottavaksi käyttäen prototyyppimallia. Raportti sisältää vaatimusten, kohteisiin suunnatun analyysin ja suunnittelun, realisointiprosessien kuvauksen ja prototyypin testauksen. Ohjelmiston käyttöala – antavien palveluiden valvonta. Vaatimukset sovellukselle analysoitiin ohjelmistomarkkinoiden perusteella sekä ohjelmiston engineeringin periaatteiden mukaisesti. Ohjelmiston prototyyppi on realisoitu käyttäen asiakas-/palvelinhybridimallia sekä ralaatiokantaa. Kehitetty ohjelmisto on tarkoitettu venäläisille tietokonekerhoille, jotka erikoistuvat pelipalvelinten antamiseen.
Resumo:
WCDMA tukiasema (Node B) on osa UMTS-järjestelmän radioverkkoa. Node B on tärkeä verkkoelementti, jonka tarkoituksena on yhdistää mobiilikäyttäjät verkkoon. Telecom –ohjelmisto (TCOM SW) on vastuussa suuresta osasta Node B:n toiminnallisuutta. TCOM SW:n testaukseen käytetään paljon resursseja, jotta ohjelmiston oikeasta toiminnasta ja laadusta voidaan varmistua. System component testing on testausvaihe, jossa järjestelmän (Node B) osa (system component, tässä diplomityössä TCOM SW) testataan ennen sen integroimista muuhun järjestelmään. Tähän tarvitaan testityökalu ja testitapausten toteutus. Node B TTCN Tester (testeri) on työkalu, jota käytetään Node B:n ohjelmiston testauksessa. Testitapaukset toteutetaan TTCN-testinotaatiota käyttäen ja testataan testerin avulla. TCOM SW:n system component –testausvaihetta varten testeriin lisättiin uudet rajapinnat, joiden avulla voidaan simuloita Node B:n ATM-ohjelmistoa sekä WPA- ja WTR-yksiköitä. Tässä diplomityössä toteuttiin TTCN testitapaukset uusille rajapinnoille. Testitapaukset tekivät TCOM SW system component –testausvaiheen riippumattomaksi Node B:n ATM-ohjelmistosta sekä WPA- ja WTR-yksiköistä. Lisäksi TCOM SW:n toiminnan testaus näissä rajapinnoissa voidaan tästä lähtien tehdä automaattisesti. Testitapauksien toiminta varmistettiin testeriä käyttäen. Tulokset olivat hyviä, uudet testitapaukset ja TTCN rajapinnat toimivat oikein lisäten testauksen tehokkuutta.
Resumo:
Tässä työssä tutkitaan ohjelmistoarkkitehtuurisuunnitteluominaisuuksien vaikutusta erään client-server –arkkitehtuuriin perustuvan mobiilipalvelusovelluksen suunnittelu- ja toteutusaikaan. Kyseinen tutkimus perustuu reaalielämän projektiin, jonka kvalitatiivinen analyysi paljasti arkkitehtuurikompponenttien välisten kytkentöjen merkittävästi vaikuttavan projektin työmäärään. Työn päätavoite oli kvantitatiivisesti tutkia yllä mainitun havainnon oikeellisuus. Tavoitteen saavuttamiseksi suunniteltiin ohjelmistoarkkitehtuurisuunnittelun mittaristo kuvaamaan kyseisen järjestelmän alijärjestelmien arkkitehtuuria ja luotiin kaksi suunniteltua mittaristoa käyttävää, työmäärää (komponentin suunnittelu-, toteutus- ja testausaikojen summa) arvioivaa mallia, joista toinen on lineaarinen ja toinen epälineaarinen. Näiden mallien kertoimet sovitettiin optimoimalla niiden arvot epälineaarista gloobaalioptimointimenetelmää, differentiaalievoluutioalgoritmia, käyttäen, niin että mallien antamat arvot vastasivat parhaiten mitattua työmäärää sekä kaikilla ominaisuuksilla eli attribuuteilla että vain osalla niistä (yksi jätettiin vuorotellen pois). Kun arkkitehtuurikompenttien väliset kytkennät jätettiin malleista pois, mitattujen ja arvoitujen työmäärien välinen ero (ilmaistuna virheenä) kasvoi eräässä tapauksessa 367 % entisestä tarkoittaen sitä, että näin muodostettu malli vastasi toteutusaikoja huonosti annetulla ainestolla. Tämä oli suurin havaitu virhe kaikkien poisjätettyjen ominaisuuksien kesken. Saadun tuloksen perusteella päätettiin, että kyseisen järjestelmän toteutusajat ovat vahvasti riippuvaisia kytkentöjen määrästä, ja näin ollen kytkentöjen määrä oli mitä todennäköisemmin kaikista tärkein työmäärään vaikuttava tekijä tutkitun järjestelmän arkkitehtuurisuunnittelussa.
Resumo:
Simulaattorit ovat yksinkertaistettuja malleja tietyistä järjestelmän osioista. Niitä käytetään mallintamaan testattavan osion ympärillä olevien muiden osioiden ulkoista toimintaa, jotta testattavalle osiolle saadaan oikeanlainen toimintaympäristö aikaiseksi. Tilakoneita käytetään mallintamaan ohjelmistojen tai niiden osien toimintaa. Sanomaohjatuissa tilakoneissa tilojen vaihdot perustuvat saapuviin sanomiin. Tässä työssä esitellään erään ohjelmiston alijärjestelmän testaamisessa käytettävä arkkitehtuuri, joka perustuu suurelta osin simulaattoreiden käyttöön muiden alijärjestelmien mallintamisessa. Testattava ohjelmisto koostuu enimmäkseen tilakoneista, jotka vaihtavat keskenään sanomia ja ohjaavat näin toistensa tilasiirtymiä. Työn testausympäristö on suunniteltu juuri tämänkaltaisen ohjelmiston testaamiseen. Työssä esiteltävää testausympäristöä myöskin käytettiin useamman kuukauden ajan ja se todettiin toimivaksi. Joitakin testausympäristön käyttöohjeita, käyttökokemuksia sekä siihen liittyviä parannusehdotuksia käydään läpi työn loppuosassa. Erityisesti havaittiin miten tärkeää on testata implementaatiota jo luokka tasolla ennen alijärjestelmä tason testaukseen siirtymistä sekä päädyttiin siihen, että suunnitteluvaiheen pitäisi olla lähemmin liitoksissa alijärjestelmätestaukseen.
Resumo:
This master’s thesis aims to study and represent from literature how evolutionary algorithms are used to solve different search and optimisation problems in the area of software engineering. Evolutionary algorithms are methods, which imitate the natural evolution process. An artificial evolution process evaluates fitness of each individual, which are solution candidates. The next population of candidate solutions is formed by using the good properties of the current population by applying different mutation and crossover operations. Different kinds of evolutionary algorithm applications related to software engineering were searched in the literature. Applications were classified and represented. Also the necessary basics about evolutionary algorithms were presented. It was concluded, that majority of evolutionary algorithm applications related to software engineering were about software design or testing. For example, there were applications about classifying software production data, project scheduling, static task scheduling related to parallel computing, allocating modules to subsystems, N-version programming, test data generation and generating an integration test order. Many applications were experimental testing rather than ready for real production use. There were also some Computer Aided Software Engineering tools based on evolutionary algorithms.
Resumo:
Teollusuussovelluksissa vaaditaan nykyisin yhä useammin reaaliaikaista tiedon käsittelyä. Luotettavuus on yksi tärkeimmistä reaaliaikaiseen tiedonkäsittelyyn kykenevän järjestelmän ominaisuuksista. Sen saavuttamiseksi on sekä laitteisto, että ohjelmisto testattava. Tämän työn päätavoitteena on laitteiston testaaminen ja laitteiston testattavuus, koska luotettava laitteistoalusta on perusta tulevaisuuden reaaliaikajärjestelmille. Diplomityössä esitetään digitaaliseen signaalinkäsittelyyn soveltuvan prosessorikortin suunnittelu. Prosessorikortti on tarkoitettu sähkökoneiden ennakoivaa kunnonvalvontaa varten. Uusimmat DFT (Desing for Testability) menetelmät esitellään ja niitä sovelletaan prosessorikortin sunnittelussa yhdessä vanhempien menetelmien kanssa. Kokemukset ja huomiot menetelmien soveltuvuudesta raportoidaan työn lopussa. Työn tavoitteena on kehittää osakomponentti web -pohjaiseen valvontajärjestelmään, jota on kehitetty Sähkötekniikan osastolla Lappeenrannan teknillisellä korkeakoululla.
Resumo:
Tässä luomistyössä on esitetty tutkimus informaation suojaamisen menetelmien osalta paikallisissa ja ryhmäkuntaisissa verkoissa. Tutkimukseen kuuluu nykyaikaisten kryptagraafisten järjestelmien, Internetin/Intranetin ohjelmointikeinojen ja pääsyoikeuksien jakelumenetelmien analyysi. Tutkimusten perusteella on laadittu ohjelmiston prototyyppi HTML-tiedostojen suojaamista varten. Ohjelmiston laatimisprosessi on sisältänyt vaatimusten, järjestelmän ja suojelukomponenttien suunnittelun ja protytyypin testauksen. Ohjelmiston realisoinnin jälkeen kirjoitettiin käyttöohjeet. Ohjelmiston prototyyppi suojaa informaatiota HTML-tiedoston koko käytön aikana ja eri yrityksissä voidaan käyttää sitä pienien laajennuksien jälkeen.
Resumo:
Software faults are expensive and cause serious damage, particularly if discovered late or not at all. Some software faults tend to be hidden. One goal of the thesis is to figure out the status quo in the field of software fault elimination since there are no recent surveys of the whole area. Basis for a structural framework is proposed for this unstructured field, paying attention to compatibility and how to find studies. Bug elimination means are surveyed, including bug knowhow, defect prevention and prediction, analysis, testing, and fault tolerance. The most common research issues for each area are identified and discussed, along with issues that do not get enough attention. Recommendations are presented for software developers, researchers, and teachers. Only the main lines of research are figured out. The main emphasis is on technical aspects. The survey was done by performing searches in IEEE, ACM, Elsevier, and Inspect databases. In addition, a systematic search was done for a few well-known related journals from recent time intervals. Some other journals, some conference proceedings and a few books, reports, and Internet articles have been investigated, too. The following problems were found and solutions for them discussed. Quality assurance is testing only is a common misunderstanding, and many checks are done and some methods applied only in the late testing phase. Many types of static review are almost forgotten even though they reveal faults that are hard to be detected by other means. Other forgotten areas are knowledge of bugs, knowing continuously repeated bugs, and lightweight means to increase reliability. Compatibility between studies is not always good, which also makes documents harder to understand. Some means, methods, and problems are considered method- or domain-specific when they are not. The field lacks cross-field research.
Resumo:
Software integration is a stage in a software development process to assemble separate components to produce a single product. It is important to manage the risks involved and being able to integrate smoothly, because software cannot be released without integrating it first. Furthermore, it has been shown that the integration and testing phase can make up 40 % of the overall project costs. These issues can be mitigated by using a software engineering practice called continuous integration. This thesis work presents how continuous integration is introduced to the author's employer organisation. This includes studying how the continuous integration process works and creating the technical basis to start using the process on future projects. The implemented system supports software written in C and C++ programming languages on Linux platform, but the general concepts can be applied to any programming language and platform by selecting the appropriate tools. The results demonstrate in detail what issues need to be solved when the process is acquired in a corporate environment. Additionally, they provide an implementation and process description suitable to the organisation. The results show that continuous integration can reduce the risks involved in a software process and increase the quality of the product as well.
Resumo:
Web application performance testing is an emerging and important field of software engineering. As web applications become more commonplace and complex, the need for performance testing will only increase. This paper discusses common concepts, practices and tools that lie at the heart of web application performance testing. A pragmatic, hands-on approach is assumed where applicable; real-life examples of test tooling, execution and analysis are presented right next to the underpinning theory. At the client-side, web application performance is primarily driven by the amount of data transmitted over the wire. At the server-side, selection of programming language and platform, implementation complexity and configuration are the primary contributors to web application performance. Web application performance testing is an activity that requires delicate coordination between project stakeholders, developers, system administrators and testers in order to produce reliable and useful results. Proper test definition, execution, reporting and repeatable test results are of utmost importance. Open-source performance analysis tools such as Apache JMeter, Firebug and YSlow can be used to realise effective web application performance tests. A sample case study using these tools is presented in this paper. The sample application was found to perform poorly even under the moderate load incurred by the sample tests.
Resumo:
In this thesis, the components important for testing work and organisational test process are identified and analysed. This work focuses on the testing activities in reallife software organisations, identifying the important test process components, observing testing work in practice, and analysing how the organisational test process could be developed. Software professionals from 14 different software organisations were interviewed to collect data on organisational test process and testing‐related factors. Moreover, additional data on organisational aspects was collected with a survey conducted on 31 organisations. This data was further analysed with the Grounded Theory method to identify the important test process components, and to observe how real‐life test organisations develop their testing activities. The results indicate that the test management at the project level is an important factor; the organisations do have sufficient test resources available, but they are not necessarily applied efficiently. In addition, organisations in general are reactive; they develop their process mainly to correct problems, not to enhance their efficiency or output quality. The results of this study allows organisations to have a better understanding of the test processes, and develop towards better practices and a culture of preventing problems, not reacting to them.
Resumo:
The value and benefits of user experience (UX) are widely recognized in the modern world and UX is seen as an integral part of many fields. This dissertation integrates UX and understanding end users with the early phases of software development. The concept of UX is still unclear, as witnessed by more than twenty-five definitions and ongoing argument about its different aspects and attributes. This missing consensus forms a problem in creating a link between UX and software development: How to take the UX of end users into account when it is unclear for software developers what UX stands for the end users. Furthermore, currently known methods to estimate, evaluate and analyse UX during software development are biased in favor of the phases where something concrete and tangible already exists. It would be beneficial to further elaborate on UX in the beginning phases of software development. Theoretical knowledge from the fields of UX and software development is presented and linked with surveyed and analysed UX attribute information from end users and UX professionals. Composing the surveys around the identified 21 UX attributes is described and the results are analysed in conjunction with end user demographics. Finally the utilization of the gained results is explained with a proof of concept utility, the Wizard of UX, which demonstrates how UX can be integrated into early phases of software development. The process of designing, prototyping and testing this utility is an integral part of this dissertation. The analyses show statistically significant dependencies between appreciation towards UX attributes and surveyed end user demographics. In addition, tests conducted by software developers and industrial UX designer both indicate the benefits and necessity of the prototyped Wizard of UX utility. According to the conducted tests, this utility meets the requirements set for it: It provides a way for software developers to raise their know-how of UX and a possibility to consider the UX of end users with statistical user profiles during the early phases of software development. This dissertation produces new and relevant information for the UX and software development communities by demonstrating that it is possible to integrate UX as a part of the early phases of software development.