0% found this document useful (0 votes)
20 views29 pages

Module 1

The document outlines the syllabus for a software testing course, covering key topics such as popular errors, the importance of software testing, types of testing, and testing methods. It emphasizes the roles of verification and validation, the significance of test cases, and various testing types including functional, stress, performance, usability, and regression testing. Additionally, it discusses the testing process and levels of thinking for testers, highlighting the collaborative nature of software development and testing.

Uploaded by

safiyamujeeb76
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views29 pages

Module 1

The document outlines the syllabus for a software testing course, covering key topics such as popular errors, the importance of software testing, types of testing, and testing methods. It emphasizes the roles of verification and validation, the significance of test cases, and various testing types including functional, stress, performance, usability, and regression testing. Additionally, it discusses the testing process and levels of thinking for testers, highlighting the collaborative nature of software development and testing.

Uploaded by

safiyamujeeb76
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

SOFTWARE TESTING - CST458

Saju CJ
SYLLABUS : Module - 1

 Some Popular Errors – Ariane 5, Therac 25, Intel Pentium Bug.


 What is Software testing? Why should it be tested? Software Quality, Role of Testing.
 Testing Process –
 Level 0 thinking, Level 1 thinking, Level 2 thinking, Level 3 thinking, Level 4 thinking.
 Software Testing Terminologies –
 Verification, Validation and Testing, Faults, Error and Bug, Test cases, Coverage Criteria.
 Types of Testing-
 Unit testing, integration testing, System testing, Acceptance testing, Beta testing,
 Functional testing, Stress testing, Performance testing, Usability testing and Regression
testing.
 Testing Methods - Black Box testing, White Box testing, Grey Box testing.
What is SOFTWARE TESTING ?

 To check whether the actual software product matches expected requirements


 To understand gap / missing requirements in contrast to actual requirements
 To ensure that software product is Defect free
 To evaluate one or more properties of interest
 To identify any issue OR Bug’s
 Testing is done manual or automated tools
 If outcome matches desired expectations, before used by customer / end-user
Why should we TEST a software ?

 To achieve a bug free product


 To improve the software in terms of efficiency, accuracy, usability etc.
 Aims at measuring a Software functionality, scalability, performance etc.
 To identify any bugs or errors early, before its delivery to Customer
 To ensure reliability, security and high performance
 For time saving, cost effectiveness and MOST importantly …….. customer satisfaction
 Software bugs could be expensive or even dangerous like loss of human life(s)
 To evaluate the code, which is done as per Customer requirements
 Ensures that only quality products are released to consumers
ROLE for Software Testing?

 Important reasons why we do software testing:


 Identify defects early
 Improves product quality
 To Increase customer trust and satisfaction
 Detect security vulnerabilities
 Saves money
KEY Players

1) Customer
2) Developer
3) Tester
4) Sales (Marketing)
5) Manager (s)
6) Architect (Coding / Testing (or) both)
Software Quality VS Testing

Software Quality Testing


To ensure implementation of processes, To ensure the identification of
procedures and standards in context to bugs/error/defects in a software
verification of developed software and
intended requirements
Focuses only on processes and procedures Focuses on actual testing

Process-oriented activities Product-oriented activities

Preventive activities preventive process

subset of “Software Test Life Cycle” Testing is the subset of “Quality Control”
(corrective process)
VERIFICATION vs VALIDATION

 Verification:
 Refers to set of tasks that ensure that the software correctly implements a specific
function
 Testing done before customer delivery

 Validation:
 Refers to different set of tasks that ensure that the software that has been built is
traceable to customer requirements
 Its more Customer testing like Prototype, Acceptance Testing etc.
BUG vs DEFECT vs ERROR vs FAULT

Key players:

1. Developer
2. Tester
What is a TESTCASE ?

 Set of actions performed, to determine if it satisfies the requirement(s)


 Define how to test a Software
 Set of instructions for a tester, to validate a specific aspect of Software functionality
 If the test fails, the result might be a software defect that the organization can triage
 Document that gives detailed step-by-step instructions on how to perform Testing
 The conditions necessary for the start of the test with one or more inputs (if any)
 Group of conditions If a software is working as per the customer's requirement(s)
 Includes preconditions, Testcase ID, Testcase name, input(s), expected result etc.
COVERAGE Criteria

 Measures to qualify if a test objective is satisfied when executing test cases


 To estimate the quality of test cases
 Coverage Criteria has to be considered in software testing
 One or more rules that imposes test requirements on a Testcase
 Number of lines that are covered by a test and divide by the total number of lines in that
Software
 Example:
 Consider an Software with 5,000 lines of code
 If Testcases can test only 1,000 lines of code, then test/code coverage is 20%
Types of Testing

Types Done by Modules Tested


Unit Testing Developer One module

Integration testing Test Engineer 2+ module’s

System testing Test Engineer All modules (Complete


Software)

Acceptance testing Customer All modules

Beta testing Real user(s) All modules


Types of Testing
Types of Testing (Contd….)

Types Done by Modules Tested

Functional testing All modules


Tester
Stress testing ( sometimes by
Developer
/customer or
Performance testing anyone.. )

Usability testing

Regression testing
Functional Testing

Functionality: Set of functions that a Software can perform


Type of software testing that validates software against functional
requirements
Type of black-box testing (focuses on Software specification rather
than actual code)
Testcases are based on specifications of the software component(s)
under test
To verify the functionality of the software application, if the function is
working according to the requirement specification
To confirm if the functionality of an Software behaves as expected
Stress Testing

 Example of Stress Testing:


 During festival time, an online shopping site may witness a spike in traffic, or
when it announces a sale
 To check whether the system works under abnormal conditions
 To analyze the behavior of a software after a failure
 Displaying appropriate error message when the system is under stress
 To makes sure that the Software recovers after failure
 System failure under extreme conditions could result in enormous revenue loss
 It is better to be prepared for extreme conditions by executing Stress Testing
 To confirm if unexpected failures do not cause security issues
 If the software has saved the data before crashing or not
Performance Testing

 Its a non-functional software testing technique


 To verify the behavior of Software by applying some load
 To determine how the stability, speed, scalability, and responsiveness of
an Software holds up under a given workload
 Factors to be considered : Response time, Load, and Stability of Software
 objective is to eliminate performance congestion, identify bottlenecks
 This Testing is done only after a software is functionally stable and reliable
 Example :
 How quickly the server responds to the user's request
 Handling expected number of users or transactions
 A software can be accessed by multiple users concurrently
Performance vs Stress Testing

Performance Testing Stress Testing


to check under varying loads to check with sudden increase in
load
to determine the behavior of High load for an extended period, a
software under normal conditions software should not crash
Verifies scalability, speed, reliability, It verifies only the stability of the
etc. software
Load varies from lowest to highest load is directly changed from the
limit uniformly lowest to the highest(extreme) point
Usability Testing

 Focused on end-user, on how easily an user is able to use the interface like
GUI
 If design of the interface(GUI) was friendly enough
 it gives direct input on how real users access a software
 To measure how easy and user-friendly a software
 Focuses on user’s ease of using an Software
 How easy a design is to use with a group of representative users
 testing your product with real users and observe the user(s) behavior
 Example : Do users easily find the “buy now” button? on an e-commerce
website
 It covers Functional and Acceptance Testing
Regression Testing

 to confirm that a recent code change has not affected existing features
 Complete or partial selection of Testcases, are re-executed to ensure existing
functionalities work fine
 to ensure new code changes do not have side effects on already working
functionalities
 To make sure old code still works with the latest code changes
 This is done on already released product(to improve quality or additional feature
of an Software) or new Development
 Re-running functional and non-functional tests to ensure that previously
developed and tested software still performs as expected after a change
 Mostly done using Automation (OR) using already created scripts
Regression Testing - Example

 Chrome - first released in 2008

 Google Drive - Launched during 2012

 Google Classroom - release year: 2014

 Google Duo - Initial release Year: 2016

 Google Chat - release year 2017

 Google meet - replaced the consumer-facing Google Duo in late 2022


Testing Methods

BLACK Box testing GREY Box testing WHITE Box testing

Mostly done by Tester End-user (acceptance) Generally done by


testing developers
Testing has Low medium level of high-level granularity
granularity(scale or level of granularity
detail)
functionality of the combination of Black Box tests the software with
software is not known and the White Box Testing knowledge on source
technique(s) code
Test expected behavior of test design is tested by Testing developer’s point
Software Functions, from using the information of view
user’s point of view about the code
Testing Process (Thinking of a TESTER)

1. Level 0 (Developer)
• There’s no difference between testing and debugging.
2. Level 1 (Tester with Developer mind)
• To show if the software works.
3. Level 2 (Tester wants to dominate)
• Testing is done, show that the software doesn’t work.
4. Level 3 (Tester start to work with Developer)
• NOT to prove anything specific, but to reduce the risk of using the
software.
5. Level 4 (both Tester and Developer are in Sync)
• Testing is a mental discipline that helps all IT professionals develop
higher quality software
Testing process – Level 0

 debugging and not actual testing


 adopted by those interested in coding/Programming (CSE)
 students get their programs to compile, then debug the
programs
 inputs are chosen either arbitrarily or provided by professor
 This model does not distinguish between a program’s
incorrect behavior and a mistake within the program
 very little to help develop software that is reliable or safe
Testing process – Level 1

 purpose of testing is to show correctness


 Next level from 0-level, but both are similar
 Testing is ineffective, as no bugs were found
 Tester acts like a developer !
 Test team are unaware of what portion of software is tested
and pending scenarios/testcases
 no way to quantitatively express or evaluate their work
Testing process – Level 2

 To show that the software does not work


 purpose is to show failures
 Tester uses abnormal or negative or un-used scenarios
 level 2 testing puts testers and developers into an
BAD(conflict) relationship
 Tester finds failures but actual scenario/testcases are not
tested properly
Testing process – Level 3

 not to prove anything specific by the Tester


 To reduce bugs in software
 Tester can show the presence of “Test team”
 when we use software, we incur some risk(Bugs)
 Risk(Bugs) may be small or catastrophic, but risk is
always there
 both testers and developers START to work together
Testing process – Level 4

 To develop high quality software


 Software with low risk (Bug's)
 testers and developers are on the same “team”
 Find ways to increase quality
 Example : creating tests that cause the software to fail is
only one
 Tester takes responsibility of measuring and improving
software quality
 Tester expertise will help the developers
Questions

1. Why do we need Testing in developing a software ?


2. How do you plan Testing ?
3. If a Tester is new for testing, which level of thinking he has ?
4. If a Tester has coding knowledge, what Testing method can be done ?
5. What is the difference between Software Quality and Software Testing ?
6. To develop a good quality software, what level of thinking a Tester need ? Explain why ?
7. Difference between Verification and Validation ?
8. Imagine you are testing a new software for chat application, write 5 testcases to test this new CHAT software
9. If tester has tested 900 lines of code in a software with 1000 lines of code(in total), what is the code coverage for this testing ?
10. When can a BUG be also called as DEFECT ?
11. Can Acceptance and Beta testing be similar ? Explain with reason ?
12. In which scenario does both Stress and Performance testing are

Common questions

Powered by AI

Software testing aims at ensuring a defect-free product by identifying bugs early, before delivery to customers, which improves product quality. It helps in evaluating software functionality, scalability, and performance to meet efficiency, accuracy, and usability goals. Testing ensures reliability, security, and high performance, leading to cost savings, and most importantly, customer satisfaction. This process is crucial as software bugs can be expensive or dangerous, such as the loss of human lives .

Black-box testing examines software functionality without knowledge of internal code, focusing on user input and output, generally performed by testers . White-box testing involves an in-depth understanding of source code to test internal structures and logic, typically performed by developers. Grey-box testing combines aspects of both, examining functionalities while having partial knowledge of the internal code, often undertaken during integration testing by both testers and developers or domain experts .

Regression testing involves re-executing selected test cases to confirm recent code changes do not adversely affect existing functionalities. It is typically automated, using scripts to repeat functional and non-functional tests. This practice ensures new code doesn't introduce new bugs or conflicts with the old code, preserving software stability and quality over its lifecycle . It's significant because it maintains software reliability as modifications occur, critical for quality assurance when releasing updates or integrating new features .

Coverage criteria are crucial in software testing as they measure whether test objectives are satisfied when executing test cases. They estimate the quality of test cases by applying rules that impose test requirements, which help in evaluating whether sufficient parts of the software are tested. For example, test/code coverage is calculated by dividing the number of lines tested by the total lines of code, like a coverage of 20% if 1,000 out of 5,000 lines are tested . This evaluation ensures comprehensive testing and helps identify untested areas, directing improvements in test planning and execution.

Unit testing involves testing individual modules or components of a software by developers to ensure each part functions correctly in isolation . Integration testing is conducted by test engineers to verify the interfaces between different modules, ensuring combined components work together as expected. System testing, broader in scope, is performed by test engineers to assess the complete and integrated software for compliance with requirements. Each testing type incrementally broadens the focus from individual components to interactions and system-level operations .

Stress testing assesses software behavior under extreme, unpredictable load conditions to ensure stability and recovery capabilities, often used to identify crash points and potential security issues, like during a traffic spike on an e-commerce site . Performance testing, on the other hand, measures how the software behaves under a normal workload, focusing on parameters like response time, speed, and scalability. It aims to identify bottlenecks and performance congestion after the software is functionally stable . While stress testing ensures robustness under duress, performance testing verifies normal operational effectiveness.

Software testing focuses on identifying bugs and defects in the software through actual testing activities, making it a product-oriented, corrective process. It ensures that software operates as intended according to requirements. Software quality assurance, on the other hand, involves process-oriented activities that ensure the implementation of processes, procedures, and standards to verify that the software meets defined standards and requirements. While testing is a subset of quality control dealing with defect identification, quality assurance acts as a preventive measure within the Software Test Life Cycle .

Test cases are designed to evaluate whether specific aspects of software functionality meet the requirements. They include detailed step-by-step instructions, preconditions, inputs, expected results, and test case identifiers, such as Testcase ID and name. Comprehensive coverage is ensured by thoroughly defining these elements to address functionality verification and validation across various scenarios and conditions, including edge and negative cases. Effective test case design involves assessing software behavior under different conditions to guarantee all aspects are evaluated .

The levels of thinking in software testing affect team dynamics significantly. At Level 0, there's no distinction between testing and debugging, often leading to an ineffective, developer-centric approach. Level 1 assumes testing proves correctness but often misses defects, fostering a developer-like mindset in testers. Level 2 encourages finding failures, creating conflict between testers and developers. Level 3 aims to reduce software risks without proving anything specific, beginning collaboration between testers and developers. At Level 4, the focus is on developing high-quality software with low risk, fostering a team approach where testers and developers work in sync to improve software quality .

Verification involves tasks that ensure the software correctly implements specific functions before customer delivery, focusing on whether the development is accurate concerning design specifications, such as code reviews or inspections . Validation, however, ensures that the software meets customer requirements and includes customer testing activities like prototype evaluations and acceptance testing, confirming that the software performs its intended tasks effectively in real-world scenarios .

You might also like