Familiarize

Incorporating Testlab to your product development process

This document describes the benefits of using Testlab in your software product 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 product developers

    In this document, the premise is that all software product development processes are customer-driven. This means, that even if you develop in-house software products – meaning, that the software is used inside your own organization – you should think of your own users as customers for your software.

    For simplicity, we’ll summarize the product development process into three prime activities:

    Scoping

    Requirements ≎ Architecture ≎ Business case

    Implementation

    Design ≎ Construction ≎ Testing ≎ Debugging

    Development

    Maintenance ≎ Validation ≎ Improvement

    The Scoping activity consists of design and feasibility analysis aiming to verify, that the product is viable. It usually consists of some kind of requirement gathering phase, preliminary technical design, and all analysis concerning the return of investment for the product. The goal of the Scoping is to verify, that the product is viable as a good investment and to plan the features for the product to the level in which the design can be continued on.

    The Implementation activity consists of tasks involving the design of the product’s specifications, technical details, and tasks for the actual construction of the first version of the product. This usually includes the refinement of the specification, technical design, coding & debugging, testing and deployment activities. The goal of Implementation is to construct the first version of the software.

    The Development activity includes the activities relating to maintaining the product and developing it further to gain competitiveness for the product. A crucial part of product development is also validation, which means that in a customer-driven approach the product is continuously validated and fed with features customers need and request. The goal of Development is to capitalize on the investment made to the software and make future gains through further development.

  • Scoping

    The scoping activity is a preliminary planning activity defining the what of your product to validate the feasibility and business case of your software.

    It is crucial to document the features and requirements of your software product as clearly as possible and in a manner, where the product can be realized and developed as cost-effectively as possible. Any risks realized in the product implementation phase have a direct impact on the return of investment of your product and a good specification and design phase beforehand is a good way to minimize these risks. In addition, a good specification helps you to make the calculations on the facts, that validate the business case for your product.

    The specification of your software product – features and all other requirements – should be documented in a Testlab project. As Testlab is methodology agnostic, you can document your features as assets that best fit your software development method. For example, if you use Agile methods such as Scrum, you can document the specification as user stories. If your software development method requires different kinds of assets such as use cases or business requirements, feel free to document your specifications with these.

    How-to & Benefits

    With Testlab, you should document and/or import your requirements (business requirements, user stories, use cases, whatever you prefer using) to a Testlab project. You can utilize approval-workflows in Testlab to collaborate with persons involved in product development.

    During development, the user stories and requirements of the product must 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 Product Managers
    • Collaborate better with the product development team
    • 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 product for later reference
    • Achieve standardization of the documentation between different products
    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 team
    • 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
    • Increase sales with better quality products
    • Minimize product risks and achieve better competitiveness and profitability
    • Improve customer satisfaction
    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 implementation activity consists of all tasks related to the actual design & construction of the product. This also includes the testing tasks verifying that the implementation works as planned.

    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, people responsible for testing your product implementation, plan the test cases for your product. 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. 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 product 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 members of the product development team 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 software development 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 for 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 lifecycle of the product: 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 Product 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 product specification
    • Make issue management easy
    • Trace issues back to the specification
    • Supports team collaboration
    benefituser
    For Executives
    • Get better metrics on product quality
    • Minimize risks and achieve better competitiveness and profitability
    • Achieve continuous improvement in product quality

     

    Summary

    With the goal of validating, that your product does what is expected, plan and/or document your testing as test cases in Testlab. When testing, execute test cases and document findings as to issues. Resolve issues and re-test. From feedback learned from issues update the specification and related test cases to achieve continuous improvement.

  • Development

    Before the first version of your product can be launched, it is often distributed or deployed for your customers. When the product is taken into use successfully, it moves into a maintenance phase where the product is maintained and developed further.

    Launch of the first version

    Before the launch of your product, it’s crucial to get the confidence that it works as expected.

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

    In Agile methodologies as each iteration produces a tested and working version of the product, 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 your product moves to the maintenance phase, it is typical that issue management takes a bigger role. Using issue management, any issues encountered in the product get resolved in your process. Keep in mind, that depending on the nature of your product, Testlab can be utilized as a ticket system for any customer-related findings. As issues can be configured to trigger e-mail notifications to the assigned developers, handling the issues becomes easy.

    Any follow-up development on your product, 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 features. For new further versions of your product, using Testlab’s milestones is a great way to organize and branch features of your product.

     

    How-to & Benefits

    Plan, schedule and execute your acceptance and/or installation tests in Testlab. Generate reports for interested parties on delivery. Continue development of follow-up features 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 product deliveries on deadline
    benefituser
    For Product Managers
    • Get confidence in delivery quality
    • Easy reporting for management
    • Increase team commitment through collaboration
    • Kick-off follow-up development more efficiently
    benefituser
    For Technical Leads and Developers
    • Kick-off follow-up development more efficiently
    • Handle maintenance tickets more easily
    • Collaborate better with your team
    benefituser
    For Executives
    • Increase customer satisfaction
    • Increase sales with a more efficient development process
    • 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.
    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 product quality and make re-testing and regression testing possible.

    Following these three steps gives you immediate gains on traceability and visibility of your product development efforts and in the efficiency 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 product development efforts.