Monday, November 27, 2023

ABC Of Software Testing

Software Testing forms an integral part of software development process. In fact, software development is not completed without software testing. Most times, people tend to think of software testing as less important than software design and coding. Some even believe software testing activities should not be executed by SMEs but by developers. Others think software testing is mere execution of test cases against the application under development. Software testing transcends beyond all the above and even more.

What exactly is software testing and why is it an integral part of software development process? Software testing using simple terminology is a part of software development process that helps to ensure that an application fulfils all its defined purpose in every perspective.

It is a process that encompasses several types of activities that start as soon as software development activities start.

Why then is Software Testing especially important and how should it be practiced?

The main purpose of any organisation providing services is to interact with customers and to satisfy their needs. When organisations provide software application as a service, to maintain customer satisfaction, excellent quality product need to be provided.

How can organisations ensure excellent quality product is delivered and maintained?

Ensuring software testing activities are started as early as possible within the software development life cycle which prevent defects from creeping into the product. Encouraging collaboration between Software testing SMEs and the rest of the development team will save organisations money and time spent on fixing defects at a later stage in software development life cycle.

Software applications usually have different requirements which can be classified into two main categories: Functional and Non-Functional requirements. Software testing aims to ensure these requirements are satisfied as well as to ensure the software application is fit for the purpose for which it is built.

Software testing activities executed within software development life cycle can be classified into two main categories: Static testing and Dynamic Testing

Static Testing is any testing activity executed against the application under development, to prevent defects from creeping into the software application without executing the code of the application. Examples are reviews and walkthrough activities.

Dynamic testing is any testing activity executed against the application under development to identify defects that are hidden in the software application, by executing the code of the application.

How do we ensure software testing is done in the correct way?

Static testing activities when done as early as possible and regularly will help improve the quality of the application bearing in mind that static testing prevents defect, whilst dynamic testing identifies defects already within the application.

Within my organisation, below are some of the activities (and not limited to) we have put into practice and have benefited from: These activities encourage collaboration amongst the development team and stakeholders, which is key in any software development process.

Software testing SMEs participate in all discussions during the inception or understand phase of software development life cycle:

  • Make sure Software testing SMEs understand the problem that is being solved by reviewing any requirement documentations, technical documentations.
  • Review Risks for proper understanding.
  • Asking the right questions using approaches like example mapping, concept of three Amigos etc.

Benefits:

Software testing SMEs can identify any discrepancies or ambiguities in the requirements, asking questions help everyone to better understand the problem, identify and assess risks synonymous to testing. Identify the types of software testing within scope.

We have seen an increase in number of defects identified during this phase thereby a reduction in the number of defects that may creep into the design of the application. Thus, an improved quality product.

During the design or define phase of software development life cycle Software testing SMEs

  • review and analyse business design documentations, technical design documentations and any other artefacts that can support their understanding
  • Review the software application prototype

Benefits:

Software testing SMEs can identify high level scenarios that will be executed, identify project dependencies, staffing, training required, approach to testing, tools that will support testing, testing effort and timeline.

Furthermore, once scenarios have been identified software testing SMEs perform the following activities

  • Create a draft approach of how testing will be executed
  • organise a walkthrough of the identified scenarios (automation and manual) and approach to testing with the team and stakeholders.
  • Receive feedback on high level test scenarios and approach to testing

Benefits:

From team members’ and stakeholders’ perspectives (technical and business), the test coverage confidence level is high, understanding of how testing will be executed, automation selection of test cases, clear understanding of and no ambiguities with respect to the design.

An increase in the identification of number of defects that may have crept into the application have been observed. The outcome of these activities also helps create a detailed and concise test plan which gets reviewed by all stakeholders before approval.

During the implementation phase of the software development life cycle, software testing SMEs:

  • prepare test data for testing activities,
  • reach out to other SMEs that will be supporting testing activities
  • deploy the code to test environment once available: Software testing SMEs can manage and control availability of test environment
  • identification and reporting of defect by organising a walkthrough of defects with the team for resolution
  • organise a review of all testing types with the team and stakeholder highlighting features tested with evidence (Functional and non-functional) before signoff
  • Review of defects identified and recommendations from the SMEs

Benefits:

Every stakeholder is aware of what has been developed versus design to be developed and identify the following

  • gaps in requirements using test evidence,
  • risks associated with the application using opened defects,

and get feedback for product improvement.

Software testing is key to delivering excellent quality product when practiced the right way with collaboration as the key ingredient to its success.

 

Latest