10 research outputs found

    Generator Kode Unit Testing Untuk Javascript Berbasis Framework Qunit

    Full text link
    Pada pengembangan perangkat lunak, kegiatan pengujian merupakan kegiatan yang sangat penting dalam menjaga kualitas perangkat lunak. Melakukan pengujian aplikasi yang memiliki kompleksitas yang tinggi memerlukan waktu dan biaya yang tidak sedikit. Maka dari itu diperlukan sebuah strategi dan teknik pengujian yang tepat agar pengujian perangkat lunak dapat dilakukan secara efektif dari segi waktu dan biaya. Unit Testing adalah salah satu teknik yang dapat digunakan untuk melakukan pengujian perangkat lunak. Unit Testing memiliki focus pengujian pada bagian terkecil dari sebuah aplikasi. Menulis kode Unit Testing dan Test Case secara manual ketika akan melakukan pengujian, memerlukan waktu dan sangat rentan terhadap kesalahan. Javascript memiliki fungsi-fungsi umum yang sering digunakan ketika membangun sebuah aplikasi. Fungsi-fungsi umum ini sangat dimungkinkan untuk diuji dengan sebuah kode Unit Testing yang dihasilkan secara otomatis oleh aplikasi Generator. Pada penelitian ini dihasilkan sebuah aplikasi Generator yang menghasilkan kode Unit Testing Javascript yang berjalan pada lingkungan pengujian berbasis Framework QUnit

    What good are strong specifications?

    Full text link
    Abstract—Experience with lightweight formal methods suggests that programmers are willing to write specification if it brings tangible benefits to their usual development activities. This paper considers stronger specifications and studies whether they can be deployed as an incremental practice that brings additional benefits without being unacceptably expensive. We introduce a methodology that extends Design by Contract to write strong specifications of functional properties in the form of preconditions, postconditions, and invariants. The methodology aims at being palatable to developers who are not fluent in formal techniques but are comfortable with writing simple specifications. We evaluate the cost and the benefits of using strong specifications by applying the methodology to testing data structure implementations written in Eiffel and C#. In our extensive experiments, testing against strong specifications detects twice as many bugs as standard contracts, with a reasonable overhead in terms of annotation burden and runtime performance while testing. In the wide spectrum of formal techniques for software quality, testing against strong specifications lies in a “sweet spot ” with a favorable benefit to effort ratio. I

    Towards Better Quality Specification Miners

    Get PDF

    Alternating GUI Test Generation and Execution

    Full text link
    Users of today’s software perform tasks by interacting with a graphical user interface (GUI) front-end via se-quences of input events. Due to the flexibility offered by most GUIs, the number of event sequences grows exponen-tially with length. One ubiquitous challenge of GUI test-ing is to selectively generate those sequences that lead to potentially problematic states. This paper presents ALT, a new technique that generates GUI test cases in batches, by leveraging GUI run-time information from a previously run batch to obtain the next batch. Each successive batch con-sists of “longer ” test cases that expand the state space to be explored, yet prune the “unimportant ” states. The “alter-nating ” nature of ALT allows it to enhance the next batch by leveraging certain relationships between GUI events (e.g., one enables the other, one alters the other’s execution) that are revealed only at run-time and non-trivial to infer stati-cally. An empirical study on four fielded GUI-based appli-cations demonstrates that ALT is successful at identifying complex failure-causing interactions between GUI events.

    Carving differential unit test cases from system test cases

    Full text link
    Unit test cases are focused and efficient. System tests are effective at exercising complex usage patterns. Differential unit tests (DUT) are a hybrid of unit and system tests. They are generated by carving the system components, while executing a system test case, that influence the behavior of the target unit, and then re-assembling those components so that the unit can be exercised as it was by the system test. We conjecture that DUTs retain some of the advantages of unit tests, can be automatically and inexpensively generated, and have the potential for revealing faults related to intricate system executions. In this paper we present a framework for automatically carving and replaying DUTs that accounts for a wide-variety of strategies, we implement an instance of the framework with several techniques to mitigate test cost and enhance flexibility, and we empirically assess the efficacy of carving and replaying DUTs. 1

    Testigenerointityökalut Java-sovelluskehityksen tukena

    Get PDF
    Testien rooli sovelluskehityksessä on suuri, mutta eri syistä sovelluskehittäjien voi olla vaikeaa kirjoittaa relevantteja ja hyödyllisiä testejä. Testigenerointia voidaan käyttää sovelluskehityksen tukena, joko etsimässä aikaisemmin paljastumattomia virheitä tai kuvaamassa kohteena olevan ohjelmiston toimintaa tarkemmin. Testigeneroinnille on Java-kehityksen kontekstissa erilaisia työkaluja, joista tässä tutkielmassa arvioidaan kaupallisia Agitar Technologies-yrityksen AgitarOnea ja Parasoftin Jtestiä ja avoimia työkaluja, CodePro Analytixiä, Palusta, Randoopia ja EvoSuitea. Tutkielman tavoitteena on vastata kysymykseen, saavutetaanko kaupallisilla työkaluilla merkittävää etua verrattuna avoimien työkalujen käyttöön. Tutkielmassa osoitetaan, että AgitarOnella ja Jtestillä on tiettyjä osa-alueita, joissa ne ovat selkeästi parempia kuin avoimet työkalut, mutta myös, että niiden generoimia testejä on rajoitettu, eikä niitä voi hyödyntää yhtä vapaasti kuin avoimien työkalujen generoimia testejä. Tutkielman lopuksi todetaan myös, miten arvioidut sovelluskehittimet tukevat virheiden etsintää myös muilla merkittävillä tavoilla, eikä pelkkä testigenerointi anna koko kuvaa niiden tarjoamasta hyödystä

    Carving and Replaying Differential Unit Test Cases from System Test Cases

    Full text link

    Requirement validation with enactable descriptions of use cases.

    Get PDF
    The validation of stakeholder requirements for a software system is a pivotal activity for any nontrivial software development project. Often, differences in knowledge regarding development issues, and knowledge regarding the problem domain, impede the elaboration of requirements amongst developers and stakeholders. A description technique that provides a user perspective of the system behaviour is likely to enhance shared understanding between the developers and stakeholders. The Unified Modelling Language (UML) use case is such a notation. Use cases describe the behaviour of a system (using natural language) in terms of interactions between the external users and the system. Since the standardisation of the UML by the Object Management Group in 1997, much research has been devoted to use cases. Some researchers have focussed on the provision of writing guidelines for use case specifications whereas others have focussed on the application of formal techniques. This thesis investigates the adequacy of the use case description for the specification and validation of software behaviour. In particular, the thesis argues that whereas the user-system interaction scheme underpins the essence of the use case notation, the UML specification of the use case does not provide a mechanism by which use cases can describe dependencies amongst constituent interaction steps. Clarifying these issues is crucial for validating the adequacy of the specification against stakeholder expectations. This thesis proposes a state-based approach (the Educator approach) to use case specification where constituent events are augmented with pre and post states to express both intra-use case and inter-use case dependencies. Use case events are enacted to visualise implied behaviour, thereby enhancing shared understanding among users and developers. Moreover, enaction provides an early "feel" of the behaviour that would result from the implementation of the specification. The Educator approach and the enaction of descriptions are supported by a prototype environment, the EducatorTool, developed to demonstrate the efficacy and novelty of the approach. To validate the work presented in this thesis an industrial study, involving the specification of realtime control software, is reported. The study involves the analysis of use case specifications of the subsystems prior to the application of the proposed approach, and the analysis of the specification where the approach and tool support are applied. This way, it is possible to determine the efficacy of the Educator approach within an industrial setting

    Requirement validation with enactable descriptions of use cases

    Get PDF
    The validation of stakeholder requirements for a software system is a pivotal activity for any nontrivial software development project. Often, differences in knowledge regarding development issues, and knowledge regarding the problem domain, impede the elaboration of requirements amongst developers and stakeholders. A description technique that provides a user perspective of the system behaviour is likely to enhance shared understanding between the developers and stakeholders. The Unified Modelling Language (UML) use case is such a notation. Use cases describe the behaviour of a system (using natural language) in terms of interactions between the external users and the system. Since the standardisation of the UML by the Object Management Group in 1997, much research has been devoted to use cases. Some researchers have focussed on the provision of writing guidelines for use case specifications whereas others have focussed on the application of formal techniques. This thesis investigates the adequacy of the use case description for the specification and validation of software behaviour. In particular, the thesis argues that whereas the user-system interaction scheme underpins the essence of the use case notation, the UML specification of the use case does not provide a mechanism by which use cases can describe dependencies amongst constituent interaction steps. Clarifying these issues is crucial for validating the adequacy of the specification against stakeholder expectations. This thesis proposes a state-based approach (the Educator approach) to use case specification where constituent events are augmented with pre and post states to express both intra-use case and inter-use case dependencies. Use case events are enacted to visualise implied behaviour, thereby enhancing shared understanding among users and developers. Moreover, enaction provides an early "feel" of the behaviour that would result from the implementation of the specification. The Educator approach and the enaction of descriptions are supported by a prototype environment, the EducatorTool, developed to demonstrate the efficacy and novelty of the approach. To validate the work presented in this thesis an industrial study, involving the specification of realtime control software, is reported. The study involves the analysis of use case specifications of the subsystems prior to the application of the proposed approach, and the analysis of the specification where the approach and tool support are applied. This way, it is possible to determine the efficacy of the Educator approach within an industrial setting.EThOS - Electronic Theses Online ServiceGBUnited Kingdo
    corecore