SW Engineering Assignment 3
SW Engineering Assignment 3
Ans : Software testing is defined as an activity to check whether the actual results match the
expected results and to ensure that the software system is defects free. It involves execution
of a software component or system component to evaluate one or more properties of interest.
Software testing also helps to identify errors, gaps or missing requirements in contrary to the
actual requirements. It can be either done manually or using automated tools.
Software Testing Types:
Manual Testing: Manual testing is the process of testing software by hand to learn more
about it, to find what is and isn’t working. This usually includes verifying all the features
specified in requirements documents, but often also includes the testers trying the software
with the perspective of their end user’s in mind.
Automation Testing: Automation testing is the process of testing the software using an
automation tool to find the defects. In this process, testers execute the test scripts and
generate the test results automatically by using automation tools. Some of the famous
automation testing tools for functional testing are QTP/UFT and Selenium.
Testing Approaches:
There are three types of software testing approaches.
White Box Testing: It is also called as Glass Box, Clear Box, Structural Testing. White Box
Testing is based on applications internal code structure. In white-box testing, an internal
perspective of the system, as well as programming skills, are used to design test cases. This
testing is usually done at the unit level.
Grey Box Testing: Grey box is the combination of both White Box and Black Box
Testing. The tester who works on this type of testing needs to have access to design
documents. This helps to create better test cases in this process.
Testing Levels:
1. Unit Testing
2. Integration Testing
3. System Testing
1. Unit Testing: Unit Testing is done to check whether the individual modules of the
source code are working properly. i.e. testing each and every unit of the application
separately by the developer in the developer’s environment. It is AKA Module
Testing or Component Testing
3. System Testing (end to end testing): It’s a black box testing. Testing the fully
integrated application this is also called as end to end scenario testing. To ensure that
the software works in all intended target systems. Verify thorough testing of every
input in the application to check for desired outputs. Testing of the users experiences
with the application.
Question 3: What are the difference between defect amplification and defect removal?
Ans : Defect amplification model is used to illustrate the generation and detection of
errors during the preliminary design, detail design, and coding steps of the software
engineering process.
Definition Automation Testing uses automation In manual testing, test cases are
tools to execute test cases. executed by a human tester and
software.
Processing Automated testing is significantly faster Manual testing is time-
time than a manual approach. consuming and takes up human
resources.
Reliability Manual testing is not as
Automated testing is a reliable method, accurate because of the
as it is performed by tools and scripts. possibility of the human errors.
There is no testing Fatigue.
Cost-effective Not cost effective for low volume Not cost effective for high
regression volume regression.
Human Automated testing does not involve The manual testing method
observation human consideration. So it can never allows human observation,
give assurance of user-friendliness and which may be useful to offer
positive customer experience. user-friendly system.
Performance Performance Tests like Load Testing, Performance Testing is not
Testing Stress Testing, Spike Testing, etc. have feasible manually
to be tested by an automation tool
compulsorily.
Programming Programming knowledge is a must in No need for programming in
knowledge automation testing. Manual Testing.
Ideal approach Automation testing is useful when Manual testing proves useful
frequently executing the same set of test when the test case only needs to
cases run once or twice.
Framework Automation testing uses frameworks Manual Testing does not use
like Data Drive, Keyword, Hybrid to frameworks but may use
accelerate the automation process. guidelines, checklists, stringent
processes to draft certain test
cases.
Documentation Automated Tests acts as a document Manual Test cases provide no
provides training value especially for training value
automated unit test cases. A new
developer can look into a unit test cases
and understand the code base quickly.
When to Use? Automated Testing is suited for Manual Testing is suitable for
Regression Testing, Performance Exploratory, Usability and
Testing, Load Testing or highly Adhoc Testing. It should also be
repeatable functional test cases. used where the AUT changes
frequently.
Question 5: What are the possible test cases? Test any one software application of your
choice by the available online tool of your choice.
A test case is a document, which has a set of test data, preconditions, expected results and
postconditions, developed for a particular test scenario in order to verify compliance against
a specific requirement.
Test Case acts as the starting point for the test execution, and after applying a set of input
values, the application has a definitive outcome and leaves the system at some end point or
also known as execution postcondition.
If the expected result doesn't match with the actual result, then we log a defect. The defect
goes through the defect life cycle and the testers address the same after fix.