Software Testing

In our previous posts we´ve been talking about Software Quality and one of the main activities regarding this most “wanted goal” is Software Testing. So, today we are finally going to talk about Software Testing and this post is going to be divided in:

  1. Software Testing process
  2. Types and levels of testing
  3. Activities and roles in testing
  4. Testing environments
  5. Test Case Design techniques
  6. Process for control and management of defects in artifacts
Tests
Tests by Lachlan Hardy under All Commons license

Software Testing Process

The process of Software Testing can be summarized on the following steps:

  1. Test Strategy and Test Plan
  2. Test Design
  3. Test Execution
  4. Test Closure

Test Strategy and Test Plan

On this phase, your testing plan should include something like this:

  • The system that needs to be tested, and any specific configurations
  • Features and functions that are the focus on the project
  • Non-functional requirements
  • Test approach
  • Key processes to follow
  • Tools
  • Documentation to refer and to produce as output
  • Test environment requirements and setup
  • Risks, dependencies and contingencies
  • Test schedule
  • Entry/Exit criteria

Test Design

This phase normally involves creating test scenarios. This is a preparation of what you expect as an output, giving what your test should show or give as a result and creating a test suite. A test suite is a collection of test cases that are necessary to validate the system that is being created in contrast with its original requirements.

Test Execution

For executing a test, there are multiple ways of doing so. Some of the most known are as a single, waterfall SIT (System Integration Testing) and UAT(User Acceptance Test). You can also complement with Test-Driven Development (take a look on one of my previous post Test Driven Development!). Last but not least, you need to do an adequate amount of software testing to ensure your system is bug-free…. relatively.

Test Closure

You can make a test closure once:

  • 100% requirements coverage: all business and technical requirements have to be covered by testing.
  • Minimum percentage pass rate: targeting 90% of all test cases to be passed is considered best practice.
  • All critical defects to be fixed: self-explanatory.
process
process by Ali Edwards under All Commons license.

Types and levels of testing

For types of testing we can segment them into two chunks:

Automation Testing

Considered as when the tester writes scripts and uses them for another software in order to test the product. This type of testing is used to re-run the test scenarios that were performed manually, quickly and repeatedly. We can basically considered this type of testing as a process that involves automation of a manual process.

Manual Testing

Opposite of Atuomation testing. Script or other type of non-automation process software is not used. On this type of testing, the tester takes over the role of an end-user and tests manually the software to identify any unexpected behavior or bug.

As for levels of testing, we can consider the following:

Unit Testing

Unit Testing is used to check if the individual modules of the source code are working correctly. We divide the whole system into little units so we can proceed to test each and every unit in a separate way.

Integration Testing

In Integration Testing we combine different parts of the software to determine if they work correctly between these two. This type of testing can be done in two ways: Bottom-up and Top-down integration testing.

System Testing

The software is tested as a whole. Once all the components are integrated, the application is tested as a whole in a rigorously way in order to meet standards, whether quality or client´s requirements.

Acceptance Testing

Obtain client´s sign’off so the system can be delivered.

There are a lot of types of software testing, obviously depending of what you want to test, so you can take a look on Software Testing Help´s post here to take a deeper dive.

Structure
Structure by Toshiyuki IMAI under All Commons license.

Activities and roles of testing.

QA Leader

QA Leader is the most important member of the testing team. While it is extremely crucial for him/her to have a clear understanding of the testing process or methodology. It is also essential for him/her to be familiar with the varied test-program concerns such as test environment and data management, trouble reporting and resolution, etc.

Test Leader

With a clear understanding about the applications business area and its requirements, a test lead is a person who is also familiar with the varied test-program issues such as test data management, test design, and test development.

Test Engineer

The role of a test engineer is to determine the best way to create a process that can enable one to test a particular product in the best possible manner. Test engineers can have different expertise based on which they are assigned a role in a company. Some of these are:

  • Usability Test Engineer
  • Manual Test Engineer
  • Automated Test Engineer

Network Test Engineer

With a high level of proficiency and expertise in a variety of technical skills such as programming languages, database technologies, and computer operating systems, network test engineers are good at product evaluation and integration skills.

Tester

Having a sound knowledge about various concepts involved in test designing and execution methodologies, a software tester is the one who is able to interact efficiently with the development team.

Pixel tester
Pixel tester by Becky Stern under All Commons license.

Testing environments

A test environment is a place that allows the tester or developer to run test case that are already defined. This space provides accurate feedback about the quality and behavior of the application that´s under test.

Some testing environments are Prometheus and DataDog. Of course, for some “low level” software, talking about code itself, there are a lot of IDE which includes a Debugger, such as Visual Studio Code and Eclipse.

Environment
Environment by Howard Lake under All Commons license.

Test Case Design techniques

The approach of the Test Case Design techniques is to test functionalities and features of the software with help of effective test cases. Some techniques are:

  • Specification-Based techniques
  • Structured-Based techniques
  • Experience-Based techniques

Specification-Based techniques

Also known as Black-Box technique, consists of the external description of the software in name such as technical specifications, design and client´s requirements to design test cases. This technique enables testers to develop test cases that provide full test coverage.

Structured-Based techniques

Also known as White Box technique, is based on the internal structured of the software. Here, we exhaustively test the code developed.

Experience-Based techniques

The outcomes of these techniques are based on the skills, knowledge and expertise of the people involved.

technique
technique by Chris Bögle under All Commons license.

Process for control and management of defects in artifacts

When a system gives a different output other than the actual business requirement we can say that there is a defect in the system/software. This is often known when the testing team executes the test cases and they come across a situation where the actual test result is different from the expected result. This is most known as a defect.

Defect
Defect by Arjan Almekinders under All Commons license.

Defect Management is a systematic process to identify and fix bugs.

A defect management cycle contains the following stages:

  1. Discovery of Defect: The project teams have to discover as many defects possible
  2. Defect Categorization: Prioritize tasks based on defects discovered.
  3. Fixing of Defect: Defect assignments and schedule to developers; fixed and send report of resolution to the test manager.
  4. Verification: Testing team verifies that the defects are resolved correctly.
  5. Defect Closure: Once a defect has been considered resolved and verified, the defect is categorized as closed.
  6. Defect Reports: Feedback is sent based on the management process and defects´status.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Blog at WordPress.com.

Up ↑

Create your website with WordPress.com
Get started
<span>%d</span> bloggers like this: