956 resultados para Unit testing
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:
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.
Resumo:
Most panel unit root tests are designed to test the joint null hypothesis of a unit root for each individual series in a panel. After a rejection, it will often be of interest to identify which series can be deemed to be stationary and which series can be deemed nonstationary. Researchers will sometimes carry out this classification on the basis of n individual (univariate) unit root tests based on some ad hoc significance level. In this paper, we demonstrate how to use the false discovery rate (FDR) in evaluating I(1)=I(0) classifications based on individual unit root tests when the size of the cross section (n) and time series (T) dimensions are large. We report results from a simulation experiment and illustrate the methods on two data sets.
Resumo:
This paper considers the effect of GARCH errors on the tests proposed byPerron (1997) for a unit root in the presence of a structural break. We assessthe impact of degeneracy and integratedness of the conditional varianceindividually and find that, apart from in the limit, the testing procedure isinsensitive to the degree of degeneracy but does exhibit an increasingover-sizing as the process becomes more integrated. When we consider the GARCHspecifications that we are likely to encounter in empirical research, we findthat the Perron tests are reasonably robust to the presence of GARCH and donot suffer from severe over-or under-rejection of a correct null hypothesis.
Resumo:
Many key economic and financial series are bounded either by construction or through policy controls. Conventional unit root tests are potentially unreliable in the presence of bounds, since they tend to over-reject the null hypothesis of a unit root, even asymptotically. So far, very little work has been undertaken to develop unit root tests which can be applied to bounded time series. In this paper we address this gap in the literature by proposing unit root tests which are valid in the presence of bounds. We present new augmented Dickey–Fuller type tests as well as new versions of the modified ‘M’ tests developed by Ng and Perron [Ng, S., Perron, P., 2001. LAG length selection and the construction of unit root tests with good size and power. Econometrica 69, 1519–1554] and demonstrate how these tests, combined with a simulation-based method to retrieve the relevant critical values, make it possible to control size asymptotically. A Monte Carlo study suggests that the proposed tests perform well in finite samples. Moreover, the tests outperform the Phillips–Perron type tests originally proposed in Cavaliere [Cavaliere, G., 2005. Limited time series with a unit root. Econometric Theory 21, 907–945]. An illustrative application to U.S. interest rate data is provided
Resumo:
This paper generalizes the HEGY-type test to detect seasonal unit roots in data at any frequency, based on the seasonal unit root tests in univariate time series by Hylleberg, Engle, Granger and Yoo (1990). We introduce the seasonal unit roots at first, and then derive the mechanism of the HEGY-type test for data with any frequency. Thereafter we provide the asymptotic distributions of our test statistics when different test regressions are employed. We find that the F-statistics for testing conjugation unit roots have the same asymptotic distributions. Then we compute the finite-sample and asymptotic critical values for daily and hourly data by a Monte Carlo method. The power and size properties of our test for hourly data is investigated, and we find that including lag augmentations in auxiliary regression without lag elimination have the smallest size distortion and tests with seasonal dummies included in auxiliary regression have more power than the tests without seasonal dummies. At last we apply the our test to hourly wind power production data in Sweden and shows there are no seasonal unit roots in the series.