Adapting Test-Driven Development to Build Robust Web Services

Author(s):  
Nuno Laranjeiro ◽  
Marco Vieira

Web services are increasingly being used in business critical environments as a mean to provide a service or integrate distinct software services. Research indicates that, in many cases, services are deployed with robustness issues (i.e., displaying unexpected behaviors when in presence of invalid input conditions). Recently, Test-Driven Development (TDD) emerged as software development technique based on test cases that are defined before development, as a way to validate functionalities. However, programmers typically disregard the verification of limit conditions, such as the ones targeted by robustness testing. Moreover, in TDD, tests are created before developing the functionality, conflicting with the typical robustness testing approach. This chapter discusses the integration of robustness testing in TDD for improving the robustness of web services during development. The authors requested three programmers to create a set of services based on open-source code and to implement different versions of the services specified by TPC-App, using both TDD and the approach presented in this chapter. Results indicate that TDD with robustness testing is an effective way to create more robust services.

Author(s):  
Nuno Laranjeiro ◽  
Marco Vieira

Web services are increasingly being used in business critical environments as a mean to provide a service or integrate distinct software services. Research indicates that, in many cases, services are deployed with robustness issues (i.e., displaying unexpected behaviors when in presence of invalid input conditions). Recently, Test-Driven Development (TDD) emerged as software development technique based on test cases that are defined before development, as a way to validate functionalities. However, programmers typically disregard the verification of limit conditions, such as the ones targeted by robustness testing. Moreover, in TDD, tests are created before developing the functionality, conflicting with the typical robustness testing approach. This chapter discusses the integration of robustness testing in TDD for improving the robustness of web services during development. The authors requested three programmers to create a set of services based on open-source code and to implement different versions of the services specified by TPC-App, using both TDD and the approach presented in this chapter. Results indicate that TDD with robustness testing is an effective way to create more robust services.


2009 ◽  
pp. 2301-2312
Author(s):  
Megan Squire

Much of the data about free, libre, and open source (FLOSS) software development comes from studies of code forges or code repositories used for managing projects. This paper presents a method for integrating data about open source projects by way of matching projects (entities) across multiple code forges. After a review of the relevant literature, a few of the methods are chosen and applied to the FLOSS domain, including a comparison of some simple scoring systems for pairwise project matches. Finally, the paper describes limitations of this approach and recommendations for future work.


Author(s):  
Saurabh Rawat ◽  
Anushree Sah ◽  
Ankur Dumka

Testing of software remains a fundamentally significant way to check that software behaves as required. Component-based software testing (CBST) is a crucial activity of component-based software development (CBSD) and is based on two crucial proportions: components testing by developers with the source code (e.g., system testing, integration testing, unit testing, etc.) and components testing by end users without source code (black box testing). This work proposes a black box testing technique that calculates the total number of interactions made by component-based software. This technique is helpful to identify the number of test cases for those components where availability of source code is questionable. On the basis of interaction among components, the authors draw a component-link graph and a direct-indirect-link matrix, which helps to calculate the number of interactions in component-based software.


Author(s):  
Ramona Markoska

А set of functional upgrades to the existing e-learning ecosystem for the C++ programming language, which provides a solution where students can use their own computers during training and practical exams, is presented in this article. The ICT solutions applied in this case offer a supervised and protected the online environment, where each student has their own working account. The rights and privileges for accessing and using various software services are customised according to the educational tasks (training or exam). Depending on the purpose, the described software solutions are realised as web services for education and training and network services for collection and evaluation of the students’ solutions during the practical exam. During the training, web services are used, and each account has its own folder, in which the solutions are stored, and if necessary, those can be opened, modified, tested and shared for collaboration or evaluation in an integrated C++ compiler. During practical exams, network services installed on Raspberry Pi are used, and for security reasons, there is no online access. Ready student solutions according to defined test cases are placed on the server. The principle of evaluation consists in comparing the solutions of each student separately with the pre-designed solutions set in the system for the same test cases. The e-learning ecosystem is developed and upgraded by managing various ICT open source solutions described in this work. Keywords: E-learning ecosystem, C++ programming, Raspberry Pi.


2012 ◽  
Vol 3 (2) ◽  
pp. 215-232 ◽  
Author(s):  
Nuno Laranjeiro ◽  
Marco Vieira ◽  
Henrique Madeira

2021 ◽  
Vol 8 (6) ◽  
pp. 274-280
Author(s):  
Henrique Matos Campos ◽  
Filipe Augusto Sintra Lazzarini ◽  
Aluisio Viais Pantaleão

2014 ◽  
Vol 13 (4) ◽  
pp. 4405-4415
Author(s):  
Deepali Diwase ◽  
Pujashree Vidap

In every business domain Web Services are more popular solutions to implement the software. Composite web service can be created by combining basic web services. Many unreliable web services are deployed on the internet. Hence, testing is required to ensure reliability. Software testers have great challenges to test web services. Source code of web services is unavailable. The Testing Framework is used to test web services without knowledge of its internal structure. In this paper, we have proposed a Testing Framework for Composite Web Services (TFCWS). It generates report which shows the total number of test cases executed for each web service with pass or fail status of each test case. It calculates the throughput of web service and response time of each test case. We have used web services response times for analysis of TFCWS, Soap UI and Storm.


2021 ◽  
Author(s):  
Sebastien Lelong ◽  
Xinghua Zhou ◽  
Cyrus Afrasiabi ◽  
Zhongchao Qian ◽  
Marco A Cano ◽  
...  

To meet the increased need of making biomedical resources more accessible and reusable, Web APIs or web services have become a common way to disseminate knowledge sources. The BioThings APIs are a collection of high-performance, scalable, annotation as a service APIs that automate the integration of biological annotations from disparate data sources. This collection of APIs currently includes MyGene.info, MyVariant.info, and MyChem.info for integrating annotations on genes, variants, and chemical compounds, respectively. These APIs are used by both individual researchers and application developers to simplify the process of annotation retrieval and identifier mapping. Here, we describe the BioThings Software Development Kit (SDK), a generalizable and reusable toolkit for integrating data from multiple disparate data sources and creating high-performance APIs. This toolkit allows users to easily create their own BioThings APIs for any data type of interest to them, as well as keep APIs up-to-date with their underlying data sources. Availability and implementation: The BioThings SDK is built in Python and released via PyPI (https://pypi.org/project/biothings/). Its source code is hosted at its github repository (https://github.com/biothings/biothings.api).


Author(s):  
Megan Squire

Much of the data about free, libre, and open source (FLOSS) software development comes from studies of code forges or code repositories used for managing projects. This paper presents a method for integrating data about open source projects by way of matching projects (entities) across multiple code forges. After a review of the relevant literature, a few of the methods are chosen and applied to the FLOSS domain, including a comparison of some simple scoring systems for pairwise project matches. Finally, the paper describes limitations of this approach and recommendations for future work.


Author(s):  
Varun Gupta

Hybrid regression testing approaches involve the combinations of test suite selections, prioritizations, and minimizations. The hybrid approaches must reduce size of test suite to minimal level and enhance fault detection rate. The chapter proposes a new hybrid regression testing approach that reduces the number of test cases by reducing the paths of source code on the basis of the dependency between the statements and the changes. The proposed technique is evaluated to be better than the existing hybrid approach in terms of percentage savings in test cases and fault detection rate.


Sign in / Sign up

Export Citation Format

Share Document