978 resultados para Software testing


Relevância:

60.00% 60.00%

Publicador:

Resumo:

The aim of this bachelor’s thesis is to make a plan for the assessment of the adaptive reference model of software testing, which is based on the ISO/IEC 29119 testing standard. The assessment is not carried out in the scope of this thesis, but later in the related MASTO project. The ISO/IEC 29119 testing standard and the ISO/IEC 15504 process assessment standard are explained and a literary review is done about problems in software testing practices. Based on this background information a plan for the assessment is made. The assessment plan assesses the reference model from two perspectives. First the capability of the testing process described by the reference model is assessed and then the practical usefulness of the model is assessed.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Tämän tutkimuksen tavoitteena on selvittää opintojensa alussa olevien yliopisto-opiskelijoiden vaikeimpina pitämät käytännön ohjelmoinnin aihealueet sekä koostaa luentomoniste käytettäväksi seuraavalla alkavalla Käytännön ohjelmointi -kurssilla. Tutkimusmetodina käytettiin konstruktiivista tutkimusmetodia, jossa tavoitteen spesifioinnin jälkeen implementoitiin luentomoniste koostamalla määriteltyjen aihekokonaisuuksien lähdemateriaalia yhtenäiseksi, luettavaksi kokonaisuudeksi. Yliopistoissa ei yleisesti opeteta ohjelmistojen testausta ennen syventäviä ohjelmistotekniikan kursseja, mikä on kuitenkin puute työelämän kannalta. Tässä työssä esitetään perusteluja käytännönläheisten aihekokonaisuuksien painottamiselle ohjelmointikursseilla jo yliopisto-opintojen alkuvaiheessa. Työssä käsitellään Käytännön ohjelmointi -kurssin kurssipalautetta, missä havaittiin opiskelijoiden pitävän kurssin hankalimpina aihealueina linkitettyä listaa, osoittimia, dynaamista muistinhallintaa, tietorakenteita ja versionhallintaa. Työn avulla on pyritty kehittämään käytännön ohjelmoinnin yliopisto-opetusta Lappeenrannan teknillisessä yliopistossa luentomateriaalin avulla, jossa on muun muassa teoriaa, keskeisiä opiskelijoiden tarvitsemia komentoja, www-linkkejä sekä ohjelmoinnin tyyliopas.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Ohjelmistotestauksen merkitys ja testausosaamisen tarve ovat lisääntyneet sen myötä, kun ohjelmistojen koko on kasvanut ja toteutus monimutkaistunut. Testaustaidot kehittyvät parhaiten käytännön kokemuksen kautta mutta testausosaamisen perusta ja edellytykset käytännön taitojen kehittymiselle rakentuvat testauksen keskeisten avainasioiden, näkökulmien ja käytäntöjen teoreettiseen tuntemukseen ja ammattisanaston hyvään hallintaan. Tässä raportissa kuvataan Lappeenrannan teknilliselle yliopistolle tehty työ, jonka tuloksena koostettiin suomenkielinen oppimateriaali uudelle, keväällä 2015 kurssitarjontaan lisätylle opintojaksolle Ohjelmistotestauksen perusteet.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Ohjelmistotestauksen merkitys on kasvanut sen mukaan mitä enemmän ohjelmisto-tuotteet vaikuttavat jokapäiväisesseen elämämme. Tämän vuoksi yritysten investointien ja laadunvarmentamisen yhteys on ilmeinen. Organisaatiot panostavat yhä enemmän ei–funktionaaliseen testaukseen, kuten turvallisuuden, suorituskyvyn ja käytettävyyden testaamiseen. Tämän työn tarkoituksena on tutkia ohjelmistotestauksen nykytilannetta Suomessa. Syy tähän on uudistaa ja parantaa ohjelmistotestauksen kurssitarjontaa Turun yliopistossa vastaamaan parhaalla mahdollisella tavalla yritysten tarvetta. Opinnäyte on toteutettu replikaatio-tutkimuksena. Pääosa kyselystä sisältää kysymyksiä ohjelmistotestauksen menetelmistä ja työkaluista testausprosessin toimintojen aikana. Lisäksi on yleisiä kysymyksiä yrityksistä ja niiden ohjelmistotestausympäristöistä. Kyselyssä otetaan myös kantaa yritysten käyttämiin monenlaisiin testaus-tasoihin, -tyyppeihin ja testauksessa kohdattuihin haasteisiin. Tämä opinnäyte perustuu testausprosessistandardeihin. Ohjelmistotestausstandardit ovat keskeisessä asemassa tässä työssä, vaikka ne ovat olleet viime aikoina vahvan kritiikin kohteena. Epäilys standardien välttämättömyyteen on syntynyt muutoksista ohjelmistokehityksessä. Tämä työ esittelee tulokset ohjelmistotestauksen käytännöistä. Tuloksia on verrattu aiheeseen liittyvän aiemman kyselyn (Lee, Kang, & Lee, 2011) tuloksiin. Ajanpuutteen havaitaan olevan suuri haaste ohjelmistotestauksessa. Ketterä ohjelmistokehitys on saavuttanut suosiota kaikissa vastaajien yrityksissä. Testauksen menetelmät ja työkalut testauksen arviointiin, suunnitteluun ja raportointiin ovat hyvin vähäisessä käytössä. Toisaalta testauksen menetelmien ja työkalujen käyttö automaattiseen testauksen toteuttamiseen ja virheiden hallintaan on lisääntynyt. Järjestelmä-, hyväksyntä-, yksikkö- ja integraatiotestaus ovat käytössä kaikkien vastaajien edustamissa yrityksissä. Kaikkien vastaajien mielestä regressio- sekä tutkiva- ja ei-funktionaalinen testaus ovat tärkeitä tekniikoita.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Tämän tutkimuksen kohteena on Turun yliopistossa kehitetyn www-pohjaisen ViLLE-oppimisjärjestelmän funktionaalisen käyttöliittymätestauksen automatisointityö. Tutkimusta varten olen kerännyt kattavasti aineistoa aihetta käsittelevästä yleisestä kirjallisuudesta ja artikkeleista sekä toteutuksen kannalta spesifistä tietoa tarjoavista Internet-lähteistä. Tutkimuksessa olen tehnyt myös pienehkön määrän testausalan asiantuntijahaastatteluja. Tutkimuksen empiirisessä osuudessa olen valinnut testaukseen käytettävän testaustyökalun sekä toteuttanut valitulla testaustyökalulla ViLLE-oppimisjärjestelmän testauksen automatisointityön soveltamalla käytäntöön tutkimuksen teoriaosuudessa esitettyä tietoa hyvistä käytänteistä funktionaalisen käyttöliittymätestauksen automatisoinnissa. Tutkimuksen toteutuksessa olen käyttänyt kvalitatiivista tutkimusmenetelmää. Tutkimuksen empiirisen osuuden pohjalta kerätyn havaintoaineiston perusteella olen selvittänyt vastaukset seuraaviin tutkimuksessa esitettyihin tutkimuskysymyksiin: • Miten käytetty testaustyökalu on valittu ja mitkä olivat valintaan vaikuttaneet tärkeimmät kriteerit? • Miten käytetty testaustyökalu soveltuu ViLLE-oppimisjärjestelmän funktionaalisen käyttöliittymätestauksen automatisointiin? • Millä eri tavoin käytäntöön viety hyvien testiautomaation laatimistapojen mukainen toteutus vaikuttaa nyt laadittuun testiautomaatioon? • Esiintyikö toteutetussa testiautomaatiossa tutkimuksen teoreettisessa viitekehyksessä kuvattuja funktionaalisen käyttöliittymätestauksen automatisoinnille tyypillisiä ongelmia ja miten ongelmat saatiin ratkaistua? Tutkimuksen tulokset osoittavat melko selvästi, että ViLLE-oppimisympäristön funktionaalisen käyttöliittymätestauksen automatisointityön toteutukseen valittu Vaadin TestBench -testaustyökalu, joka on valittu tutkimuksen alkuvaiheessa suoritetun evaluoinnin perusteella, soveltuu käyttötarkoitukseensa hyvin. Lisäksi pystyin luotettavasti havainnoimaan, että testiautomaation ylläpidon tarve sekä testien laatimiseen kuluva aika vähenevät merkittävästi, kun testit laaditaan heti alusta lähtien rakenteeltaan modulaariseksi sekä tietyin teknisin keinoin mahdollisimman vähän käyttöliittymän rakennetta huomioonottavaksi. Ongelmia testiautomaation laatimisessa voivat aiheuttaa käytetty työkalu itsessään, testattavan järjestelmän toteutus sekä testien suoritusympäristö. Huolimatta kirjallisuuskatsauksen perusteella tehdystä varautumisesta tyypillisiin testiautomaation laatimisessa esiintyviin ongelmiin, myös joitakin sellaisia ongelmia esiintyi, joihin en ollut osannut varautua. Mahdollisiin ongelmiin etukäteen varautuminen kuitenkin selvästi auttoi suurimpaan osaan testiautomaation laatimisessa esiintyneistä ongelmista.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Aspect-oriented programming (AOP) is a promising technology that supports separation of crosscutting concerns (i.e., functionality that tends to be tangled with, and scattered through the rest of the system). In AOP, a method-like construct named advice is applied to join points in the system through a special construct named pointcut. This mechanism supports the modularization of crosscutting behavior; however, since the added interactions are not explicit in the source code, it is hard to ensure their correctness. To tackle this problem, this paper presents a rigorous coverage analysis approach to ensure exercising the logic of each advice - statements, branches, and def-use pairs - at each affected join point. To make this analysis possible, a structural model based on Java bytecode - called PointCut-based Del-Use Graph (PCDU) - is proposed, along with three integration testing criteria. Theoretical, empirical, and exploratory studies involving 12 aspect-oriented programs and several fault examples present evidence of the feasibility and effectiveness of the proposed approach. (C) 2010 Elsevier Inc. All rights reserved.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

In this paper, we consider a classical problem of complete test generation for deterministic finite-state machines (FSMs) in a more general setting. The first generalization is that the number of states in implementation FSMs can even be smaller than that of the specification FSM. Previous work deals only with the case when the implementation FSMs are allowed to have the same number of states as the specification FSM. This generalization provides more options to the test designer: when traditional methods trigger a test explosion for large specification machines, tests with a lower, but yet guaranteed, fault coverage can still be generated. The second generalization is that tests can be generated starting with a user-defined test suite, by incrementally extending it until the desired fault coverage is achieved. Solving the generalized test derivation problem, we formulate sufficient conditions for test suite completeness weaker than the existing ones and use them to elaborate an algorithm that can be used both for extending user-defined test suites to achieve the desired fault coverage and for test generation. We present the experimental results that indicate that the proposed algorithm allows obtaining a trade-off between the length and fault coverage of test suites.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Mutation testing has been used to assess the quality of test case suites by analyzing the ability in distinguishing the artifact under testing from a set of alternative artifacts, the so-called mutants. The mutants are generated from the artifact under testing by applying a set of mutant operators, which produce artifacts with simple syntactical differences. The mutant operators are usually based on typical errors that occur during the software development and can be related to a fault model. In this paper, we propose a language-named MuDeL (MUtant DEfinition Language)-for the definition of mutant operators, aiming not only at automating the mutant generation, but also at providing precision and formality to the operator definition. The proposed language is based on concepts from transformational and logical programming paradigms, as well as from context-free grammar theory. Denotational semantics formal framework is employed to define the semantics of the MuDeL language. We also describe a system-named mudelgen-developed to support the use of this language. An executable representation of the denotational semantics of the language is used to check the correctness of the implementation of mudelgen. At the very end, a mutant generator module is produced, which can be incorporated into a specific mutant tool/environment. (C) 2008 Elsevier Ltd. All rights reserved.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Formal methods and software testing are tools to obtain and control software quality. When used together, they provide mechanisms for software specification, verification and error detection. Even though formal methods allow software to be mathematically verified, they are not enough to assure that a system is free of faults, thus, software testing techniques are necessary to complement the process of verification and validation of a system. Model Based Testing techniques allow tests to be generated from other software artifacts such as specifications and abstract models. Using formal specifications as basis for test creation, we can generate better quality tests, because these specifications are usually precise and free of ambiguity. Fernanda Souza (2009) proposed a method to define test cases from B Method specifications. This method used information from the machine s invariant and the operation s precondition to define positive and negative test cases for an operation, using equivalent class partitioning and boundary value analysis based techniques. However, the method proposed in 2009 was not automated and had conceptual deficiencies like, for instance, it did not fit in a well defined coverage criteria classification. We started our work with a case study that applied the method in an example of B specification from the industry. Based in this case study we ve obtained subsidies to improve it. In our work we evolved the proposed method, rewriting it and adding characteristics to make it compatible with a test classification used by the community. We also improved the method to support specifications structured in different components, to use information from the operation s behavior on the test case generation process and to use new coverage criterias. Besides, we have implemented a tool to automate the method and we have submitted it to more complex case studies

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Checking the conformity between implementation and design rules in a system is an important activity to try to ensure that no degradation occurs between architectural patterns defined for the system and what is actually implemented in the source code. Especially in the case of systems which require a high level of reliability is important to define specific design rules for exceptional behavior. Such rules describe how exceptions should flow through the system by defining what elements are responsible for catching exceptions thrown by other system elements. However, current approaches to automatically check design rules do not provide suitable mechanisms to define and verify design rules related to the exception handling policy of applications. This paper proposes a practical approach to preserve the exceptional behavior of an application or family of applications, based on the definition and runtime automatic checking of design rules for exception handling of systems developed in Java or AspectJ. To support this approach was developed, in the context of this work, a tool called VITTAE (Verification and Information Tool to Analyze Exceptions) that extends the JUnit framework and allows automating test activities to exceptional design rules. We conducted a case study with the primary objective of evaluating the effectiveness of the proposed approach on a software product line. Besides this, an experiment was conducted that aimed to realize a comparative analysis between the proposed approach and an approach based on a tool called JUnitE, which also proposes to test the exception handling code using JUnit tests. The results showed how the exception handling design rules evolve along different versions of a system and that VITTAE can aid in the detection of defects in exception handling code

Relevância:

60.00% 60.00%

Publicador:

Resumo:

There is a growing interest of the Computer Science education community for including testing concepts on introductory programming courses. Aiming at contributing to this issue, we introduce POPT, a Problem-Oriented Programming and Testing approach for Introductory Programming Courses. POPT main goal is to improve the traditional method of teaching introductory programming that concentrates mainly on implementation and neglects testing. POPT extends POP (Problem Oriented Programing) methodology proposed on the PhD Thesis of Andrea Mendonça (UFCG). In both methodologies POPT and POP, students skills in dealing with ill-defined problems must be developed since the first programming courses. In POPT however, students are stimulated to clarify ill-defined problem specifications, guided by de definition of test cases (in a table-like manner). This paper presents POPT, and TestBoot a tool developed to support the methodology. In order to evaluate the approach a case study and a controlled experiment (which adopted the Latin Square design) were performed. In an Introductory Programming course of Computer Science and Software Engineering Graduation Programs at the Federal University of Rio Grande do Norte, Brazil. The study results have shown that, when compared to a Blind Testing approach, POPT stimulates the implementation of programs of better external quality the first program version submitted by POPT students passed in twice the number of test cases (professor-defined ones) when compared to non-POPT students. Moreover, POPT students submitted fewer program versions and spent more time to submit the first version to the automatic evaluation system, which lead us to think that POPT students are stimulated to think better about the solution they are implementing. The controlled experiment confirmed the influence of the proposed methodology on the quality of the code developed by POPT students