<img alt="" src="https://secure.wauk1care.com/164394.png" style="display:none;">

What is a Software Testing Process?

Posted by Jane Kelly on 26/06/2018
Jane Kelly
Find me on:

Key Components of Software Testing

The software testing process involves activities categorised into key stages during the evaluation of software quality.

The purpose is to facilitate confidence building and informed decision making by running tests, checking results, finding software bugs (known as defects) and articulating results to stakeholders. The results help to determine if the software is fit for its intended use.

Software Testing Process

Key stages in the software testing process include:

  • Planning and control – to determine objectives, risk, approach, strategy, measure, monitor and decide next steps.
  • Analysis and Design – to review, build test cases, identify risk, evaluate testability, identify pre-requisites.
  • Execution Preparation – progress action in readiness to resolve constraints, clarify assumptions, prepare test data and environments.
  • Execution - to run through tests and evaluate if an application is working or not, by monitoring behaviour and outputs.
  • Evaluation and Reporting – review results, measure, report and establish if the testing gives enough information to complete testing and move to close stage.
  • Test Closure – review of deliverables against those planned, tidy up test scripts for reuse, identify items for lessons learned.

Software testing can provide objective, independent information enabling business stakeholders to appreciate and understand the risks of proposed software releases.

Sometimes, questions raised in the testing process result in re-design of functionality or wider solution. This can save companies a considerable amount of time and money when identified early in the software testing process.

There are a variety of development methodologies which can be employed in this process.

Agile

This is where solutions and requirements evolve within set short time frames:

  • Close collaboration
  • Cross functional teams
  • Agreed chunks of change
  • Set duration known as ‘Sprint’ usually 2 x weeks long.
  • Effort and complexity points allocated
  • Set pattern: Plan – Execute – Feedback – Re-plan - Repeat.

Waterfall

This is where stages in the development are run sequentially. The key aspects of Waterfall are to have defined and agreed documentation agreed prior to each stage for:

  • Strategy – initial high-level approach
  • Scope – inclusive book of work
  • Planned milestone dates
  • Key stages and sign off points
  • Review and follow up

Iterative Development

This is where multiple mini iterations of Waterfall are delivered via 4 activities:

  • Coding
  • Testing
  • Listening
  • Designing

 

Extreme programming

This is a style of Agile delivery which is broken down into short code feedback:

  • Test driven development
  • Continuous integration
  • Pair programming
  • Lower cost of change
  • Small releases
  • Coding standards

Spiral

This is an incremental model with four phases and the focus is placed on:

  • Planning Phase
  • Risk Analysis Phase
  • Engineering Phase
  • Evaluation Phase
  • Repeatable iterations

Benefits of employing a software testing process include:

  1. Serves as a contract to manage expectations, dependencies, constraints, assumptions
  2. Can be issued as a statement of intent – this gives wider visibility and opportunity for Q&A
  3. Helps to measure software code quality – so that necessary action can be taken
  4. Helps to identify risks and issues – project slippage is avoided and costs/rework are reduced
  5. Helps to give traceability in development to ensure effort is targeted and relevant
  6. Helps to identify critical success factors – to enable more efficient progress tracking
  7. Helps to demonstrate test coverage – to identify gaps and untested areas of risk
  8. Sets out ownership expectations across teams
  9. Facilitates timeline critical path planning
  10. Improves cost control through sharing of information
  11. Enables prioritisation – to ensure the most important thing are tested first
  12. Highlight important gaps which could impact critical path
  13. Sets out planned progress reporting against actuals so that remedial action can be taken
  14. Promotes time and task management to optimise efficiency, productivity
  15. Defines defect management process so that actions and owners are clearly identified
  16. Enables timely and informed decision making - to maintain on track
  17. Allows flexibility of approach which can help resolve blockers and respond to fluctuation
  18. Encourages stakeholder feedback -to enable active and ad hoc participation
  19. Communicates high level progress monitoring – so that senior stakeholders can be informed
  20. Improves quality assurance -reducing costs and risk to the end users
  21. Increases reusability – to save time and money whilst optimising benefits
  22. Helps to deliver return on investment tracking cost-benefit incrementally
  23. Invaluable retrospective referencing of legacy agreements, owners and evolving scope
  24. Facilitates re-planning where issues arise and blockers cause delays

Following a templated software testing process allows individuals to be clearer of what is expected of them. The forward-thinking types can plan and prepare for what they are accountable for delivering.

Sharing a documented process serves as an excellent and established mechanism to base software development upon. It helps target the areas which are important in establishing if a code release delivery is acceptable and subsequently how this impacts the release implementation and future commercial business use.

Following a tried and tested software testing process can help projects avoid common pitfalls and help to ensure that there is a high-level framework to guide cross functional team members through the process, despite having different skills sets, levels of experience, disciplines and level of engagement.

nFocus SDET Academy

Topics: Software Testing, Software Test Process

nFocus Blog

Welcome to the nFocus software testing blog. As thought leaders and technical innovators, we created this blog to distil our thoughts, ideas and musings on improving software quality.

Fill out the form below to receive future communications from nFocus including our latest:

  • Blog articles
  • White Papers
  • and plenty more!

Follow us

Follow us on LinkedIn to see our latest content!

Subscribe Here!

Recent Posts

Posts by Topic

see all

Posts by Topic

see all