ARCHITECTURE OF THE PROASENSE DEVELOPMENT ENVIRONMENT

Size: px
Start display at page:

Download "ARCHITECTURE OF THE PROASENSE DEVELOPMENT ENVIRONMENT"

Transcription

1 ARCHITECTURE OF THE PROASENSE DEVELOPMENT ENVIRONMENT Deliverable nº: D6.1 EC-GA Number: Project full title: The Proactive Sensing Enterprise

2 Work Package: Type of document: WP6 Deliverable Date: 28/10/2014 Grant Agreement No Partners: Responsible: SINTEF, FZI, ICCS, JSI, UNINOVA, NISSATECH, HSS, MHWIRTH NISSA Title: D6.1. Architecture of the ProaSense development environment Version: 1 Page: 0 / 29 Deliverable D6.1 Architecture of the ProaSense development environment DUE DELIVERY DATE: 31/10/2014 ACTUAL DELIVERY DATE:

3 ProaSense setup Page 1

4 Document History Vers. Issue Date Content and changes Author ToC Aleksandar Stojadinovic Deliverable ready for internal review /10/2014 Addressed reviewers comments. Final formatting and layout. Aleksandar Stojadinovic Aleksandar Stojadinovic Document Authors Partners Nissatech Contributors Aleksandar Stojadinovic, Aleksandar Stojanovic, Dusan Kostic, Boban Stajic Dissemination level: Document Approvers Partners SINTEF FZI Approvers Brian Elvesæter Dominik Riemer ProaSense setup Page 2

5 ProaSense setup Page 3

6 Executive Summary Deliverable 6.1 reports about the activities undertaken to fulfil the requirements from task 6.1, setting up the supporting website for integration and validation activities, investigating technologies for continuous integration activities and setting up a physical infrastructure. The first part of the deliverable refers to the need for supporting services and websites for later development, programming, integration and reporting tasks. The current commercial and open source offer of tools is analysed and conclusions have been drawn about which system to choose. It has been strived to cover most of the supporting requirements by least as effort and introducing as few different websites as possible. The system chosen, GitLab, is covering the crucial features such as code repository, issue tracking and wiki. Installation procedures, permissions and usage are covered in this part. The second part of the deliverable addresses the testing policies and tools. Testing is divided into three types, unit testing, integration testing and end-user testing. The most challenging is integration testing and most attention is dedicated to that. The third part of the deliverable addresses the issues of integration in large systems developed by different teams. We have defined the roles of continuous integration and which tools to use for this purpose. ProaSense Setup Page 4

7 TABLE OF CONTENTS 1. Introduction PURPOSE AND SCOPE STRUCTURE OF THE DELIVERABLE Code and issue management INTRODUCTION GITLAB INSTALLATION AND SETUP PERMISSION LEVELS AND ROLES ACCOUNTS CODE REPOSITORY GIT BRANCHING MODEL REPOSITORY SSH ACCESS ISSUE TRACKING ISSUE CATEGORIES ISSUE RESPONSIBLES WIKI WIKI PERMISSIONS Testing UNIT TESTING TESTING TOOLS INTEGRATION TESTING TESTING TOOLS END-USER TESTING Integration CONTINUOUS INTEGRATION AUTOMATED TESTING PHYSICAL SERVER VIRTUAL MACHINES AND PROXMOX Conclusion ProaSense Setup Page 5

8 List of figures Figure 1 - GitLab landing screen Figure 2 - GitLab project roles Figure 3 - GitLab group roles Figure 4 - Partners user accounts Figure 5 - GitLab protocol selector Figure 6 - Control panel SSH section Figure 7 - GitLab issues panel Figure 8 - Example of creating an issue Figure 9 - Jenkins management screenshot Figure 10 - Integration plan ProaSense Setup Page 6

9 List of tables Table 1 - Git and SVN feature comparison Table 2 - Creating a GitLab user Table 3 - Installing GitLab Table 4 - GitLab configuration addition Table 5 - GitLab startup Table 6 - SSH key generation command Table 7 - Issue label explanation ProaSense Setup Page 7

10 Acronyms Acronym VCS SVN CVS CI VCS CE WP SUT DOC JVM XP Explanation Version Control System Subversion Concurrent Versions System Continuous integration Version Control System Community Edition Work Package System under test Dependant on component (in context with SUT) Java Virtual Machine Extreme programming ProaSense Setup Page 8

11 1. Introduction 1.1 PURPOSE AND SCOPE In this deliverable we present the work performed in the first of five tasks of work package 6 of the ProaSense project. The main objectives of the work package are integration plans and integration execution, deployment activities, UI development as well as testing strategies, frameworks and activities supporting the software engineering process. Task 6.1 ProaSense setup is one of the first steps of the software development process. This document describes the research and deployment of a support website for code repositories, wiki, and issue tracking to be used internally by the partners. We have analysed multiple solutions and combinations and decided on a system called GitLab 1 version 6.92., which is described in Chapter 2. Issue tracking categories are also defined in this task. Testing frameworks and strategies are also researched and services are set up as part of this task, as well as continuous integration infrastructure. This is done to minimise the chance of errors in usually manual tasks and diminish the risks of failure in repetitive jobs. After analysing the currently available systems we have chosen SonarQube 2 for code quality assurance and Jenkins 3 as a continuous integration server. Infrastructure deployed for these supporting components will be used for integration in later phases of the project where component integration is scheduled, and a description of the infrastructure is shown in Chapter 4. The chosen technologies used for executing the task should be proven and used successfully in other projects, products or organisations. 1.2 STRUCTURE OF THE DELIVERABLE The deliverable is structured as follows: Chapter 2 first discusses the need and requirements for code management tools and issue trackers in a distributed development team. It provides an analysis of the current tools available for development support services and websites. Permissions and roles in the supporting systems and other policies, such as code branching are also covered by the analysis ProaSense Setup Page 9

12 Section 3 presents the need for testing and the foundation of testing in software development. Also, different levels or testing are described and they are positioned within the work packages. Section 4 discusses the need of continuous integration and other automation solutions that software developer could use to minimize the chance of error. This includes automatic deployment and automated testing procedures. The infrastructure that will be used to deploy some or all components of the project is also described. 2. Code and issue management 2.1 INTRODUCTION Code control and issue tracking is important for any project. The solutions applied to ProaSense are described in this chapter. Software controlling a repository and code sharing is called a version control system (VCS). The usual choice of VCS falls between centralized and more modern distributed systems. Typical representatives of each group are CVS, Apache Subversion (SVN) from the first, and GIT from the second. Although centralized systems are still more popular, largely due to legacy reasons, distributed systems have multiple advantages that make them a better choice for newer projects. The distributed nature gives the developers more flexibility in their own code management process (not all code is or should be pushed to the central, shared repository) and the practice generally keeps the main codebase cleaner. Also branching is preferable in an environment where multiple development teams work on multiple features. Keeping code changes in branches and controlling the merges minimizes chances of integration errors. Since the programmer has the choice to use local branches, he may also choose at which point he/she should push the code to the central repository. A connection to a central server is not needed for the programmer to use all of the features of the VCS (i.e. local branches). The disadvantage of such systems is a slightly more complicated workflow and they are more complicated to use. Table 1 - Git and SVN feature comparison Feature Git SVN Performance Generally faster than SVN Generally less Checkout method Clone entire repository and crate a Checkout a part of a repository mirror Space consumption Smaller repositories Larger repositories Locality Distributed Centralized ProaSense Setup Page 10

13 History Each branch carries its history Branches carry only changes Clients & UI s Younger, less mature (but usable) More of them, more mature Branching Regular way of work On rare occasions, introduces overhead After an analysis of the most important features of both systems (shown in Table 1) we have chosen GIT as a version control system. Nevertheless, this is only an engine, without a specific UI and user friendly options for creating users, managing branches, looking up accesses to the code base and differentiating the previous and current versions on the central repository. For this purpose a shell application is necessary, for example a system like GitHub 4. The shell should be deployed on a selfhosted server, so cloud solutions like BitBucket 5 cannot be used. GitHub has private settings for its projects but it is costly and a self-deployed version is very expensive. Three free solutions are available: GitLab 6, Gitorious 7 and Gogs 8. Gogs is still in beta phase and not considered stable enough for production use, especially not in a long running project. Gitorious is a stable project, however, lacks on features. It is missing an issue tracking system and does not support continuous integration (CI) tools (see Section 4.1). Also the development of GitLab is more active than Gitorious, which means possible bugs or faults with the software can be actively resolved. While researching GitLab it is noticed that it has issue tracking, wiki and CI integration, which is already needed for our project. Also, the recent financial injections and huge companies using it ensure its development will be stable in the future so GitLab Community Edition has been chosen. 2.2 GITLAB GitLab Community Edition (CE) is open source software providing the possibility to collaborate on code, e.g., create projects and repositories, manage access and do code reviews. GitLab CE is an onpremises software that you can install and use on your server ProaSense Setup Page 11

14 Features: Completely free and open source (MIT license 9 ) Unlimited users, collaborators and repositories Keeps code secure on private server Manage repositories, users and access permissions Perform code reviews with merge requests Extended permission system with 5 access levels and branch protection Line comments and discussions in merge requests and diffs Each project has a wiki backed up by a separate Git repository INSTALLATION AND SETUP In this chapter we will describe the process of installing the GitLab VCS. A virtual machine has been prepared with: 2 x 2GHz Intel Xeon CPUs 2GB of RAM 20GB Hard drive CentOS Linux After installing the operating system and setting up the network interfaces, a user is created for the GitLab (Table 2). useradd Gitlab su Gitlab passwd <password> Table 2 - Creating a GitLab user Next, GitLab can be installed. A number of official installation scripts are ready for several popular operating systems, currently Ubuntu, CentOs and Debian. A script for CentOs is used, shown in Table 3. Table 3 - Installing GitLab curl -O _omnibus-1.el6.x86_64.rpm sudo yum install openssh-server sudo yum install postfix sudo service postfix start sudo chkconfig postfix on sudo rpm -i Gitlab-7.3.2_omnibus-1.el6.x86_64.rpm ProaSense Setup Page 12

15 GitLab Configuration is located in the file /etc/gitlab/gitlab.rb. A proper hostname and account should be configured for the system to work properly. The configuration added to the file is shown in Table 4. Table 4 - GitLab configuration addition Gitlab_rails['gitlab_host'] = "Gitlab.nissatech.com" Gitlab_rails['gitlab_port'] = 80 Gitlab_rails['smtp_enable'] = true Gitlab_rails['smtp_address'] = <classified> Gitlab_rails['smtp_port'] = 465 Gitlab_rails['smtp_user_name'] = "noreply@nissatech.com" Gitlab_rails['smtp_password'] = <classified> Gitlab_rails['smtp_domain'] = "nissatech.com" Gitlab_rails['smtp_authentication'] = "login" Gitlab_rails['smtp_enable_starttls_auto'] = false Gitlab_rails['gitlab_ _from'] = "noreply@nissatech.com" Gitlab_rails['gitlab_support_ '] = "info@nissatech.com" After that the system can be started with the commands from Table 5. sudo Gitlab-ctl reconfigure sudo lokkit -s http -s ssh Table 5 - GitLab startup On first login, a screen like the one in Figure 1 can be seen. GitLab is available at ProaSense Setup Page 13

16 Figure 1 - GitLab landing screen PERMISSION LEVELS AND ROLES Projects on GitLab are divided into groups. Groups have independent settings in terms of permissions and projects in these groups have the same root namespace, as well as the inherited permissions. However, permissions can be overridden per project. User permissions are set up by assigning a user with a role. A user can have only those permissions that a role carries and the role settings cannot be overridden in any way. That means we cannot assign a user with a role Developer and then add just a few permissions from the Master role. Permissions each of the roles has on GitLab are shown in Figure 2, on the project level, and Figure 3 for the group level. ProaSense Setup Page 14

17 Figure 2 - GitLab project roles Figure 3 - GitLab group roles GitLab projects are created for each software project. For each Java or Python project, for example, a GitLab project is set up with its name. The URI for pushing/pulling/cloning the code is automatically generated. ProaSense Setup Page 15

18 All of the projects are put in one group, ProaSense FP7. Other groups can be created by the administrators on partner request or if the original ProaSense FP7 group gets too large for managing. Reviewers and the project officer will have the Reporter role since they will have no benefit of the remaining privileges from Figure 2 - GitLab project roles ACCOUNTS Partners have their accounts created by contacting any of the GitLab administrators. An account is created and a link for verification and password setup is sent via . Partners provided a list of accounts and desired roles themselves. Figure 4 - Partners user accounts ProaSense Setup Page 16

19 2.3 CODE REPOSITORY GIT The most important feature provided by GitLab is the shell over the central Git repository. Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency BRANCHING MODEL The development model is greatly inspired by existing models used in practice. The central repo holds two main branches with an infinite lifetime: master and develop (or just dev) The master branch is a standard way of calling the main branch which always reflects the current production-ready state of the code, as soon as it is production-ready or the latest state of development when there is no production ready code. Parallel to the master branch, another branch is called develop, sometimes later than the master branch. We consider the remote develop branch to be the branch where the source code always reflects a state with the latest delivered development changes for the next release. It is also called the integration branch. Usually automatic build systems make builds from this location. When the source code in the develop branch reaches a stable point and is ready to be released, all of the changes should be merged back into master somehow and then tagged with a release number. Therefore, each time when changes are merged back into master, this is a new production release by definition. Next to the main branches master and develop, different development models use supporting branches to aid parallel development between teams preparing for production releases and to assist in quickly fixing live production problems. Unlike the main branches, these branches always have a limited lifetime, since they will be removed eventually REPOSITORY SSH ACCESS Git can support multiple protocols for code access, for security reasons the GitLab is setup only to use SSH access. That means setting up the right SSH keys for client machines for access. Only the GitLab side of the setup can be explained since the developers must set up their own IDE or Git client for functioning with a Git SSH connection, and there is a huge number of IDEs and clients. ProaSense Setup Page 17

20 Figure 5 - GitLab protocol selector It is important for the protocol selector to be on the SSH option and use the generated URI to access the code, like in Figure 5. Clients can generate their SSH key pair most easily in any Linux or Unix-based operative system using a command from Table 6. Windows users may use a tool like PuttyGen 11 for the same purpose. Table 6 - SSH key generation command ssh-keygen -t rsa -C "aleksandar.stojadinovic@nissatech.com" Upon generating the SSH keys developers should add the public key to their GitLab control panel. The key can be added in the control panel under the SSH Keys section, after clicking on the Add SSH Key button. Figure 6 - Control panel SSH section 2.4 ISSUE TRACKING An issue tracking system (or support ticket, request management or incident ticket system) is a computer software system in charge of managing and maintaining lists of issues in order to monitor their fixing or resolution. A support ticket should include vital information for the account involved and the issue encountered. The issue tracking system is a valuable source of knowledge about the most common points of failure, recurring issues and experience. Using an issue tracking system is one of the foundations of organising software projects with multiple teams and developers ProaSense Setup Page 18

21 Issue trackers can be very advanced (and very expensive as a matter of fact) and complete companies have been formed only to build and maintain them. For the ProaSense project we do not need advanced systems since there is not too many developers and the client (or reviewing) group is limited in size, so the integrated GitLab issue tracking utilities are good enough to serve the purpose ISSUE CATEGORIES The GitLab system does not differentiate between different issue types and categories (is it a request like a new visualisation graph is needed or a bug) but it utilises a labelling system so each issue can be closely described matching its purpose and criticality. The issue screen for one project (the event replay utility from D1.3 Data formats and protocols, to be precise) is shown in Figure 7. By clicking on the New Issue button the user will be presented with a screen shown in Figure 8. Some of the labels are automatically generated and a subset of them will be used for tagging new issues. The purpose of each is described in Table 7 - Issue label explanation. Table 7 - Issue label explanation Label Bug Feature Enhancement Suggestion Critical Confirmed Support Meaning The reporter has discovered a bug (or something she/he believes to be a faulty behaviour). The reporter is requesting a new feature The reporter wishes an existing feature enhanced A suggestion for the development team A complementing label to any other, the issue must be resolved as soon as possible A complementing label to any other, used by a developer to mark the issue as confirmed/reproduced The reporter has not found any adverse behaviour but needs technical support ProaSense Setup Page 19

22 Figure 7 - GitLab issues panel Figure 8 - Example of creating an issue The issue consists of a title, a textual description, assignment and labels. The title should be a very short but precise explanation of the issue ProaSense Setup Page 20

23 The description should hold a detailed explanation of what is wrong with the component or what is requested and (if it is a bug) a mandatory explanation how it is possible to reproduce the bug ISSUE RESPONSIBLES Each issue can be assigned to a developer. Unrelated to whom it is assigned to, it will be visible in the issues panel for the project and in the group. If it is not known who is the responsible for that exact functionality, the bug should be assigned to the component responsible. In case the responsible is not stated then it should be assigned to the WP responsible. If that is also unknown, assign the issue to Boban Stajic (boban.stajic@nissatech.com) or Aleksandar Stojadinovic (aleksandar.stojadinovic@nissatech.com). When the issue is assigned or reassigned the developer shall get an notification of it. Nevertheless, it is highly recommended for each development team to put an issue responsible in the README.md file in the root of the project or in the project description, so it can be easily visible on the project page. 2.5 WIKI The GitLab system also incorporates a wiki module for documentation, descriptions or any other type of document. A wiki is a rich web application which allows people to create content in a collaborative manner with other participants. In a typical wiki, content is created by writing using a simplified markup language or a rich-text editor. Gitlab wiki uses an extension of the Markdown 12 syntax, called the Gitlab flavoured 13 Markdown. The reference to it can be found in the Help 14 section of Gitlab. It does not contain a rich-text editor, so the markup must be manually entered. Partners are expected to describe their components on the wiki in a way that could help other partners using or integrating them. The description should use standardized ways of software development, i.e., UML diagrams, block and flow diagrams etc ProaSense Setup Page 21

24 2.5.1 WIKI PERMISSIONS Recalling on Figure 2 we can see that only roles of Developer, Master and Owner can manage wiki articles. With this in mind, technical partners should designate members of their teams with developer roles to create wiki content. All members of a project can read the wiki articles. ProaSense Setup Page 22

25 3. Testing Before proceeding we must define a term call System Under Test (SUT). This is an often used term in literature and used when describing tests, testing procedures and generally in any topic related to testing in software engineering. With SUT we describe a part of the system that is being tested in a procedure. Depending on the Testing type, SUT may refer to a single class or to a whole application. Also the term DOC, or Depended On Component can be found. DOC marks any entity that is required by an SUT to function. Most of the time a DOC is of the same granularity as the SUT, e.g. if the SUT is a class, then it uses other classes, if it is a module, then it collaborates with other modules. As with granularity, test can cover a method of a class, or multiple methods, or the complete functionality of one class. Those types of tests fall under the category of unit tests and the SUT is usually a class. In this phase, object mocking is more regular and the SUT is monitored as a independent entity in isolation from other components. As tests grow and incorporate more classes and intercommunication between them we are getting into the zone of integration tests. Integration tests are more comprehensive and often test a part of system, or complete functionality, the correctness of the output based on the inputs and corner-cases and they are rather looking for features that are not working, where unit tests are rather confirming something is working. Integration tests may vary in integration scope between integrating two classes to integrating complete systems. End-user testing is a separate testing type, and will mostly be covered in WP UNIT TESTING Unit testing is a fundamental part of software development and the first step in finding unobvious bugs. Writing easily testable code leads to good, decoupled architecture design since architecture with low decoupling usually proves itself as a bad design. Unit tests are mostly important for the programmer in charge of the developing component and its development team. Automatic build tools and continuous integration servers may use unit tests to choose whether a build should be executed or not, because recent changes may have affected correctness of the software by some side effect. Unit testing procedures will be carried out by technical partners on their own components in the scope of WP2-WP5. ProaSense Setup Page 23

26 3.1.1 TESTING TOOLS Unit testing puts lower level systems to testing. That is the reason a plethora of testing tools is available for different programming languages, frameworks and with different features. Based on an inquiry to the technical partners a list of proposed unit testing tools is gathered: Java/JVM 15 : TestNG 16, JUnit 17, ScalaTest 18, Clojure 19 integrated unit tests Node.js: node-unit 20 C++: xunit++ 21, googletest 22 Mocking tools: Mockito 23 All tools are free to use in commercial environments INTEGRATION TESTING Integration testing is the most challenging part of the testing process in the ProaSense project. Integration tests in ProaSense should test integration between different components. This is underlined by the fact that integration testing cannot be defined end-to-end because each project lives a separate life and has its own integration issues. To recall, integration testing is a testing process which tests complete module functionalities, communication between modules, and aims to find faults in the system functioning. In ProaSense integration testing will be applied on multiple components and communication between them and the correctness of the result. Since the middleware used will be a broker or a similar pub/sub component which most of the components will be using, communication can be easily monitored on certain topics or queues. This allows us to monitor the communication correctness itself. Using the same mechanism we can also look upon the data that is being transferred and check the payload. A challenging part of this testing procedure is the asynchronous nature of the components and the testing will have to await the messages in the right sequence. Web services would have to be tested in a black box manner or in combination with a database (or databases) the service is interacting with to prove its proper functioning ProaSense Setup Page 24

27 However, parallel development may cause issues with components not being available at the same and the DOC s of the SUT s are not ready. This can be solved in two ways, the big bang testing model or the incremental testing model. In the big bang testing model the system is being tested only when all of the components are finished and everything is almost production ready. This has its own issues because this does not aid reusability and in case of peculiar errors it is hard to find the root cause. On the other hand, incremental analysis proposes a model where components are tested as soon as they are ready and available. If component X is finished but depends on a component Y which is not, the component Y will be replaced with a stub with the same interface and a simulated behaviour known in advanced, so component X can be tested without the risk of Y being faulty. An alternative to the incremental approach is the bottom-up approach, but it is not always possible to implement it. In this approach the first components to be tested are the lowest level ones which do not depend upon any component. If lower level components can only be tested when integrated in another component, than a simulating component called a driver is created which has the interface of the final component it mimics, but its only purpose is to invoke its dependencies and therefore test them with predefined sets of data TESTING TOOLS Strange as it may seem, there are no popular tools explicitly declared as end-to-end integration testing tools. Reason for this may be the overall divergence of big systems implemented with multiple integration techniques so it is hard to create a tool which fits all needs. JUnit has been used much earlier; however it is an old tool which is less regularly updated than TestNG. The most popular unit testing tools are also being used for creating integration tests. Since ProaSense is mainly being developed in technologies based on the JVM, TestNG has promoted itself as a tool capable for integration testing, as well as unit tests. 3.2 END-USER TESTING End-user testing, or user acceptance testing, consists of verifying that a software solution satisfies the user. It is not considered system testing in term that it does not look for bugs or stability directly, but rather is there to ensure that the solution will work for the user, i.e., test that the user accepts the solution in the state and condition presented to the user. This is often equivalent to beta testing, a phase where no more innovations are added. The project is only tuned in that manner that it complies with the requirements of the user, while the product has coarsely been developed in ProaSense Setup Page 25

28 accordance with them in previous phases. Users of the system perform tests in line with what would occur in real life scenarios. This testing should be undertaken by a domain expert from the use-case partners, i.e. MHWirth and Hella Saturnus. The requirements to which the ProaSense system will be compared to are developed in work package 7, along with the evaluation technique. The UAT acts as a final verification of the required business functionality and proper functioning of the system, emulating real-world usage conditions on behalf of the consuming clients (Hella and MHWirth). If the software works as required and without issues during normal use, one can reasonably extrapolate the same level of stability in production. User tests, usually performed by clients or by end-users, do not normally focus on identifying simple problems such as spelling errors and cosmetic problems, nor showstopper defects, such as software crashes; testers and developers previously identify and fix these issues during earlier unit testing, integration testing, and system testing phases. As well as developing the requirements, the end-user testing will also occur in WP7 in two iterations and will be done by end-user partners. ProaSense Setup Page 26

29 4. Integration 4.1 CONTINUOUS INTEGRATION Continuous integration (CI) is a software engineering practice of merging all developer working copies with a shared mainline several times a day or on certain hooks. It was adopted as part of extreme programming (XP), which did advocate multiple integrations a day, perhaps as many as tens a day. The main aim of CI is to prevent integration problems, referred to as "integration hell" in early descriptions of XP. CI was originally intended to be used in combination with automated unit tests written through the practices of test-driven development. Initially this was conceived of as running all unit tests in the developer's local environment and verifying they all passed before committing to the mainline. This helps avoid one developer's work in progress breaking another developer's copy and reducing the chance of repetitive tasks. If necessary, partially complete features can be disabled before committing using feature toggles. Modern applications of the concept introduced build servers, which automatically run the tests or scripts periodically or on commit hooks. Today, many organisations have adopted CI without adopting the extreme programming paradigm. Organisations using CI typically use a build server to implement continuous processes of applying quality control in general small pieces of effort, applied frequently. In addition to running the unit and integration tests, such processes run additional static and dynamic tests, measure and profile performance, extract and format documentation from the source code and facilitate manual QA processes. This continuous application of quality control aims to improve the quality of software, and to reduce the time taken to deliver it, by replacing the traditional practice of applying quality control after completing all development. This is very similar to the original idea of integrating more frequently to make integration easier, only applied to QA processes. For the ProaSense project we have selected Jenkins 24 continuous integration server, whose management screen is shown in Figure 9. Some of the partners already use it in their everyday work so there will be no overhead with introducing it into the project. It supports a wide range of 24 ProaSense Setup Page 27

30 languages, IDE s or platforms 25 and, based on the survey filled out by the partners, it is versatile enough to support the partner s needs. Figure 9 - Jenkins management screenshot AUTOMATED TESTING Along with Jenkins CI server we have chosen to install a tool called SonarQube which is a QA management, web-based application. It is useful as a supplement to using Jenkins CI with its advanced dashboard which can track different metrics of code quality or test results. Also it can apply different analytics or code coverage tools to give a high-level overview of the code. 4.2 PHYSICAL SERVER Two machines each with four Intel Xeon i5 octa-core processors, 160GB of RAM and 3TB of storage space have been dedicated for the development purposes of ProaSense. These resources are being utilized by creating para-virtualized machines with hypervisor software called Proxmox ProaSense Setup Page 28

31 4.3 VIRTUAL MACHINES AND PROXMOX The machines mentioned in section 4.2 are utilized via virtual machines. The virtual machines are level 1 virtualized (para-virtualized, bare-bone virtualized) which means that they use the operative system kernel of the host hypervisor (Proxmox has a Linux kernel) and provide services to applications from that kernel, not their own. That leaves a much smaller memory, disk and CPU footprint and overhead per virtual machine. Partners do not need to have any contact with the virtualization layer as Nissatech is responsible for creating the virtual machines on partner demand by the specification partners provide ProaSense Setup Page 29

32 5. Conclusion This document described investigating, analysis and deployment of tools and solutions that a project like ProaSense needs for proper development. Those solutions include, as mentioned, are integration and validation supporting websites, code and issue repositories, modern continuous integration tools and physical infrastructure. We believe that the selection of tools described in this document fulfils all the requirements for future project development. Most of the components in ProaSense will be developed in two cycles, shown in Figure 10, allowing incremental upgrades and advancement within the project. Integration will also follow up on that principle, introducing more optimal solutions in the second phase, based on the lessons learned from the first phase. The supporting systems mentioned mostly in the first part of this deliverable will completely support both cycles of the integration plan. Figure 10 - Integration plan ProaSense Setup Page 30

Content. Development Tools 2(63)

Content. Development Tools 2(63) Development Tools Content Project management and build, Maven Version control, Git Code coverage, JaCoCo Profiling, NetBeans Static Analyzer, NetBeans Continuous integration, Hudson Development Tools 2(63)

More information

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation Practicing Continuous Delivery using Hudson Winston Prakash Oracle Corporation Development Lifecycle Dev Dev QA Ops DevOps QA Ops Typical turn around time is 6 months to 1 year Sprint cycle is typically

More information

Software Construction

Software Construction Software Construction Martin Kropp University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Learning Target You can explain the importance of continuous integration

More information

Continuous Integration. CSC 440: Software Engineering Slide #1

Continuous Integration. CSC 440: Software Engineering Slide #1 Continuous Integration CSC 440: Software Engineering Slide #1 Topics 1. Continuous integration 2. Configuration management 3. Types of version control 1. None 2. Lock-Modify-Unlock 3. Copy-Modify-Merge

More information

Continuous Integration

Continuous Integration Continuous Integration Collaborative development issues Checkout of a shared version of software ( mainline ) Creation of personal working copies of developers Software development: modification of personal

More information

StriderCD Book. Release 1.4. Niall O Higgins

StriderCD Book. Release 1.4. Niall O Higgins StriderCD Book Release 1.4 Niall O Higgins August 22, 2015 Contents 1 Introduction 3 1.1 What Is Strider.............................................. 3 1.2 What Is Continuous Integration.....................................

More information

Continuous integration End of the big bang integration era

Continuous integration End of the big bang integration era Continuous integration End of the big bang integration era Patrick Laurent Partner Technology & Enterprise Applications Deloitte Mario Deserranno Manager Technology & Enterprise Applications Deloitte The

More information

Introduction to Automated Testing

Introduction to Automated Testing Introduction to Automated Testing What is Software testing? Examination of a software unit, several integrated software units or an entire software package by running it. execution based on test cases

More information

Software Continuous Integration & Delivery

Software Continuous Integration & Delivery November 2013 Daitan White Paper Software Continuous Integration & Delivery INCREASING YOUR SOFTWARE DEVELOPMENT PROCESS AGILITY Highly Reliable Software Development Services http://www.daitangroup.com

More information

SOFTWARE DEVELOPMENT BASICS SED

SOFTWARE DEVELOPMENT BASICS SED SOFTWARE DEVELOPMENT BASICS SED Centre de recherche Lille Nord Europe 16 DÉCEMBRE 2011 SUMMARY 1. Inria Forge 2. Build Process of Software 3. Software Testing 4. Continuous Integration 16 DECEMBRE 2011-2

More information

In depth study - Dev teams tooling

In depth study - Dev teams tooling In depth study - Dev teams tooling Max Åberg mat09mab@ Jacob Burenstam Linder ada09jbu@ Desired feedback Structure of paper Problem description Inconsistencies git story explanation 1 Introduction Hypotheses

More information

Continuous Integration and Delivery at NSIDC

Continuous Integration and Delivery at NSIDC National Snow and Ice Data Center Supporting Cryospheric Research Since 1976 Continuous Integration and Delivery at NSIDC Julia Collins National Snow and Ice Data Center Cooperative Institute for Research

More information

Delivering Quality in Software Performance and Scalability Testing

Delivering Quality in Software Performance and Scalability Testing Delivering Quality in Software Performance and Scalability Testing Abstract Khun Ban, Robert Scott, Kingsum Chow, and Huijun Yan Software and Services Group, Intel Corporation {khun.ban, robert.l.scott,

More information

Software Testing. Knowledge Base. Rajat Kumar Bal. Introduction

Software Testing. Knowledge Base. Rajat Kumar Bal. Introduction Software Testing Rajat Kumar Bal Introduction In India itself, Software industry growth has been phenomenal. IT field has enormously grown in the past 50 years. IT industry in India is expected to touch

More information

SysPatrol - Server Security Monitor

SysPatrol - Server Security Monitor SysPatrol Server Security Monitor User Manual Version 2.2 Sep 2013 www.flexense.com www.syspatrol.com 1 Product Overview SysPatrol is a server security monitoring solution allowing one to monitor one or

More information

Continuous Integration and Bamboo. Ryan Cutter CSCI 5828 2012 Spring Semester

Continuous Integration and Bamboo. Ryan Cutter CSCI 5828 2012 Spring Semester Continuous Integration and Bamboo Ryan Cutter CSCI 5828 2012 Spring Semester Agenda What is CI and how can it help me? Fundamentals of CI Fundamentals of Bamboo Configuration / Price Quick example Features

More information

Delivering Quality Software with Continuous Integration

Delivering Quality Software with Continuous Integration Delivering Quality Software with Continuous Integration 01 02 03 04 Unit Check- Test Review In 05 06 07 Build Deploy Test In the following pages we will discuss the approach and systems that together make

More information

The Importance of Continuous Integration for Quality Assurance Teams

The Importance of Continuous Integration for Quality Assurance Teams The Importance of Continuous Integration for Quality Assurance Teams Without proper implementation, a continuous integration system will go from a competitive advantage for a software quality assurance

More information

BlueJ Teamwork Tutorial

BlueJ Teamwork Tutorial BlueJ Teamwork Tutorial Version 2.0 for BlueJ Version 2.5.0 (and 2.2.x) Bruce Quig, Davin McCall School of Engineering & IT, Deakin University Contents 1 OVERVIEW... 3 2 SETTING UP A REPOSITORY... 3 3

More information

GENiC. Deliverable D5.1 Development & Integration guidelines including integration environment & means. Dissemination Level: Public

GENiC. Deliverable D5.1 Development & Integration guidelines including integration environment & means. Dissemination Level: Public GENiC Deliverable D5.1 Development & Integration guidelines including integration environment & means This project has received funding from the European Union s Seventh Framework Programme for research,

More information

Ce document a été téléchargé depuis le site de Precilog. - Services de test SOA, - Intégration de solutions de test.

Ce document a été téléchargé depuis le site de Precilog. - Services de test SOA, - Intégration de solutions de test. Ce document a été téléchargé depuis le site de Precilog. - Services de test SOA, - Intégration de solutions de test. 01 39 20 13 55 info@precilog.com www.precilog.com End to End Process Testing & Validation:

More information

GitLab as an Alternative Development Platform for Github.com

GitLab as an Alternative Development Platform for Github.com Platform for Github.com LinuxCon Europe 2014 October 13, 2014 Ralf Lang Linux Consultant / Developer lang@b1-systems.de - Linux/Open Source Consulting, Training, Support & Development Introducing B1 Systems

More information

Source Control Systems

Source Control Systems Source Control Systems SVN, Git, GitHub SoftUni Team Technical Trainers Software University http://softuni.bg Table of Contents 1. Software Configuration Management (SCM) 2. Version Control Systems: Philosophy

More information

D37.2 - Test Strategy

D37.2 - Test Strategy D37.2 - Test Strategy Client Testbed Document Identification Date 16/05/2013 Status Final Version 1.0 Related SP / WP Related Deliverable(s) Lead Participant Contributors SP3 / WP37 Document Reference

More information

How To Set Up Wiremock In Anhtml.Com On A Testnet On A Linux Server On A Microsoft Powerbook 2.5 (Powerbook) On A Powerbook 1.5 On A Macbook 2 (Powerbooks)

How To Set Up Wiremock In Anhtml.Com On A Testnet On A Linux Server On A Microsoft Powerbook 2.5 (Powerbook) On A Powerbook 1.5 On A Macbook 2 (Powerbooks) The Journey of Testing with Stubs and Proxies in AWS Lucy Chang lucy_chang@intuit.com Abstract Intuit, a leader in small business and accountants software, is a strong AWS(Amazon Web Services) partner

More information

The Hitchhiker s Guide to Github: SAS Programming Goes Social Jiangtang Hu d-wise Technologies, Inc., Morrisville, NC

The Hitchhiker s Guide to Github: SAS Programming Goes Social Jiangtang Hu d-wise Technologies, Inc., Morrisville, NC Paper PA-04 The Hitchhiker s Guide to Github: SAS Programming Goes Social Jiangtang Hu d-wise Technologies, Inc., Morrisville, NC ABSTRACT Don't Panic! Github is a fantastic way to host, share, and collaborate

More information

Implementing Continuous Integration Testing Prepared by:

Implementing Continuous Integration Testing Prepared by: Implementing Continuous Integration Testing Prepared by: Mr Sandeep M Table of Contents 1. ABSTRACT... 2 2. INTRODUCTION TO CONTINUOUS INTEGRATION (CI)... 3 3. CI FOR AGILE METHODOLOGY... 4 4. WORK FLOW...

More information

Testing Automation for Distributed Applications By Isabel Drost-Fromm, Software Engineer, Elastic

Testing Automation for Distributed Applications By Isabel Drost-Fromm, Software Engineer, Elastic Testing Automation for Distributed Applications By Isabel Drost-Fromm, Software Engineer, Elastic The challenge When building distributed, large-scale applications, quality assurance (QA) gets increasingly

More information

Git Fusion Guide 2015.3. August 2015 Update

Git Fusion Guide 2015.3. August 2015 Update Git Fusion Guide 2015.3 August 2015 Update Git Fusion Guide 2015.3 August 2015 Update Copyright 1999-2015 Perforce Software. All rights reserved. Perforce software and documentation is available from http://www.perforce.com/.

More information

SOA Solutions & Middleware Testing: White Paper

SOA Solutions & Middleware Testing: White Paper SOA Solutions & Middleware Testing: White Paper Version 1.1 (December 06, 2013) Table of Contents Introduction... 03 Solutions Testing (Beta Testing)... 03 1. Solutions Testing Methods... 03 1.1 End-to-End

More information

Software Configuration Management and Continuous Integration

Software Configuration Management and Continuous Integration 1 Chapter 1 Software Configuration Management and Continuous Integration Matthias Molitor, 1856389 Reaching and maintaining a high quality level is essential for each today s software project. To accomplish

More information

PARALLELS SERVER 4 BARE METAL README

PARALLELS SERVER 4 BARE METAL README PARALLELS SERVER 4 BARE METAL README This document provides the first-priority information on Parallels Server 4 Bare Metal and supplements the included documentation. TABLE OF CONTENTS 1 About Parallels

More information

We (http://www.newagesolution.net) have extensive experience in enterprise and system architectures, system engineering, project management, and

We (http://www.newagesolution.net) have extensive experience in enterprise and system architectures, system engineering, project management, and We (http://www.newagesolution.net) have extensive experience in enterprise and system architectures, system engineering, project management, and software design and development. We will be presenting a

More information

How To Manage A Multi Site In Drupal

How To Manage A Multi Site In Drupal http://platform.sh sales@platform.sh MODERNISING DRUPAL MULTI-SITE IMPLEMENTATIONS Drupal multi-site is easily re-architected to run each site in its own containerised environment. It s better and it costs

More information

E-vote 2011 Version: 1.0 Testing and Approval Date: 26/10/2009. E-vote 2011. SSA-U Appendix 5 Testing and Approval Project: E-vote 2011

E-vote 2011 Version: 1.0 Testing and Approval Date: 26/10/2009. E-vote 2011. SSA-U Appendix 5 Testing and Approval Project: E-vote 2011 E-vote 2011 SSA-U Appendix 5 Testing and Approval Project: E-vote 2011 Change log Version Date Author Description/changes 0.1 26.10.09 First version Page 1 CONTENT 1. INTRODUCTION 3 2. TESTING PROCESS

More information

Bringing Value to the Organization with Performance Testing

Bringing Value to the Organization with Performance Testing Bringing Value to the Organization with Performance Testing Michael Lawler NueVista Group 1 Today s Agenda Explore the benefits of a properly performed performance test Understand the basic elements of

More information

Life Cycle Management for Oracle Data Integrator 11 & 12. At lower cost Get a 30% return on investment guaranteed and save 15% on development costs

Life Cycle Management for Oracle Data Integrator 11 & 12. At lower cost Get a 30% return on investment guaranteed and save 15% on development costs Life Cycle Management for Oracle Data Integrator 11 & 12 Increase productivity Stop wasting your time doing things maually by automating every step in your project s Life Cycle At lower cost Get a 30%

More information

Red Hat Network Satellite Management and automation of your Red Hat Enterprise Linux environment

Red Hat Network Satellite Management and automation of your Red Hat Enterprise Linux environment Red Hat Network Satellite Management and automation of your Red Hat Enterprise Linux environment WHAT IS IT? Red Hat Network (RHN) Satellite server is an easy-to-use, advanced systems management platform

More information

Red Hat Satellite Management and automation of your Red Hat Enterprise Linux environment

Red Hat Satellite Management and automation of your Red Hat Enterprise Linux environment Red Hat Satellite Management and automation of your Red Hat Enterprise Linux environment WHAT IS IT? Red Hat Satellite server is an easy-to-use, advanced systems management platform for your Linux infrastructure.

More information

Zero-Touch Drupal Deployment

Zero-Touch Drupal Deployment Zero-Touch Drupal Deployment Whitepaper Date 25th October 2011 Document Number MIG5-WP-D-004 Revision 01 1 Table of Contents Preamble The concept Version control Consistency breeds abstraction Automation

More information

Version Control using Git and Github. Joseph Rivera

Version Control using Git and Github. Joseph Rivera Version Control using Git and Github Joseph Rivera 1 What is Version Control? Powerful development tool! Management of additions, deletions, and modifications to software/source code or more generally

More information

SECTION 4 TESTING & QUALITY CONTROL

SECTION 4 TESTING & QUALITY CONTROL Page 1 SECTION 4 TESTING & QUALITY CONTROL TESTING METHODOLOGY & THE TESTING LIFECYCLE The stages of the Testing Life Cycle are: Requirements Analysis, Planning, Test Case Development, Test Environment

More information

Version Control! Scenarios, Working with Git!

Version Control! Scenarios, Working with Git! Version Control! Scenarios, Working with Git!! Scenario 1! You finished the assignment at home! VC 2 Scenario 1b! You finished the assignment at home! You get to York to submit and realize you did not

More information

Getting started with API testing

Getting started with API testing Technical white paper Getting started with API testing Test all layers of your composite applications, not just the GUI Table of contents Executive summary... 3 Introduction... 3 Who should read this document?...

More information

Basic Unix/Linux 1. Software Testing Interview Prep

Basic Unix/Linux 1. Software Testing Interview Prep Basic Unix/Linux 1 Programming Fundamentals and Concepts 2 1. What is the difference between web application and client server application? Client server application is designed typically to work in a

More information

Levels of Software Testing. Functional Testing

Levels of Software Testing. Functional Testing Levels of Software Testing There are different levels during the process of Testing. In this chapter a brief description is provided about these levels. Levels of testing include the different methodologies

More information

18.2 user guide No Magic, Inc. 2015

18.2 user guide No Magic, Inc. 2015 18.2 user guide No Magic, Inc. 2015 All material contained here in is considered proprietary information owned by No Magic, Inc. and is not to be shared, copied, or reproduced by any means. All information

More information

OnCommand Performance Manager 1.1

OnCommand Performance Manager 1.1 OnCommand Performance Manager 1.1 Installation and Setup Guide For Red Hat Enterprise Linux NetApp, Inc. 495 East Java Drive Sunnyvale, CA 94089 U.S. Telephone: +1 (408) 822-6000 Fax: +1 (408) 822-4501

More information

Introduction to Programming Tools. Anjana & Shankar September,2010

Introduction to Programming Tools. Anjana & Shankar September,2010 Introduction to Programming Tools Anjana & Shankar September,2010 Contents Essentials tooling concepts in S/W development Build system Version Control System Testing Tools Continuous Integration Issue

More information

International Journal of Advanced Engineering Research and Science (IJAERS) Vol-2, Issue-11, Nov- 2015] ISSN: 2349-6495

International Journal of Advanced Engineering Research and Science (IJAERS) Vol-2, Issue-11, Nov- 2015] ISSN: 2349-6495 International Journal of Advanced Engineering Research and Science (IJAERS) Vol-2, Issue-11, Nov- 2015] Survey on Automation Testing Tools for Mobile Applications Dr.S.Gunasekaran 1, V. Bargavi 2 1 Department

More information

Load and Performance Load Testing. RadView Software October 2015 www.radview.com

Load and Performance Load Testing. RadView Software October 2015 www.radview.com Load and Performance Load Testing RadView Software October 2015 www.radview.com Contents Introduction... 3 Key Components and Architecture... 4 Creating Load Tests... 5 Mobile Load Testing... 9 Test Execution...

More information

Mike Chyi, Micro Focus Solution Consultant May 12, 2010

Mike Chyi, Micro Focus Solution Consultant May 12, 2010 Mike Chyi, Micro Focus Solution Consultant May 12, 2010 Agenda Load Testing Overview, Best Practice: Performance Testing with Diagnostics Demo (?), Q&A Load Testing Overview What is load testing? Type

More information

ORACLE OPS CENTER: PROVISIONING AND PATCH AUTOMATION PACK

ORACLE OPS CENTER: PROVISIONING AND PATCH AUTOMATION PACK ORACLE OPS CENTER: PROVISIONING AND PATCH AUTOMATION PACK KEY FEATURES PROVISION FROM BARE- METAL TO PRODUCTION QUICKLY AND EFFICIENTLY Controlled discovery with active control of your hardware Automatically

More information

Continuous Integration with Jenkins. Coaching of Programming Teams (EDA270) J. Hembrink and P-G. Stenberg [dt08jh8 dt08ps5]@student.lth.

Continuous Integration with Jenkins. Coaching of Programming Teams (EDA270) J. Hembrink and P-G. Stenberg [dt08jh8 dt08ps5]@student.lth. 1 Continuous Integration with Jenkins Coaching of Programming Teams (EDA270) J. Hembrink and P-G. Stenberg [dt08jh8 dt08ps5]@student.lth.se Faculty of Engineering, Lund Univeristy (LTH) March 5, 2013 Abstract

More information

Tutorial: Load Testing with CLIF

Tutorial: Load Testing with CLIF Tutorial: Load Testing with CLIF Bruno Dillenseger, Orange Labs Learning the basic concepts and manipulation of the CLIF load testing platform. Focus on the Eclipse-based GUI. Menu Introduction about Load

More information

Software Development In the Cloud Cloud management and ALM

Software Development In the Cloud Cloud management and ALM Software Development In the Cloud Cloud management and ALM First published in Dr. Dobb's Journal, February 2009: http://www.ddj.com/development-tools/212900736 Nick Gulrajani is a Senior Solutions Architect

More information

White paper: Unlocking the potential of load testing to maximise ROI and reduce risk.

White paper: Unlocking the potential of load testing to maximise ROI and reduce risk. White paper: Unlocking the potential of load testing to maximise ROI and reduce risk. Executive Summary Load testing can be used in a range of business scenarios to deliver numerous benefits. At its core,

More information

VMware Server 2.0 Essentials. Virtualization Deployment and Management

VMware Server 2.0 Essentials. Virtualization Deployment and Management VMware Server 2.0 Essentials Virtualization Deployment and Management . This PDF is provided for personal use only. Unauthorized use, reproduction and/or distribution strictly prohibited. All rights reserved.

More information

DAVE Usage with SVN. Presentation and Tutorial v 2.0. May, 2014

DAVE Usage with SVN. Presentation and Tutorial v 2.0. May, 2014 DAVE Usage with SVN Presentation and Tutorial v 2.0 May, 2014 Required DAVE Version Required DAVE version: v 3.1.6 or higher (recommend to use the most latest version, as of Feb 28, 2014, v 3.1.10) Required

More information

Registration and management system software available as open source

Registration and management system software available as open source www.visceral.eu Registration and management system software available as open source Deliverable number D1.4 Dissemination level Public Delivery date 5 May 2015 Status Author(s) Final Oscar Alfonso Jiménez

More information

ALM2013VS_ACC: Application Lifecycle Management Using Visual Studio 2013

ALM2013VS_ACC: Application Lifecycle Management Using Visual Studio 2013 ALM2013VS_ACC: Application Lifecycle Management Using Visual Studio 2013 Description This three-day, instructor-led course provides students with the knowledge and skills to effectively use the Application

More information

Cloud Security with Stackato

Cloud Security with Stackato Cloud Security with Stackato 1 Survey after survey identifies security as the primary concern potential users have with respect to cloud computing. Use of an external computing environment raises issues

More information

Rally Installation Guide

Rally Installation Guide Rally Installation Guide Rally On-Premises release 2015.1 rallysupport@rallydev.com www.rallydev.com Version 2015.1 Table of Contents Overview... 3 Server requirements... 3 Browser requirements... 3 Access

More information

Version Control with. Ben Morgan

Version Control with. Ben Morgan Version Control with Ben Morgan Developer Workflow Log what we did: Add foo support Edit Sources Add Files Compile and Test Logbook ======= 1. Initial version Logbook ======= 1. Initial version 2. Remove

More information

Copyright www.agileload.com 1

Copyright www.agileload.com 1 Copyright www.agileload.com 1 INTRODUCTION Performance testing is a complex activity where dozens of factors contribute to its success and effective usage of all those factors is necessary to get the accurate

More information

Pipeline Orchestration for Test Automation using Extended Buildbot Architecture

Pipeline Orchestration for Test Automation using Extended Buildbot Architecture Pipeline Orchestration for Test Automation using Extended Buildbot Architecture Sushant G.Gaikwad Department of Computer Science and engineering, Walchand College of Engineering, Sangli, India. M.A.Shah

More information

A quantitative comparison between xen and kvm

A quantitative comparison between xen and kvm Home Search Collections Journals About Contact us My IOPscience A quantitative comparison between xen and kvm This content has been downloaded from IOPscience. Please scroll down to see the full text.

More information

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.) Today: Source code control CPSC 491 Source Code (Version) Control Exercise: 1. Pretend like you don t have a version control system (e. g., no git, subversion, cvs, etc.) 2. How would you manage your source

More information

Software infrastructure for Java development projects

Software infrastructure for Java development projects Tools that can optimize your development process Software infrastructure for Java development projects Presentation plan Software Development Lifecycle Tools What tools exist? Where can tools help? Practical

More information

Smarter Balanced Assessment Consortium. Recommendation

Smarter Balanced Assessment Consortium. Recommendation Smarter Balanced Assessment Consortium Recommendation Smarter Balanced Quality Assurance Approach Recommendation for the Smarter Balanced Assessment Consortium 20 July 2012 Summary When this document was

More information

APPLICATION MANAGEMENT SUITE FOR ORACLE E-BUSINESS SUITE APPLICATIONS

APPLICATION MANAGEMENT SUITE FOR ORACLE E-BUSINESS SUITE APPLICATIONS APPLICATION MANAGEMENT SUITE FOR ORACLE E-BUSINESS SUITE APPLICATIONS Oracle Application Management Suite for Oracle E-Business Suite delivers capabilities that helps to achieve high levels of application

More information

Best Overall Use of Technology. Jaspersoft

Best Overall Use of Technology. Jaspersoft Best Overall Use of Technology Jaspersoft Kerstin Klein Manager, Engineering Processes/ Infrastructure, Jaspersoft From requirements to release QA centric development From Requirement to Release QA-Centric

More information

STeP-IN SUMMIT 2007. International Conference On Software Testing

STeP-IN SUMMIT 2007. International Conference On Software Testing STeP-IN SUMMIT 2007 International Conference On Software Testing Implementation of Continuous Integration and Automated testing of a large scale web based application for a European by Amandweep Suresh

More information

Version control. with git and GitHub. Karl Broman. Biostatistics & Medical Informatics, UW Madison

Version control. with git and GitHub. Karl Broman. Biostatistics & Medical Informatics, UW Madison Version control with git and GitHub Karl Broman Biostatistics & Medical Informatics, UW Madison kbroman.org github.com/kbroman @kwbroman Course web: kbroman.org/tools4rr Slides prepared with Sam Younkin

More information

NXTware Remote. Advanced Development and Maintenance Environment for OpenVMS and other Strategic Platforms

NXTware Remote. Advanced Development and Maintenance Environment for OpenVMS and other Strategic Platforms NXTware Remote Advanced Development and Maintenance Environment for OpenVMS and other Strategic Platforms Gerrit Woertman CTO OpenVMS Business Generating Software gerrit@bgsoftware.nl +31 6 51341600 Introduction

More information

Global Software Change Management for PVCS Version Manager

Global Software Change Management for PVCS Version Manager Global Software Change Management for PVCS Version Manager... www.ikanalm.com Summary PVCS Version Manager is considered as one of the leading versioning tools that offers complete versioning control.

More information

The Real Challenges of Configuration Management

The Real Challenges of Configuration Management The Real Challenges of Configuration Management McCabe & Associates Table of Contents The Real Challenges of CM 3 Introduction 3 Parallel Development 3 Maintaining Multiple Releases 3 Rapid Development

More information

Application Lifecycle Management Using Visual Studio 2013 (SCRUM)

Application Lifecycle Management Using Visual Studio 2013 (SCRUM) Course Code: QAALMS13 Vendor: Microsoft Course Overview Duration: 3 RRP: 2,009 Application Lifecycle Management Using Visual Studio 2013 (SCRUM) Overview This three-day, instructor-led course provides

More information

Application Performance Testing Basics

Application Performance Testing Basics Application Performance Testing Basics ABSTRACT Todays the web is playing a critical role in all the business domains such as entertainment, finance, healthcare etc. It is much important to ensure hassle-free

More information

Testing Tools Content (Manual with Selenium) Levels of Testing

Testing Tools Content (Manual with Selenium) Levels of Testing Course Objectives: This course is designed to train the fresher's, intermediate and professionals on testing with the concepts of manual testing and Automation with Selenium. The main focus is, once the

More information

Agile Software Factory: Bringing the reliability of a manufacturing line to software development

Agile Software Factory: Bringing the reliability of a manufacturing line to software development Agile Software Factory: Bringing the reliability of a manufacturing line to software development Today s businesses are complex organizations that must be agile across multiple channels in highly competitive

More information

Pragmatic Version Control

Pragmatic Version Control Extracted from: Pragmatic Version Control using Subversion, 2nd Edition This PDF file contains pages extracted from Pragmatic Version Control, one of the Pragmatic Starter Kit series of books for project

More information

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces Software Engineering, Lecture 4 Decomposition into suitable parts Cross cutting concerns Design patterns I will also give an example scenario that you are supposed to analyse and make synthesis from The

More information

Eucalyptus 3.4.2 User Console Guide

Eucalyptus 3.4.2 User Console Guide Eucalyptus 3.4.2 User Console Guide 2014-02-23 Eucalyptus Systems Eucalyptus Contents 2 Contents User Console Overview...4 Install the Eucalyptus User Console...5 Install on Centos / RHEL 6.3...5 Configure

More information

Continuous Integration and Delivery. manage development build deploy / release

Continuous Integration and Delivery. manage development build deploy / release Continuous Integration and Delivery manage development build deploy / release test About the new CI Tool Chain One of the biggest changes on the next releases of XDK, will be the adoption of the New CI

More information

Building, testing and deploying mobile apps with Jenkins & friends

Building, testing and deploying mobile apps with Jenkins & friends Building, testing and deploying mobile apps with Jenkins & friends Christopher Orr https://chris.orr.me.uk/ This is a lightning talk which is basically described by its title, where "mobile apps" really

More information

Version control. HEAD is the name of the latest revision in the repository. It can be used in subversion rather than the latest revision number.

Version control. HEAD is the name of the latest revision in the repository. It can be used in subversion rather than the latest revision number. Version control Version control is a powerful tool for many kinds of work done over a period of time, including writing papers and theses as well as writing code. This session gives a introduction to a

More information

ENTERPRISE-CLASS MONITORING SOLUTION FOR EVERYONE ALL-IN-ONE OPEN-SOURCE DISTRIBUTED MONITORING

ENTERPRISE-CLASS MONITORING SOLUTION FOR EVERYONE ALL-IN-ONE OPEN-SOURCE DISTRIBUTED MONITORING ENTERPRISE-CLASS MONITORING SOLUTION FOR EVERYONE ALL-IN-ONE OPEN-SOURCE DISTRIBUTED MONITORING 1 CONTENTS About Zabbix Software... 2 Main Functions... 3 Architecture... 4 Installation Requirements...

More information

Service Virtualization:

Service Virtualization: Service Virtualization: Reduce the time and cost to develop and test modern, composite applications Business white paper Table of contents Why you need service virtualization 3 The challenges of composite

More information

Camilyo APS package by Techno Mango Service Provide Deployment Guide Version 1.0

Camilyo APS package by Techno Mango Service Provide Deployment Guide Version 1.0 Camilyo APS package by Techno Mango Service Provide Deployment Guide Version 1.0 Contents Introduction... 3 Endpoint deployment... 3 Endpoint minimal hardware requirements:... 3 Endpoint software requirements:...

More information

Servers. Servers. NAT Public Subnet: 172.30.128.0/20. Internet Gateway. VPC Gateway VPC: 172.30.0.0/16

Servers. Servers. NAT Public Subnet: 172.30.128.0/20. Internet Gateway. VPC Gateway VPC: 172.30.0.0/16 .0 Why Use the Cloud? REFERENCE MODEL Cloud Development April 0 Traditionally, deployments require applications to be bound to a particular infrastructure. This results in low utilization, diminished efficiency,

More information

From Traditional Functional Testing to Enabling Continuous Quality in Mobile App Development

From Traditional Functional Testing to Enabling Continuous Quality in Mobile App Development From Traditional Functional Testing to Enabling Continuous Quality in Mobile App Development Introduction Today s developers are under constant pressure to launch killer apps and release enhancements as

More information

Automation and Virtualization, the pillars of Continuous Testing

Automation and Virtualization, the pillars of Continuous Testing HP Software: Apps meet Ops 2015 Automation and Virtualization, the pillars of Continuous Testing Jerry Saelemakers/ April 2 nd, 2015 Today s business initiatives demand a balance between velocity and quality

More information

Syncplicity On-Premise Storage Connector

Syncplicity On-Premise Storage Connector Syncplicity On-Premise Storage Connector Implementation Guide Abstract This document explains how to install and configure the Syncplicity On-Premise Storage Connector. In addition, it also describes how

More information

Software Configuration Management Best Practices for Continuous Integration

Software Configuration Management Best Practices for Continuous Integration Software Configuration Management Best Practices for Continuous Integration As Agile software development methodologies become more common and mature, proven best practices in all phases of the software

More information

Performance Test Process

Performance Test Process A white Success The performance testing helped the client identify and resolve performance bottlenecks which otherwise crippled the business. The ability to support 500 concurrent users was a performance

More information

The Evolution of Load Testing. Why Gomez 360 o Web Load Testing Is a

The Evolution of Load Testing. Why Gomez 360 o Web Load Testing Is a Technical White Paper: WEb Load Testing To perform as intended, today s mission-critical applications rely on highly available, stable and trusted software services. Load testing ensures that those criteria

More information

Oracle Primavera P6 Enterprise Project Portfolio Management Performance and Sizing Guide. An Oracle White Paper October 2010

Oracle Primavera P6 Enterprise Project Portfolio Management Performance and Sizing Guide. An Oracle White Paper October 2010 Oracle Primavera P6 Enterprise Project Portfolio Management Performance and Sizing Guide An Oracle White Paper October 2010 Disclaimer The following is intended to outline our general product direction.

More information

Migration and Building of Data Centers in IBM SoftLayer with the RackWare Management Module

Migration and Building of Data Centers in IBM SoftLayer with the RackWare Management Module Migration and Building of Data Centers in IBM SoftLayer with the RackWare Management Module June, 2015 WHITE PAPER Contents Advantages of IBM SoftLayer and RackWare Together... 4 Relationship between

More information

The Process Guidelines should be used in conjunction with the standard OUM process guidelines when using Testing and Quality Management Tools.

The Process Guidelines should be used in conjunction with the standard OUM process guidelines when using Testing and Quality Management Tools. OUM 6.3 Testing and Quality Management Tools Supplemental Guide Method Navigation Current Page Navigation TESTING AND QUALITY MANAGEMENT TOOLS SUPPLEMENTAL GUIDE This document contains OUM supplemental

More information