Familiarize

Incorporating Testlab to your project delivery process

This document describes the benefits of using Testlab in your software development and gives pointers on how you should incorporate the tool as a part of your development process. Each section of this document features a summary of benefits regarding your field of expertise.

  • Introduction – for project vendors

    There are as many software development processes as there are organizations. Typically though, each organization has a chosen development model they strive to achieve the benefits of and for which they invest the effort. To keep it readable, let’s simplify the common practices of all software development processes to three prime activities.

    The three prime activities in all software development processes including the so-called core activities are:

    Specification

    Requirements ≎ Architecture

    Implementation

    Construction ≎ Design ≎ Testing ≎ Debugging

    Use

    Deployment ≎ Maintenance

    The Specification activity consists of defining what actually the project is going to implement. The project has some kinds of requirements which must be fulfilled. In Agile processes these requirements might be user stories, some processes might use use-cases and others something else and the phase in which they are documented varies between different processes. The relevant thing to understand is that before going to implementation, all projects must have some kind of specification (backlog, specification, something else) for which the team starts to work on. The goal of Specification is to plan the implementation of the project up to the position from where the implementation can be started.

    The Implementation activity consists of the actual tasks involving the construction of the software the project is implementing. This includes the technical design, coding & debugging, and testing activities. The goal of Implementation is to construct the software or the system to be used.

    The Use activity includes the activities relating to installing, deploying, running, and maintaining the software the project implemented. The goal of Use is to utilize the system implemented and capitalize on the investment made to the project.

    Keep in mind, that these prime and referenced core activities might be more distinct or simultaneous depending on the methodology embraced. For example, in more “traditional” approaches such as waterfall, the activities are commonly separate and follow each other and in more agile approaches the different activities can occur simultaneously.

  • Specification

    The specification defines the what of your project and it may be seen to have different uses in different stages of your project.

    Specification before implementation

    When a software project is planned it can be seen as a contract on what must be done between you as a project vendor and your customer. To agree on the effort involved, it is essential to plan the implementation to the point where the terms between you and your customer can be agreed on. This is common in all development methodologies: For example in Scrum-projects, before going on to the implementation the backlog of your project should be planned and prioritized. In more traditional methods it is common to have some kind of requirement specification (document) that is agreed on.

    Specification during implementation

    When in development, the specification of the system is under constant change. Stories and requirements get changed, updated with new details, or completely dropped. In Agile methods such as Scrum, the team including the product owner always updates the prioritized stories in order to ensure that when the next iteration starts the requirements can be implemented. The constant change causes pressure to keep the team and all project-related assets (such as test plans) up to date.

     

    How-to & Benefits

    With Testlab, you should document and/or import your requirements (user stories, use cases, whatever you prefer using) to a Testlab project. If you prefer, you can utilize approval-workflows of Testlab to collaborate with your customer. Storing requirements to Testlab is great in a way that the requirements can be used as they are when proceeding to project implementation and to the testing phase.

    During development, the user stories and requirements of the project should be kept up to date in your Testlab project.

    benefituser
    For Test Managers and Testers
    • Make work more efficient with centralized storage of requirements
    • Make change management easier – analyze the impact on test plans when requirements change
    • Achieve efficiency through team collaboration
    • Assign and distribute work more easily
    • Achieve traceability to specification through automatic history generation
    benefituser
    For Project Managers
    • Achieve standardization of the documentation between projects
    • Collaborate better with project’s customer and/or product owner
    • Having all quality-related assets linked together gives unprecedented visibility and reporting possibilities compared to the situation, where assets are distributed among systems
    • Reporting and metrics ensures better response to change
    • Get better traceability on change in your project for later reference
    benefituser
    For Technical Leads and Developers
    • Easy to use tool helps to keep specifications up to date
    • Make the transition from the specification phase to implementation easier
    • Achieve trust in the specification through collaboration with the customer
    • Technical design and implementation is easier when the design relies on approved requirements you can trust on
    • Running in new team members and or/splitting teams is easier with up to date specification
    • Collaborate better with your team
    benefituser
    For Executives
    • Improve customer relations
    • Increase sales with a better quality image
    • Minimize project risks and achieve better competitiveness and profitability in projects
    • Up to date kept specifications can be leaned on in agreement disputes

     

    Summary

    Long story short, you should plan and keep your specification assets up to date in your Testlab project. This includes user stories, use cases, and/or other kinds of requirements your specification consists of. If and when your chosen development model requires updating specifications during implementation the assets should be updated in Testlab.

  • Implementation

    The project implementation consists of all tasks related to the actual construction of the system. This also includes the testing tasks verifying that the implementation works as expected.

    In the actual implementation tasks such as programming, technical design, and debugging, Testlab acts in a small role from a usage standpoint. It is essential to refer to the requirements specified in your Testlab project though.

    In testing and issue management, Testlab takes the stage.

    Test design

    The testers of your team plan the test cases for your project. If your Testlab project has an up-to-date set of requirements as a specification (what it should) the test cases are linked to these requirements. This way, you can report coverage of the testing against the actual functionality implemented in the project. The test cases can be planned beforehand or documented during or after the testing, depending on the testing process you are using. Test cases and their steps are entered as assets into your Testlab project.

    If you are using Agile methods that strive to produce tested and working versions of the system at the end of each iteration, testing must be one of the core activities of the whole team during the sprint. Having separate “testers” and “programmers” in a team usually does not work or at least, the sprints produce maybe-working-betas instead of tested deployments. When testing-related activities are shared between all developers in the team, it is everybody’s responsibility to keep the test cases of the stories they are implementing up to date in Testlab – even if the actual testing would be divided between team members.

    Testing

    A most common way to execute test cases is to execute them in logical sets in a specified order. Testlab supports creating repeatable sets of tests that can be scheduled and assigned to your team members.

    If you are using Agile iterative methods such as Scrum, the testing is a continuous activity done during the sprints. As explained above, we recommend that all team members should participate in testing and each developer should be responsible at least for planning the test case(s) for the stories they are tasked with. In this case, each developer adds test cases to the Testlab project if applicable.

    In any case, the team members responsible for testing should create test cases and execute them. When test cases have been executed the results of the test cases and their steps get automatically recorded to your Testlab project.

    Automated testing

    If you prefer to automate your testing for example with the programmed unit- or integration tests, you should publish the testing results for these automated tests to Testlab. This way, you get a total view of your testing coverage with manual testing and automated testing combined.

    Issue management

    When testing, issues in the implementation are found. They are recorded to Testlab as issues that might be defects or in a good case, new features or enhancement ideas. Issues are often recorded by testers, but it is a good practice that all developers share this activity.

    Issues can be seen as tasks that should be somehow resolved. In the most common case when the issues are bugs and defects, the issues are assigned to responsible developers, fixed, and marked as resolved. Team members responsible for testing then re-test the issues.

    Issue management is a very common practice in any software project and a variety of tools exist for the job. Testlab’s in-built issue management features are implemented for easy and efficient usage but Testlab can also be integrated with your issue tracker of choice if preferred.

     

    How-to & Benefits

    With Testlab, you plan and document test cases to your Testlab project. Test cases are organized and executed in test runs and testing results are recorded to the project. Issues encountered are recorded, resolved and handled to a conclusion.

    benefituser
    For Test Managers and Testers
    • Distribute your work and manage your testing efficiently
    • Achieve visibility throughout the project: From specification to test cases through to issues
    • Record testing results efficiently
    • Easy re- and regression testing
    • No more documenting – export testing reports easily
    benefituser
    For Project Managers
    • Easy access to the status of the testing
    • Get efficient reporting
    • Supports team collaboration
    benefituser
    For Technical Leads and Developers
    • Easy access to the project specification
    • Make issue management easy
    • Trace issues back to the specification
    • Supports team collaboration
    benefituser
    For Executives
    • Get better metrics on project quality
    • Minimize project risks and achieve better competitiveness and profitability in projects
    • Achieve continuous improvement on project quality

     

    Summary

    Plan and/or document your testing as test cases in Testlab. When testing, execute test cases and document findings as issues. Resolve issues and re-test. From feedback learned from issues update the specification and related test cases to achieve continuous improvement.

  • Use

    Before the deliverable in your project can be Used, it is deployed for the customer. Typically, when the system is deployed successfully and accepted by the customer, it continues to be maintained.

    Deployment

    In projects, it’s crucial to get the confidence that the system to be installed works as specified. When delivering the final version to the customer this is especially important.

    Many software development processes include a separate acceptance testing or installation testing phase. This means, that before deploying the software for the customer the implementation is tested, typically as a complete system.

    In Agile methodologies as each iteration produces a tested and working version of the software, the deployment and acceptance cycle is continuous. In this case, each iteration should be tested with the same quality level as the acceptance tests in the typical scenario explained above. To achieve the same level of confidence in the version of the software to be deployed, efficient testing tools are essential.

    Using Testlab, all test cases and planning done in the implementation phase is usable as it is in acceptance testing. Continuous testing in the implementation phase ensures, that the effort planning the acceptance testing is minimal.

    Maintenance and follow-up development

    When the implementation moves to the maintenance phase, it is typical that issue management takes a bigger role. Using issue management, any issues encountered in the production system get resolved in your process.

    It would be best, for any issues encountered in the production system, if the customer himself would add the issue to Testlab. This streamlines things, helps collaboration, and keeps you and your customer up to date on any new features requested or on bugs in the system. Testlab can be utilized as a ticket system, as issues can be configured to trigger e-mail notifications to the assigned developers.

    Any follow-up development or further projects on the same system, using Testlab gives immediate benefits. The specification and the test plan in your Testlab project can be used as it is for further testing of new versions. Revising existing requirements and/or user stories and adding new ones, you can create the basis for the development of your follow-up projects.

     

    How-to & Benefits

    Plan, schedule and execute your acceptance and installation tests in Testlab. Generate reports for customers on delivery. Continue development of follow-up projects in Testlab and utilize all assets created so far as they are.

    benefituser
    For Test Managers and Testers
    • Keep specification and test plan up to date during maintenance
    • Get confidence in delivery quality
    • Organize testing more efficiently, keep projects in the deadline
    benefituser
    For Project Managers
    • Get confidence in delivery quality
    • Easy reporting for customer
    • Increase customer commitment through collaboration
    • Kick-off follow-up projects more efficiently
    benefituser
    For Technical Leads and Developers
    • Kick-off follow-up projects more efficiently
    • Handle maintenance tickets more easily
    • Collaborate better with your team
    benefituser
    For Executives
    • Increase customer satisfaction
    • Increase sales of follow-up projects
    • Increase the profitability of maintenance and support

     

  • Just get me started

    To keep things simple, how should you start with Testlab to get easy gains? You should start the use of Testlab with three goals:

    1. Make sure to plan and specify the requirements you wish to verify to Testlab – in one way or another. This can be done directly to Testlab or, the specification (requirements/user stories/use cases/… you wish to test & verify) can be easily imported from your JIRA, Pivotal Tracker, or Excel. Keep in mind, that you should not approach Testlab as a project management tool or a tool, in which you can manage your project tasks. Your project in Testlab should only include the requirements of the system which you aim to test and track the quality of.
    2. Document the test cases to Testlab – before testing or afterward, depending on the testing approach you wish to use. Documenting test cases makes your testing transparent and repeatable. Link your test cases to your requirements in the specification to achieve visibility on the coverage of your testing.
    3. Record issues in Testlab – or to a system integrated to Testlab (such as JIRA). Recording issues give you visibility on the status of your project and make re-testing and regression testing possible.

    Following these three steps gives you immediate gains on traceability and visibility of your project and the inefficiency of your testing activities.

    I just want to manage test cases

    Feel free to do so! Testlab is designed in a way that using requirements is not mandatory. We highly recommend you do, though, but just managing your test cases, executing them, and handling issues encountered is possible.

     

    If you have any questions or would like to talk with us more, please don’t hesitate to contact us. We are more than glad to help you in your efforts to get the best of your software projects.