970 resultados para Unit testing
Resumo:
Bioinformatics is a recent and emerging discipline which aims at studying biological problems through computational approaches. Most branches of bioinformatics such as Genomics, Proteomics and Molecular Dynamics are particularly computationally intensive, requiring huge amount of computational resources for running algorithms of everincreasing complexity over data of everincreasing size. In the search for computational power, the EGEE Grid platform, world's largest community of interconnected clusters load balanced as a whole, seems particularly promising and is considered the new hope for satisfying the everincreasing computational requirements of bioinformatics, as well as physics and other computational sciences. The EGEE platform, however, is rather new and not yet free of problems. In addition, specific requirements of bioinformatics need to be addressed in order to use this new platform effectively for bioinformatics tasks. In my three years' Ph.D. work I addressed numerous aspects of this Grid platform, with particular attention to those needed by the bioinformatics domain. I hence created three major frameworks, Vnas, GridDBManager and SETest, plus an additional smaller standalone solution, to enhance the support for bioinformatics applications in the Grid environment and to reduce the effort needed to create new applications, additionally addressing numerous existing Grid issues and performing a series of optimizations. The Vnas framework is an advanced system for the submission and monitoring of Grid jobs that provides an abstraction with reliability over the Grid platform. In addition, Vnas greatly simplifies the development of new Grid applications by providing a callback system to simplify the creation of arbitrarily complex multistage computational pipelines and provides an abstracted virtual sandbox which bypasses Grid limitations. Vnas also reduces the usage of Grid bandwidth and storage resources by transparently detecting equality of virtual sandbox files based on content, across different submissions, even when performed by different users. BGBlast, evolution of the earlier project GridBlast, now provides a Grid Database Manager (GridDBManager) component for managing and automatically updating biological flatfile databases in the Grid environment. GridDBManager sports very novel features such as an adaptive replication algorithm that constantly optimizes the number of replicas of the managed databases in the Grid environment, balancing between response times (performances) and storage costs according to a programmed cost formula. GridDBManager also provides a very optimized automated management for older versions of the databases based on reverse delta files, which reduces the storage costs required to keep such older versions available in the Grid environment by two orders of magnitude. The SETest framework provides a way to the user to test and regressiontest Python applications completely scattered with side effects (this is a common case with Grid computational pipelines), which could not easily be tested using the more standard methods of unit testing or test cases. The technique is based on a new concept of datasets containing invocations and results of filtered calls. The framework hence significantly accelerates the development of new applications and computational pipelines for the Grid environment, and the efforts required for maintenance. An analysis of the impact of these solutions will be provided in this thesis. This Ph.D. work originated various publications in journals and conference proceedings as reported in the Appendix. Also, I orally presented my work at numerous international conferences related to Grid and bioinformatics.
Resumo:
Seaside is the open source framework of choice for developing sophisticated and dynamic web applications. Seaside uses the power of objects to master the web. With Seaside web applications is as simple as building desktop applications. Seaside lets you build highly dynamic and interactive web applications. Seaside supports agile development through interactive debugging and unit testing. Seaside is based on Smalltalk, a proven and robust language implemented by different vendors. Seaside is now available for all the major Smalltalk including Pharo, Squeak, GNU Smalltalk, Cincom Smalltalk, GemStone Smalltalk, and VA Smalltalk.
Resumo:
In an increasing number of applications (e.g., in embedded, real-time, or mobile systems) it is important or even essential to ensure conformance with respect to a specification expressing resource usages, such as execution time, memory, energy, or user-defined resources. In previous work we have presented a novel framework for data size-aware, static resource usage verification. Specifications can include both lower and upper bound resource usage functions. In order to statically check such specifications, both upper- and lower-bound resource usage functions (on input data sizes) approximating the actual resource usage of the program which are automatically inferred and compared against the specification. The outcome of the static checking of assertions can express intervals for the input data sizes such that a given specification can be proved for some intervals but disproved for others. After an overview of the approach in this paper we provide a number of novel contributions: we present a full formalization, and we report on and provide results from an implementation within the Ciao/CiaoPP framework (which provides a general, unified platform for static and run-time verification, as well as unit testing). We also generalize the checking of assertions to allow preconditions expressing intervals within which the input data size of a program is supposed to lie (i.e., intervals for which each assertion is applicable), and we extend the class of resource usage functions that can be checked.
Resumo:
We provide an overall description of the Ciao multiparadigm programming system emphasizing some of the novel aspects and motivations behind its design and implementation. An important aspect of Ciao is that, in addition to supporting logic programming (and, in particular, Prolog), it provides the programmer with a large number of useful features from different programming paradigms and styles and that the use of each of these features (including those of Prolog) can be turned on and off at will for each program module. Thus, a given module may be using, e.g., higher order functions and constraints, while another module may be using assignment, predicates, Prolog meta-programming, and concurrency. Furthermore, the language is designed to be extensible in a simple and modular way. Another important aspect of Ciao is its programming environment, which provides a powerful preprocessor (with an associated assertion language) capable of statically finding non-trivial bugs, verifying that programs comply with specifications, and performing many types of optimizations (including automatic parallelization). Such optimizations produce code that is highly competitive with other dynamic languages or, with the (experimental) optimizing compiler, even that of static languages, all while retaining the flexibility and interactive development of a dynamic language. This compilation architecture supports modularity and separate compilation throughout. The environment also includes a powerful autodocumenter and a unit testing framework, both closely integrated with the assertion system. The paper provides an informal overview of the language and program development environment. It aims at illustrating the design philosophy rather than at being exhaustive, which would be impossible in a single journal paper, pointing instead to previous Ciao literature.
Resumo:
Para entender el proyecto de una manera muy simplificada lo podríamos resumir de la siguiente forma: Se trata de una aplicación que permite a los usuarios imputar las horas de las tareas que realizan de una forma sencilla, y que los gestores de estos usuarios, mediante informes ejecutivos, puedan analizar las dedicaciones y costes de los proyectos que éstos gestionan. Además se dispondrá de pantallas para administrar todas las entidades que están implicadas en las imputaciones. Las imputaciones se realizarán agrupándolas por el concepto “Parte”. Los Partes dividen los meses en grupos de 10 días, así cada usuario tendrá que imputar las horas que realiza cada 10 días, enviando a su supervisor el parte para que este pueda revisarlo y analizar los resultados de las imputaciones a través de los informes. Vamos a resumir las entidades que intervienen en la aplicación y sus relaciones de la siguiente forma: - Los usuarios tendrán asignados una serie de cargos, los cuales definirán las posibles tareas que podrán realizar categorizadas en los conceptos Proceso y Subproceso. Un ejemplo de esta relación podría ser el cargo “Programador” podrá realizar tareas de tipo Proceso “Desarrollo” y tipos de Subproceso “Programación” y “Pruebas unitarias” - También se asignarán a los usuarios los proyectos en los que trabajan. Estos proyectos pertenecerán a una unidad (se podría equiparar el concepto unidad por ejemplo a clientes, departamentos, etc). - También se podrán asignar a los usuarios las peticiones concretas de proyectos en los que intervienen. Una petición podría ser una incidencia detectada en un proyecto, una mejora concreta en un proyecto de mantenimiento, un soporte realizado para arreglar unos datos incorrectos, etc. - A los usuarios se le asignarán unos costes que podrán ser distintos por periodos de tiempo con el fin de conocer el coste exacto de una hora realizada en la fecha en la que fue realizada. - A los usuarios se les asignará un Perfil de usuario. Este perfil de usuario definirá los permisos sobre los módulos disponibles de la herramienta. Habrá un permiso por cada entidad, dividiéndolos en Alta, Baja, Modificación y Consulta. Además de estos permisos habrá permisos especiales sobre módulos que no se refieran al manteniendo de entidades pero que sí requieran de un permiso especial para poder ejecutarse como por ejemplo poder ejecutar los informes de costes, poder realizar y consultar partes de otros usuarios además de los propios del usuario, etc. Los perfiles serán dinámicos. Se podrán crear tantos perfiles como se requieran, cada uno con los permisos que se le asignen. - Los usuarios imputarán las horas que realizan categorizando por tarea los siguientes conceptos: Proyecto, Petición (opcional), Proceso, Subproceso, Descripción de la tarea y horas invertidas en los días de la decena. La aplicación permite poder adaptarse a las necesidades de diseño de la organización que la utilice y pueden crearse tantas instancias de la aplicación como se necesiten, compartiendo ono la base de datos entre varias de las instancias, sin necesidad de duplicar el código en el servidor, lo que facilita el mantenimiento de la aplicación cuando se añaden mejoras y se solucionan incidencias. También facilita el poder vender licencias de uso de la aplicación a otras entidades teniendo una sola versión de la aplicación en la nube, lo que hace muy bajo el coste de la venta de licencias aumentando así los beneficios por venta. ABSTRACT To understand the project in a very simplified way we could summarize as follows: Its an application that allows users to charge the hours of tasks that they realize in a easy way, and that the managers of these users, by executive reports, can analyze dedications and costs of projects that they manage. Furthermore screens will be available to manage all entities that are involved in the charge of hours. The charge of hours will be grouped by the concept "Timesheet". The Timesheets divided the months in groups of 10 days, so each user will have to charge the hours every 10 days by sending his supervisor the thimesheet so that it can review it and analyze the results of the charges of hours by reports.Let's summarize the entities involved in the application and their relationships as follows: - Users will be assigned to one or more positions, which define the possible tasks that can perform categorized into concepts Process and Subprocess. An example of this relationship could be the position "Developer" may do tasks of process type "Development" and subprocess types "Programming" and "Unit Testing" - Users will also be assigned to projects in which they work. These projects belongs to a unit (Some possible examples of unit could be customers, departments, ...). - You can also assign users to specific requests for projects thar they are involved. A request could be an issue detected in a project, a concrete improvement in a maintenance project, a support made to fix some incorrect data, ... - Users will be assigned to one or more costs that may be different for periods of time in order to know the exact cost of an hour on the date on which it was made. - Users will be assigned to a User Profile. This user profile define the available permissions on modules of tool. There will be a permission for each entity, dividing them into Insert, Delete, Modify and Read. In addition to these permissions will be special permissions on modules that are not related to maintaining entities but if require special permission to execute such as to execute the cost reports, to make and read Timesheets of others users in addition to themselve user, etc. The profiles will be dynamic. We can create many profiles as we required, each with the permissions that are assigned. - Users charge the hours that they work categorizing per task the following: Project, Request (optional), Process, Subprocess, task description and the hours that they used in the ten days period. The application allows to adapt to the needs of design of the organization that use the application and allows create many instances of the application as needed, yes or not sharing the database among multiple instances without duplicating the code on the server, which facilitates maintenance of the application when improvements are added and incidents are resolved. It also facilitates to sell licenses to use the application to other organizations having a single version of the application in the cloud, making it very low cost from the sale of licenses and increasing profits per sale.
Resumo:
While object-oriented programming offers great solutions for today's software developers, this success has created difficult problems in class documentation and testing. In Java, two tools provide assistance: Javadoc allows class interface documentation to be embedded as code comments and JUnit supports unit testing by providing assert constructs and a test framework. This paper describes JUnitDoc, an integration of Javadoc and JUnit, which provides better support for class documentation and testing. With JUnitDoc, test cases are embedded in Javadoc comments and used as both examples for documentation and test cases for quality assurance. JUnitDoc extracts the test cases for use in HTML files serving as class documentation and in JUnit drivers for class testing. To address the difficult problem of testing inheritance hierarchies, JUnitDoc provides a novel solution in the form of a parallel test hierarchy. A small controlled experiment compares the readability of JUnitDoc documentation to formal documentation written in Object-Z. Copyright (c) 2005 John Wiley & Sons, Ltd.
Resumo:
This study aimed to build a virtual learning environment for application of the nursing process based on the NANDA-I, NOC, NIC and ICNP® . Faced with problems related to learning of the nursing process and classifications, there is an urgent need to develop innovative teaching resources that modify the relationship between students and teachers. The methodology was based on the steps inception, development, construction and transition, and the software development process Rational Process Unifield. The team involved in the development of this environment was composed by researchers and students of The Care and Epidemiological Practice in Health and Nursing and Group of the Software Engineering curse of the Federal University Rio Grande do Norte, with the participation of the Lisbon and Porto Schools of Nursing, in Portugal. In the inception stage the inter research communication was in order to define the functions, features and tools for the construction process. In the preparation, step the planning and modeling occurred, which resulted in the creation of a diagram and a architectural drawings that specify the features and functionality of the software. The development, unit testing and integrated in interfaces of the modules and areas (administrator, teacher, student, and construction of the NP). Then the transition step was performed, which showed complete and functioning system, as well as the training and use by researchers with its use in practice. In conclusion, this study allowed for the planning and the construction of an educational technology, and it is expected that its implementation will trigger a substantial change in the learning of the nursing process and classifications, with the student being active agent of the learning process. Later, an assessment will be made of functional performance, which will enable the software development, with a feedback, correction of defects and necessary changes. It is believed that the software increment after the reviews, this tool grow further and help insert this methodology and every language under the educational and health institutions, promoting paradigmatic desired change by nursing.
Resumo:
Les logiciels actuels sont de grandes tailles, complexes et critiques. Le besoin de qualité exige beaucoup de tests, ce qui consomme de grandes quantités de ressources durant le développement et la maintenance de ces systèmes. Différentes techniques permettent de réduire les coûts liés aux activités de test. Notre travail s’inscrit dans ce cadre, est a pour objectif d’orienter l’effort de test vers les composants logiciels les plus à risque à l’aide de certains attributs du code source. À travers plusieurs démarches empiriques menées sur de grands logiciels open source, développés avec la technologie orientée objet, nous avons identifié et étudié les métriques qui caractérisent l’effort de test unitaire sous certains angles. Nous avons aussi étudié les liens entre cet effort de test et les métriques des classes logicielles en incluant les indicateurs de qualité. Les indicateurs de qualité sont une métrique synthétique, que nous avons introduite dans nos travaux antérieurs, qui capture le flux de contrôle ainsi que différentes caractéristiques du logiciel. Nous avons exploré plusieurs techniques permettant d’orienter l’effort de test vers des composants à risque à partir de ces attributs de code source, en utilisant des algorithmes d’apprentissage automatique. En regroupant les métriques logicielles en familles, nous avons proposé une approche basée sur l’analyse du risque des classes logicielles. Les résultats que nous avons obtenus montrent les liens entre l’effort de test unitaire et les attributs de code source incluant les indicateurs de qualité, et suggèrent la possibilité d’orienter l’effort de test à l’aide des métriques.
Resumo:
The establishment of support platforms for the development of a new culture in design education, in order to achieve both research exploitation and its results, as an approach to the industrial community, challenges higher education institutions to rethink their functioning, divided between investigation on their own initiative or on demand, and its usefulness / practical application. At the same time, through design education, how can they be the engine that aggregates all these frequently antagonistic interests? Polytechnic institutes are predisposed to collaboration and interdisciplinarity. In our course of Technology and Design of Furniture, the availability of a production unit, testing laboratories, and expertise in engineering, design and marketing, encourage the development of a holistic project. In order to develop such knowledge, we adapt three important ways of thinking in designing interactions influenced by the traditional approach, namely, 1) identifying and understanding a design problem, i.e. a market need, 2) defining the design process and knowing what can be used for design education, i.e. opportunities for design education, and 3) sustainability of this framework and design projects' alignment with education in the same field. We explain our approach by arguing from the academicenterprise experiences perspective. This concept is proposed as a way to achieve those three ways of thinking in design education. Then, a set of interaction attributes is defined to explain how engineering and product design education can enhance meaningful relations with manufacturers, stakeholders and society in general. A final discussion is presented with the implications and benefits of this approach. The results suggest that through academic-enterprise partnerships in design, several goals such as students' motivation, product design innovation and potential for knowledge transfer to industries can be achieved.
Resumo:
Recently, massive open online courses (MOOCs) have been offering a new online approach in the field of distance learning and online education. A typical MOOC course consists of video lectures, reading material and easily accessible tests for students. For a computer programming course, it is important to provide interactive, dynamic, online coding exercises and more complex programming assignments for learners. It is expedient for the students to receive prompt feedback on their coding submissions. Although MOOC automated programme evaluation subsystem is capable of assessing source programme files that are in learning management systems, in MOOC systems there is a grader that is responsible for evaluating students’ assignments with the result that course staff would be required to assess thousands of programmes submitted by the participants of the course without the benefit of an automatic grader. This paper presents a new concept for grading programming submissions of students and improved techniques based on the Java unit testing framework that enables automatic grading of code chunks. Some examples are also given such as the creation of unique exercises by dynamically generating the parameters of the assignment in a MOOC programming course combined with the kind of coding style recognition to teach coding standards.
Resumo:
OBJECTIVE To analyze the clinical and laboratory characteristics of HIV-infected individuals upon admission to a reference health care center.METHODS This cross-sectional study was conducted between 1999 and 2010 on 527 individuals with confirmed serological diagnosis of HIV infection who were enrolled in an outpatient health care service in Santarém, PA, Northern Brazil. Data were collected from medical records and included the reason for HIV testing, clinical status, and count of peripheral CD4+ T lymphocytes upon enrollment. The data were divided into three groups, according to the patient’s year of admission – P1 (1999-2002), P2 (2003-2006), and P3 (2007-2010) – for comparative analysis of the variables of interest.RESULTS In the study group, 62.0% of the patients were assigned to the P3 group. The reason for undergoing HIV testing differed between genders. In the male population, most tests were conducted because of the presence of symptoms suggesting infection. Among women, tests were the result of knowledge of the partner’s seropositive status in groups P1 and P2. Higher proportion of women undergoing testing because of symptoms of HIV/AIDS infection abolished the difference between genders in the most recent period. A higher percentage of patients enrolling at a more advanced stage of the disease was observed in P3.CONCLUSIONS Despite the increased awareness of the number of HIV/AIDS cases, these patients have identified their serological status late and were admitted to health care units with active disease. The HIV/AIDS epidemic in Pará presents specificities in its progression that indicate the complex characteristics of the epidemic in the Northern region of Brazil and across the country.
Resumo:
This paper studies testing for a unit root for large n and T panels in which the cross-sectional units are correlated. To model this cross-sectional correlation, we assume that the data is generated by an unknown number of unobservable common factors. We propose unit root tests in this environment and derive their (Gaussian) asymptotic distribution under the null hypothesis of a unit root and local alternatives. We show that these tests have significant asymptotic power when the model has no incidental trends. However, when there are incidental trends in the model and it is necessary to remove heterogeneous deterministic components, we show that these tests have no power against the same local alternatives. Through Monte Carlo simulations, we provide evidence on the finite sample properties of these new tests.