ST Assignment Ans
ST Assignment Ans
Assignment
Sr.
Questions
No
1 Explain SDLC and STLC Model with difference.
Besides development
It focuses only on testing
Focus other phases like testing
the software.
is also included.
Validation Phases
The different Validation Phases in a V-Model are explained in detail below.
Unit Testing
Unit tests designed in the module design phase are executed on the code during this
validation phase. Unit testing is the testing at code level and helps eliminate bugs at
an early stage, though all defects cannot be uncovered by unit testing.
Integration Testing
Integration testing is associated with the architectural design phase. Integration tests
are performed to test the coexistence and communication of the internal modules
within the system.
System Testing
System testing is directly associated with the system design phase. System tests check
the entire system functionality and the communication of the system under
development with external systems. Most of the software and hardware compatibility
issues can be uncovered during this system test execution.
Acceptance Testing
Acceptance testing is associated with the business requirement analysis phase and
involves testing the product in user environment. Acceptance tests uncover the
compatibility issues with the other systems available in the user environment. It also
discovers the non-functional issues such as load and performance defects in the actual
user environment.
W-model is the most recent software development model where we start real testing
activity simultaneously software development process. Where software development
process is a method in which a software or product is made through various stages of
planning, development, and testing before the final software or product is delivered.
testing is such a stage that is extremely crucial to ensure the delivery of an optimum
quality product.
V-model and W-model are two of the most important models that are used in
software testing.
W-Model covers those activities that are skipped by V-Model and also, it deals with
problems that couldn’t be caught by V-Model.
W-Model approach attempts to address and tackle the shortcomings W-Model
approach attempts to address and tackle the shortcomings of V-Model.
W-model can be done only once the development of the product is complete with no
modifications required to be done in between. This type of testing is most suitable for
short projects.
With the help of W-Model, we ensure that the testing of the product starts from the
very first day of the inception of the product, and each phase of the product
development is verified and validated.
w-model
W-Model
Phases of W-Model
Each phase is verified/validated. Dotted line shows that every phase in green is
2. Test Script
A test script is a set of instructions that are used to execute a test case. Test scripts can
be manual or automated.
3. Test Data
Test data is the input data that is used to test a software application. Test data can
include user input, database data, or other types of data.
4. Defect
A defect is a flaw or error in a software application that causes it to behave in an
unintended way.
5. Bug
A bug is a synonym for a defect.
6. Error
An error is a mistake or inaccuracy in a software application that causes it to behave in
an unintended way.
7. Failure
A failure is when a software application does not meet its requirements or
specifications.
Manual Testing
Manual testing is a type of software testing where a tester manually executes test cases
to identify defects in the software application. Manual testing involves:
1. Test Case Creation: Creating test cases based on the software requirements and
specifications.
2. Test Environment Setup: Setting up the test environment, including hardware,
software, and network configurations.
3. Test Execution: Executing the test cases manually, either by interacting with the
software application directly or by using test data.
4. Defect Reporting: Reporting defects found during testing, including steps to
reproduce, expected results, and actual results.
Advantages of Manual Testing:
1. Flexibility: Manual testing allows testers to be flexible and adapt to changing
requirements.
2. Exploratory Testing: Manual testing enables exploratory testing, where testers can
explore the software application and identify defects that may not have been caught
through automated testing.
3. Human Judgment: Manual testing involves human judgment, which can be
beneficial in identifying defects that may not be caught through automated testing.
Automation Testing
Automation testing is a type of software testing where automated tools are used to
execute test cases and identify defects in the software application. Automation testing
involves:
1. Test Script Creation: Creating test scripts using automated testing tools, such as
Selenium or Appium.
2. Test Environment Setup: Setting up the test environment, including hardware,
software, and network configurations.
3. Test Execution: Executing the test scripts using automated testing tools.
4. Defect Reporting: Reporting defects found during testing, including steps to
reproduce, expected results, and actual results.
QA (Quality Assurance)
QA is a systematic process that ensures software development and testing activities
conform to defined standards, processes, and procedures. QA focuses on preventing
defects and ensuring the overall quality of the software development process.
Goals of QA:
1. Ensure compliance: Ensure that software development and testing activities comply
with defined standards, processes, and procedures.
2. Prevent defects: Identify and mitigate potential defects early in the software
development process.
3. Improve processes: Continuously improve software development and testing
processes to ensure high-quality software.
QA Activities:
1. Process development: Develop and maintain software development and testing
processes.
2. Audits and reviews: Conduct regular audits and reviews to ensure compliance with
defined processes and standards.
3. Training and awareness: Provide training and awareness programs to ensure that
team members understand and follow defined processes and standards.
QC (Quality Control)
QC is a systematic process that evaluates the quality of software during and after
development. QC focuses on detecting and removing defects in the software.
Goals of QC:
1. Detect defects: Identify defects in the software during and after development.
2. Ensure quality: Ensure that the software meets defined quality standards and
requirements.
3. Improve quality: Continuously improve the quality of the software through defect
removal and process improvement.
QC Activities:
1. Testing: Perform various types of testing, such as unit testing, integration testing,
and system testing.
2. Defect tracking and reporting: Track and report defects found during testing.
3. Defect fixing and retesting: Fix defects and retest the software to ensure that defects
are removed.
Key Differences between QA and QC:
1. Focus: QA focuses on preventing defects and ensuring the overall quality of the
software development process, while QC focuses on detecting and removing defects in
the software.
2. Scope: QA encompasses the entire software development process, while QC is
focused on the testing and quality evaluation phases.
3. Activities: QA activities include process development, audits, and reviews, while
QC activities include testing, defect tracking, and defect fixing.
4. Timing: QA is an ongoing process that occurs throughout the software development
life cycle, while QC occurs during and after the development phase.
By creating and executing test cases like this one, we can ensure that our software
meets the required functionality and quality standards.
7 Explain Test Plan with Example.
Test Scope:
Test Schedule:
Test Deliverables:
Test Resources:
Test Environment:
- The testing will take place in a controlled environment with the following
configuration:
- Windows 10 operating system
- Google Chrome browser
- Internet connection with a speed of at least 10 Mbps
Test Data:
Test Risks:
- The testing may be delayed due to technical issues or availability of test resources.
- The testing may not cover all the possible scenarios or edge cases.
2.Static Analysis: Static Analysis includes the evaluation of the code quality that is
written by developers. Different tools are used to do the analysis of the code and
comparison of the same with the standard
5. Dynamic testing:
Dynamic testing is a type of software testing that involves executing the software
and evaluating its behavior during runtime. It used to analyze the dynamic
behavior of the code. It includes the testing of the software for the input values
and output values that are analyzed. It is performed to describe the dynamic
behavior of code. It refers to the observation of the physical response from the
system to variables that are not constant and change with time.
1. Equivalence Partitioning
Equivalence partitioning is a black-box testing method that involves dividing the input
data into partitions based on the requirements of the software. The goal of equivalence
partitioning is to test each partition with at least one test case.
Example:
Suppose we are testing a software that accepts ages of users and categorizes them into
three groups: children (0-12), teenagers (13-19), and adults (20 and above).
Partitions:
1. Children (0-12)
2. Teenagers (13-19)
3. Adults (20 and above)
Test Cases:
1. Test case 1: Input age = 10 (children partition)
- Expected output: "Children"
2. Test case 2: Input age = 15 (teenagers partition)
- Expected output: "Teenagers"
3. Test case 3: Input age = 25 (adults partition)
- Expected output: "Adults"
Example:
Using the same example as above, the boundaries of the partitions are:
Test Cases:
1. Test case 1: Input age = 0 (lower boundary of children partition)
- Expected output: "Children"
2. Test case 2: Input age = 12 (upper boundary of children partition)
- Expected output: "Children"
3. Test case 3: Input age = 13 (lower boundary of teenagers partition)
- Expected output: "Teenagers"
4. Test case 4: Input age = 19 (upper boundary of teenagers partition)
- Expected output: "Teenagers"
5. Test case 5: Input age = 20 (lower boundary of adults partition)
- Expected output: "Adults"
1. Equivalence Partitioning
Equivalence partitioning is a black-box testing method that involves dividing the input
data into partitions based on the requirements of the software. The goal of equivalence
partitioning is to test each partition with at least one test case.
Example:
Suppose we are testing a software that accepts ages of users and categorizes them into
three groups: children (0-12), teenagers (13-19), and adults (20 and above).
Partitions:
1. Children (0-12)
2. Teenagers (13-19)
3. Adults (20 and above)
Test Cases:
1. Test case 1: Input age = 10 (children partition)
2. Test case 2: Input age = 15 (teenagers partition)
3. Test case 3: Input age = 25 (adults partition)
Example:
Using the same example as above, the boundaries of the partitions are:
Test Cases:
1. Test case 1: Input age = 0 (lower boundary of children partition)
2. Test case 2: Input age = 12 (upper boundary of children partition)
3. Test case 3: Input age = 13 (lower boundary of teenagers partition)
4. Test case 4: Input age = 19 (upper boundary of teenagers partition)
5. Test case 5: Input age = 20 (lower boundary of adults partition)