Inputs for Experiment 3:
SOFTWARE TESTING
Testing of software can be done in both Automation and Manual testing method, but it’s
totally depends on the project requirement, budget associated with the project, and which
testing method will be benefited to the project. This article provides basic information about
Manual Testing and Automation Testing, enjoy reading it and let us know in the comment
about which one is best for your project.
Automation Testing:
The method takes automation tool support to execute the test cases is known as Automation
Testing. Automated testing is good for large project.
It is a method which uses automation tools to run tests that repeat predefined actions, matches
the developed program’s probable and real results. If the project prospects and results align,
your project is behaving as it should, and you are likely bug free. If the two don’t align, still,
there is a problem that requires to be addressed. You’ll have to take a look at your code, alter
it, and continue to run tests until the actual and expected outcomes align.
Manual Testing:
Manual testing is a method used by software developers to run tests manually.There are many
manual testing types which are carried out manually as well as automatically. These are,
Black Box Testing – It is a testing method to test functionalities and requirements of the
system. It does not test the internal part of the system.
White Box Testing – It is a testing method based on information of the internal logic of an
application’s code and also known as Glass box Testing. It works on Internal working code of
the system. Tests are based on coverage of code statements, branches, paths, conditions.
Integration Testing – Integrated modules testing method to verify joint functionality after
integration. Modules are typically code modules, individual applications, client and server
applications on a network, etc. This type of testing is especially applicable to client/server
and distributed systems.
System Testing – It is a technique to test whole system.
Unit Testing – Testing method to test specific component of software or module. It is
specially done by programmers and not by testers, because it needs thorough knowledge of
the internal programming design and code.
Acceptance Testing –This type of testing verifies that the system meets the customer
specified requirements or not. User or a customer does this testing to decide whether to
accept application.
Comparison between Automation Testing and Manual testing
Automation Testing Manual Testing
Automation testing perform the same Manual testing is not reliable. Using this
operation each time method test execution is not accurate all the
time.
Automation testing is very much helpful To execute the test cases first time using
regressions in testing where code changes manual testing will be very much useful. But
frequently. it is not sure that it will catch the regression
defects under frequently changing
requirements.
Automation testing will be useful to execute Manual testing will be useful when the test
the set of test cases frequently. case only needs to run once or twice.
After making Automation test suites, fewer To execute the test cases every time tester
testers required to execute the test cases. requires the same amount of time.
Automation testing can also be done on Using manual testing, testing on different
different machine with different OS platform machine with different OS platform
combination, concurrently. combination is not possible, concurrently. To
execute such task different testers are
required.
Using Automation testing, testers can test It does not involve in programming task to
complicated application too. fetch hidden information.
Automation runs test cases significantly Manual testing is slower than automation.
faster than human resources. Running tests manually can be very time
consuming.
Some time it is not helpful in UI testing It is very much helpful in UI testing
Automation testing is very useful for To execute the Build Verification Testing
automating the Build Verification Testing (BVT) is very mundane and tiresome in
(BVT) & it is not mundane and tiresome. manual testing.
Initial cost of automation testing is more than Manual testing requires less cost than
manual testing but useful always. automation.
When to use Automation testing?
Consider a scenario where the defect is fixed in the build and similar feature was used in
different working modules. So it is hard to check new bug is introduced in previous working
functionality. While doing test pass you need to check regression testing around the defect
fixes. This testing exercise needs to be executed each and every time you need to manually
test the functionality around the impacted area. So considering resources, time and money
you need to work effectively and smartly. In such scenarios you need to think of Automation
testing.
Test automation is a process to check the software application after development and getting
new build or release. The investment for test automation is time, money and resources. In
requires initial efforts which will help you whenever you want to execute the regression
cases.
Why to use Automation testing?
Test can be automated due to many reasons. Some are,
1) Automation testing Saves Time and Money:
2) Testing Increases Correctness:
3) Automate the test due to version changes:
4) Increase Test Coverage
5) Increases Speed, Efficiency, Quality and Decreases the Cost:
6) Testers get Motivated which increases the efficiency:
7) Helpful in testing complex web application:
What is Functional Testing?
Functional Testing is defined as a type of testing which verifies that each function of the
software application operates in conformance with the requirement specification. This
testing mainly involves black box testing and it is not concerned about the source code
of the application.
Each and every functionality of the system is tested by providing appropriate input,
verifying the output and comparing the actual results with the expected results.
This testing involves checking of User Interface, APIs, Database, security, client/ server
applications and functionality of the Application Under Test. The testing can be done
either manually or using automation
What do you test in Functional Testing?
The prime objective of Functional testing is checking the functionalities of the software
system. It mainly concentrates on -
Mainline functions: Testing the main functions of an application
Basic Usability: It involves basic usability testing of the system. It checks
whether a user can freely navigate through the screens without any difficulties.
Accessibility: Checks the accessibility of the system for the user
Error Conditions: Usage of testing techniques to check for error conditions. It
checks whether suitable error messages are displayed.
How to perform Functional Testing: Complete Process
In order to functionally test an application, the following steps must be observed.
Understand the Software Engineering Requirements
Identify test input (test data)
Compute the expected outcomes with the selected test input values
Execute test cases
Comparison of actual and computed expected result
Functional Vs Non-Functional Testing:
Functional Testing Non-Functional Testing
Functional testing is performed using the Non-Functional testing checks the
functional specification provided by the Performance, reliability, scalability and
client and verifies the system against the other non-functional aspects of the
functional requirements. software system.
Functional testing is executed first Non functional testing should be
performed after functional testing
Manual Testing or automation tools can be Using tools will be effective for this testing
used for functional testing
Business requirements are the inputs to Performance parameters like speed,
functional testing scalability are inputs to non-functional
testing.
Functional testing describes what the Nonfunctional testing describes how good
product does the product works
Easy to do Manual Testing Tough to do Manual Testing
Examples of Functional testing are Examples of Non-functional testing are
Unit Testing Performance Testing
Smoke Testing Load Testing
Sanity Testing Volume Testing
Integration Testing Stress Testing
White box testing Security Testing
Black Box testing Installation Testing
User Acceptance testing Penetration Testing
Regression Testing Compatibility Testing
Migration Testing
TEST CASE
A TEST CASE is a set of conditions or variables under which a tester will determine
whether a system under test satisfies requirements or works correctly.
The process of developing test cases can also help find problems in the requirements or
design of an application.
Writing Good Test Cases
As far as possible, write test cases in such a way that you test only one thing at a
time. Do not overlap or complicate test cases. Attempt to make your test cases
‘atomic’.
Ensure that all positive scenarios AND negative scenarios are covered.
Language:
o Write in simple and easy-to-understand language.
o Use active voice instead of passive voice: Do this, do that.
o Use exact and consistent names (of forms, fields, etc).
Characteristics of a good test case:
o Accurate: Exacts the purpose.
o Economical: No unnecessary steps or words.
o Traceable: Capable of being traced to requirements.
o Repeatable: Can be used to perform the test over and over.
o Reusable: Can be reused if necessary.
An ideal test case template
Test Scenario ID Test Case ID
Test Case Test Priority
Description
Pre-Requisite Post-Requisite
Test Execution Steps:
S.No Action Inputs Expected Actual Test Test Test
Output Output Browser Result Comments