KEMBAR78
H220591F Software Testing | PDF | Software Testing | Software Engineering
0% found this document useful (0 votes)
6 views5 pages

H220591F Software Testing

SOFTWARE TESTING

Uploaded by

Tatenda Gori
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)
6 views5 pages

H220591F Software Testing

SOFTWARE TESTING

Uploaded by

Tatenda Gori
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
You are on page 1/ 5

NAME: MUJAKU TONDERAI

REG No: H220591F

DEPARTMENT: INFORMATION TECHNOLOGY

SCHOOL: INFORMATION SCIENCE AND TECHNOLOGY

COURSE: SOFTWARE TESTING IIT2105

TEST 2
QUESTIONS

1. Discuss techniques for selection of test cases during regression testing. [6]
2. While reviewing the necessary regression tests that are needed for a particular story,
you notice there are currently no automated tests available. Describe what your next
step would be. [6]
3. A program will experience 100 failures in infinite time. It has now experienced 50
failures. The initial failure is 10 failures/hour, Use the Basic Execution Time Model
for the following:
i. Find the present failure intensity. [3]
ii. Calculate the decrement of failure intensity per failure. [3]
iii. Determine the failure experienced and failure intensity after 10 and 50 hours
of execution. [4]
4. Explain why should we test software? [3]
SOLUTIONS

1.
i. Re-test All: This technique involves executing all the test cases that were previously
executed during the initial testing phase. It ensures that all functionalities and features
are tested again to ensure they still work as intended. While it provides
comprehensive coverage, it can be time-consuming and may not be feasible for large
systems.

ii. Risk-based Testing: This technique prioritizes test cases based on the level of risk
associated with specific functionalities or modules. Test cases that cover critical
functionalities or areas with a high impact on the system are given higher priority.
This approach helps to focus testing efforts on areas that are most likely to be affected
by changes.

iii. Code Change Impact Analysis: This technique involves analyzing the code changes
made since the last testing cycle and selecting test cases that are likely to be impacted
by those changes. This can be done by reviewing the change logs, code diffs, or using
automated tools that identify code coverage.

iv. Test Case Prioritization: In this technique, test cases are prioritized based on their
importance, complexity, or frequency of use. Higher priority test cases are executed
first, ensuring that critical functionalities are thoroughly tested before lower priority
ones. This approach helps in identifying critical issues early in the regression testing
cycle.

v. Boundary Value Analysis: This technique focuses on selecting test cases that test the
boundaries or limits of input values for various functionalities. By testing both the
lower and upper boundaries, potential issues related to boundary conditions can be
identified.

vi. Equivalence Partitioning: This technique involves dividing the input data into
different equivalence classes and selecting test cases that cover each class. This helps
to reduce redundancy and ensures that representative test cases are selected to validate
the system's behaviour.
2. My next step would be to:

Identify Key Test Cases: Identify the test cases that need to be automated. These
should cover all the critical paths and functionalities of the story.

Prioritize Test Cases: Prioritize these test cases based on their importance, complexity,
and frequency of use.

Choose a Suitable Automation Tool: Choose an automation tool that is suitable for
your application and team’s skill set.

Write Automation Scripts: Write automation scripts for the prioritized test cases.
Make sure to follow good coding practices and maintain a proper structure for easy
maintenance and understanding.

Review and Refactor: Review the scripts and refactor if necessary. This ensures that
the scripts are efficient and maintainable.

Execute Automated Tests: Execute the automated tests and analyze the results. Make
sure to fix any issues or bugs that are found during this process.

Integrate with CI/CD: Integrate these automated tests into your Continuous
Integration/Continuous Deployment (CI/CD) pipeline. This ensures that the tests are
run automatically whenever there are changes in the code.

Maintain Test Scripts: Regularly maintain and update these test scripts as per changes
in the application.

3. i. The present failure intensity:

Present Failure Intensity = 10* e^(-0.3 * 50)


= 0.37 failures/hour

ii. The decrement of failure intensity per failure:


= ln(Failure Intensity Before - Failure Intensity After) / Number of Failures
= ln(0.34 failures/hour - 10 failures/hour) / 50
= 0.3failures/hour
iii. After 10 hours:
Failure Experienced = (Failure Intensity) * (Time of Execution)
Failure Experienced = 10 failures/hour * 10 hours = 100 failures

Failure Intensity = Present Failure Intensity


= 10 failures/hour

After 50 hours:
Failure Experienced = (Failure Intensity) * (Time of Execution)
Failure Experienced = 10 failures/hour * 50 hours
= 500 failures

Failure Intensity = Present Failure Intensity


= 10 failures/hour

4. Testing is crucial for several reasons:

Quality Assurance: Testing ensures that the software meets the specified requirements
and performs its intended functions correctly.

Detecting Defects: It helps in identifying and fixing bugs or defects in the software
before it is delivered to the end-users.

User Satisfaction: By ensuring that the software works as expected, testing helps in
improving user satisfaction and trust in the product.

Cost-Effective: Detecting and fixing issues early in the development process can save
time and money in the long run.

Security: Testing can help identify vulnerabilities and security issues, which is crucial
in today’s digital world.

You might also like