Unit 4 Software Testing
Unit 4 Software Testing
4.1Test Management
Test Management is a process of managing the testing activities in
order to ensure high quality and high-end testing of the software
application. The method consists of organizing, controlling, ensuring
traceability and visibility of the testing process in order to deliver a
high-quality software application. It ensures that the software testing
process runs as expected.
Test Management Phases
Planning
1. Risk Analysis
2. Test Estimation
3. Test Planning
4. Test Organization
Execution
Planning
Risk Analysis and Solution
Risk is the potential loss (an undesirable outcome, however not
necessarily so) resulting from a given action or an activity.
Risk Analysis is the first step that Test Manager should consider
before starting any project. Because all projects may contain risks,
early risk detection and identification of its solution will help Test
Manager to avoid potential loss in the future & save on project costs.
Test Estimation
An estimate is a forecast or prediction. Test Estimation is
approximately determining how long a task would take to complete.
Estimating effort for the test is one of
the major and important tasks in Test Management.
Test Strategy
Test Objective
Exit /Suspension Criteria
Resource Planning
Test Deliverables
Test Organization
Test Organization in Software Testing is a procedure of defining
roles in the testing process. It defines who is responsible for which
activities in the testing process. The same process also explains test
functions, facilities, and activities. The competencies and knowledge
of the people involved are also defined. However, everyone is
responsible for the quality of the testing process.
Execution
Test Monitoring and Control
What will you do when your project runs out of
resources or exceeds the time schedule? You need to Monitor and
Control Test activities to bring it back on schedule.
1. Objective: It describes the aim of the test plan, whatever the good
process and procedure they are going to follow to give quality software to
customers. The overall objective of the test is to find as many defects as
possible and to make software bug-free. The test objective must be broken
into components and sub-components. In every component following
activities should be performed.
List all the functionality and performance to be tested.
Make goals and targets based on the application feature.
2. Scope: It consists of information that needs to be tested concerning an
application. The scope can be divided into two parts:
In-Scope: The modules that are to be tested rigorously.
Out Scope: The modules that are not to be tested rigorously.
Example: In an application A, B, C, and D features have to be developed,
but the B feature has already been designed by other companies. So the
development team will purchase B from that company and perform only
integrated testing with A, B, and C.
3. Testing Methodology: The methods that are going to be used for testing
depend on application to application. The testing methodology is decided
based on the feature and application requirements.
Since the testing terms are not standard, one should define what kind of
testing will be used in the testing methodology. So that everyone can
understand it.
4. Approach: The approach of testing different software is different. It
deals with the flow of applications for future reference. It has two aspects:
High-Level Scenarios: For testing critical features high-level scenarios
are written. For Example, login to a website, and book from a website.
The Flow Graph: It is used when one wants to make benefits such as
converging and merging easy.
5. Assumption: In this phase, certain assumptions will be made.
Example:
The testing team will get proper support from the development team.
The tester will get proper knowledge transfer from the development
team.
Proper resource allocation will be given by the company to the testing
department.
6. Risk: All the risks that can happen if the assumption is broken. For
Example, in the case of wrong budget estimation, the cost may overrun.
Some reason that may lead to risk is:
Test Manager has poor management skills.
Hard to complete the project on time.
Lack of cooperation.
7. Mitigation Plan: If any risk is involved then the company must have a
backup plan, the purpose is to avoid errors. Some points to resolve/avoid
risk:
Test priority is to be set for each test activity.
Managers should have leadership skills.
Training course for the testers.
8. Roles and Responsibilities: All the responsibilities and role of every
member of a particular testing team has to be recorded.
Example:
Test Manager: Manages the project, takes appropriate resources, and
gives project direction.
Tester: Identify the testing technique, verify the test approach, and save
project costs.
9. Schedule: Under this, it will record the start and end date of every
testing-related activity. For Example, writing the test case date and ending
the test case date.
10. Defect Tracking: It is an important process in software engineering as
lots of issue arises when you develop a critical system for business. If there
is any defect found while testing that defect must be given to the developer
team. There are the following methods for the process of defect tracking:
Information Capture: In this, we take basic information to begin the
process.
Prioritize: The task is prioritized based on severity and importance.
Communication: Communication between the identifier of the bug and
the fixer of the bug.
Environment: Test the application based on hardware and software.
Example: The bug can be identified using bug-tracking tools such as Jira,
Mantis, and Trac.
11. Test Environments: It is the environment that the testing team will
use i.e. the list of hardware and software, while testing the application, the
things that are said to be tested will be written under this section. The
installation of software is also checked under this.
Example:
Software configuration on different operating systems, such as
Windows, Linux, Mac, etc.
Hardware Configuration depends on RAM, ROM, etc.
12. Entry and Exit Criteria: The set of conditions that should be met to
start any new type of testing or to end any kind of testing.
Entry Condition:
Necessary resources must be ready.
The application must be prepared.
Test data should be ready.
Exit Condition:
There should not be any major bugs.
Most test cases should be passed.
When all test cases are executed.
Example: If the team member reports that 45% of the test cases failed,
then testing will be suspended until the developer team fixes all defects.
Example of Test Plan
In other words, the test process evaluates the software applications and their
components to find their compliance with the Software Requirements
Specification (SRS) with the intent to identify errors.
Technical Skills:
1. Testing Techniques: Knowledge of various testing types such as functional testing,
regression testing, performance testing, etc.
2. Test Automation: Proficiency in automated testing tools and frameworks (e.g.,
Selenium, JUnit, TestNG) to improve efficiency and coverage.
3. Programming: Basic to advanced programming skills (depending on the role) in
languages like Java, Python, C#, etc., for scripting and test automation purposes.
4. Database Skills: Ability to write and execute SQL queries to validate data integrity
and conduct backend testing.
1. Critical Thinking: Ability to analyze complex systems and identify potential areas
of risk or improvement.
2. Problem-Solving: Capacity to troubleshoot issues, identify root causes, and propose
solutions.
Communication Skills:
1. Written Communication: Writing clear and concise bug reports, test plans, and test
cases.
2. Verbal Communication: Clearly articulating testing status, issues, and
recommendations to stakeholders, including developers and project managers.
Domain Knowledge
1. Understanding of the Domain: Familiarity with the industry or domain the software
serves, which aids in understanding user requirements and potential use cases.