Paulo Sergio Lopes de Souza
University of São Paulo
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Paulo Sergio Lopes de Souza.
Testing: Academic & Industrial Conference - Practice and Research Techniques (taic part 2008) | 2008
André Takeshi Endo; A. da Simao; Simone do Rocio Senger de Souza; Paulo Sergio Lopes de Souza
Web Services have been used in the development of loosely coupled applications. Several Web Services are usually combined to create new services by a mechanism named Web Services Composition. In this paper, we present a strategy for Web Services Composition structural integration testing. Structural testing coverage criteria for services written in BPEL are also described. The concept of required element groups is defined to improve the accuracy of criteria coverage. We present a case study for assessing the applicability of proposed strategy. ValiBPEL-Web, a tool that supports the test strategy is also presented.
international conference on computational science | 2008
Felipe S. Sarmanho; Paulo Sergio Lopes de Souza; Simone do Rocio Senger de Souza; Adenilso da Silva Simão
This paper presents structural testing criteria for validation of semaphore-based multithread programs exploring control, data, communication and synchronization information. A post-mortem method based on timestamps is defined to determine the implicit communication among threads using shared variables. The applicability of the coverage testing criteria is illustrated by a case study.
workshop on i/o in parallel and distributed systems | 2011
Simone do Rocio Senger de Souza; Maria A. S. Brito; Rodolfo Adamshuk Silva; Paulo Sergio Lopes de Souza; Ed Zaluska
The current increased demand for distributed applications in domains such as web services and cloud computing has significantly increased interest in concurrent programming. This demand in turn has resulted in new testing methodologies for such systems, which take account of the challenges necessary to test these applications. This paper presents a systematic review of the published research related to concurrent testing approaches, bug classification and testing tools. A systematic review is a process of collection, assessment and interpretation of the published papers related to a specific search question, designed to provide a background for further research. The results include information about the research relationships and research teams that are working in the different areas of concurrent programs testing.
Information & Software Technology | 2017
Rodolfo Adamshuk Silva; Simone do Rocio Senger de Souza; Paulo Sergio Lopes de Souza
ContextSearch Based Software Testing refers to the use of meta-heuristics for the optimization of a task in the context of software testing. Meta-heuristics can solve complex problems in which an optimum solution must be found among a large amount of possibilities. The use of meta-heuristics in testing activities is promising because of the high number of inputs that should be tested. Previous studies on search based software testing have focused on the application of meta-heuristics for the optimization of structural and functional criteria. Recently, some researchers have proposed the use of SBST for mutation testing and explored solutions for the cost of application of this testing criterion. ObjectiveThe objective is to identify how SBST has been explored in the context of mutation testing, how fitness functions are defined and the challenges and research opportunities in the application of meta-heuristic search techniques. MethodA systematic review involving 263 papers published between 1996 and 2014 examined the studies on the use of meta-heuristic search techniques for the optimization of mutation testing. ResultsThe results show meta-heuristic search techniques have been applied for the optimization of test data generation, mutant generation and selection of effective mutation operators. Five meta-heuristic techniques, namely Genetic Algorithm, Ant Colony, Bacteriological Algorithm, Hill Climbing and Simulated Annealing have been used in search based mutation testing. The review addressed different fitness functions used to guide the search. ConclusionSearch based mutation testing is a field of interest, however, some issues remain unexplored. For instance, the use of meta-heuristics for the selection of effective mutation operators was identified in only one study. The results have pointed a range of possibilities for new studies to be developed, i.e., identification of equivalent mutants, experimental studies and application to different domains, such as concurrent programs.
Concurrency and Computation: Practice and Experience | 2014
Paulo Sergio Lopes de Souza; Simone do Rocio Senger de Souza; Ed Zaluska
Developing high‐quality, error‐free message‐passing concurrent programs is not trivial. Although a number of different primitives with associated semantics are available to assist such development, they often increase the complexity of the testing process. In this paper, we extend our previous test model for message‐passing programs and present new structural testing criteria, taking into account additional features used in this paradigm, such as collective communication, non‐blocking sends, distinct semantics for non‐blocking receives, and persistent operations. Our new model also recognizes that sender primitives cannot always be matched with every receive primitive. This improvement allows us to remove statically a significant number of infeasible synchronization edges that would otherwise have to be analyzed later by the tester. In this paper, the test model is presented using the Message‐Passing Interface standard; however, our new model has been designed to be flexible, and it can be configured to support a range of different message‐passing environments or languages. We have carried out case studies showing the applicability of the new test model to represent message‐passing programs and also to reveal errors, mainly those errors related to inter‐process communication. In addition to increasing the number of features supported by the test model, we have also reduced the overall cost of testing significantly. Our case studies suggest that the number of synchronization edges can be reduced by up to 93%, mainly by eliminating infeasible edges between unmatchable communication primitives. The main contribution of the paper is to present a more flexible test model that provides improved coverage for message‐passing programs and at the same time reduces the cost of testing significantly. Copyright
european pvm mpi users group meeting on recent advances in parallel virtual machine and message passing interface | 2008
Paulo Sergio Lopes de Souza; Eduardo T. Sawabe; Adenilso da Silva Simão; Silvia Regina Vergilio; Simone do Rocio Senger de Souza
This work presents ValiPVM, a testing tool for C/PVM parallel programs. This tool implements structural coverage criteria, using an architecture already employed for MPI programs. It supports generation and evaluation of test sets and considers the control, data and communication flows of PVM programs. ValiPVM has a graphical user interface, designed to facilitate the test execution, analysis of results and to guide the user during the execution of the testing activity.
international conference on conceptual structures | 2013
Paulo Sergio Lopes de Souza; Simone do Rocio Senger de Souza; Murilo G. Rocha; Rafael R. Prado; Raphael Negrisoli Batista
Abstract This paper proposes a novel structural test model to capture information about flows of data, control, communication and syn- chronization of parallel and distributed applications interacting through both message passing and shared memory paradigms. Our main focus is the data flow among threads of different processes, considering the operations of communication and syn- chronization related to such flow. This inter-process data-flow represents a challenge to the tester, who must consider the heterogeneity of programming paradigms and languages. The information captured by the test model is used by new testing criteria, which improve the testing activity quality. The proposed model and criteria were applied to an object-oriented and distributed application developed in Java. The results suggest that the model and the criteria are able to represent distributed applications developed with message passing and shared memory paradigms. The main contribution of this paper is to present a more flexible test model capable of improving the structural test activity related to the data flow on processes and threads simultaneously.
european pvm mpi users group meeting on recent advances in parallel virtual machine and message passing interface | 1997
Paulo Sergio Lopes de Souza; Luciano José Senger; Marcos José Santana; Regina Helena Carlucci Santana
Is PVM in Windows environments viable? This paper shows that the answer is yes! Furthermore, besides being viable as an alternative platform for the development of parallel applications, Windows environments allow PVM to have better performance figures than those obtained from LINUX environments. With this aim it is presented a performance evaluation of two different PVM implementations, one for the Windows and another for the LINUX operating system. This evaluation takes into account the main elements of each environment, studying in isolation the performance impact of each one. The results show that PVM in Windows environments is viable and can potentially produce better results, if an appropriate communication protocol implementation is available.
Software Testing, Verification & Reliability | 2015
Simone do Rocio Senger de Souza; Paulo Sergio Lopes de Souza; Maria A. S. Brito; Adenilso da Silva Simão; Ed Zaluska
Testing is a key activity to assure the quality of concurrent applications. In recent years, a variety of different mechanisms have been proposed to test concurrent software. However, a persistent problem is the high testing cost because of the large number of different synchronization sequences that must be tested. When structural testing criteria are adopted, a large number of infeasible synchronization sequences is generated, increasing the testing cost. Although the use of reachability testing reduces the number of infeasible combination (because only feasible synchronization sequences are generated), many synchronization combinations are also generated, and this again results in a testing cost with exponential behavior. This paper presents a new composite approach that uses reachability testing to guide the selection of the synchronization sequences tests according to a specific structural testing criterion. This new composite approach is empirically evaluated in the context of message‐passing concurrent programs developed with MPI. The experimental study evaluates both the cost and effectiveness of proposed composite approach in comparison with traditional reachability testing and structural testing. The results confirm that the use of the new composite approach has advantages for testing of concurrent applications. Copyright
Proceedings of the 6th International Workshop on Automating Test Case Design, Selection and Evaluation | 2015
Silvana M. Melo; Simone do Rocio Senger de Souza; Rodolfo Adamshuk Silva; Paulo Sergio Lopes de Souza
The testing of concurrent programs is very complex due to the non-determinism present in those programs. They must be subjected to a systematic testing process that assists in the identification of defects and guarantees quality. Although testing tools have been proposed to support the concurrent program testing, to the best of our knowledge, no study that concentrates all testing tools to be used as a catalog for testers is available in the literature. This paper proposes a new classification for a set of testing tools for concurrent programs, regarding attributes, such as testing technique supported, programming language, and paradigm of development. The purpose is to provide a useful categorization guide that helps testing practitioners and researchers in the selection of testing tools for concurrent programs. A systematic mapping was conducted so that studies on testing tools for concurrent programs could be identified. As a main result, we provide a catalog with 116 testing tools appropriately selected and classified, among which the following techniques were identified: functional testing, structural testing, mutation testing, model based testing, data race and deadlock detection, deterministic testing and symbolic execution. The programming languages with higher support were Java and C/C++. Although a large number of tools have been categorized, most of them are academic and only few are available on a commercial scale. The classification proposed here can contribute to the state-of-the-art of testing tools for concurrent programs and also provides information for the exchange of knowledge between academy and industry.