Professional Documents
Culture Documents
(CSC 4133)
Software Testing:
• Testing is the process of executing a system or
component under specified conditions with the
intent of finding defects and to verify that it satisfies
specified requirements.
• Testing is one of the most important activities of
quality assurance (QA).
• Testing is a product-oriented activity.
• Testing is oriented to bug-detection.
What is the difference between QA and Testing?
Software Quality Assurance(SQA):
• Defined as a planned and systematic approach to the
evaluation of the quality of and adherence to software
product standards, processes, and procedures.
• An umbrella activity that is applied throughout the
software process.
• QA is a process-oriented activity.
• QA is oriented to bug-prevention.
Difference between SQA & Software Testing
Manual Testing:
• Oldest and most rigorous type of software testing
• Requires a tester to perform manual test operations
• Drawbacks –
– Hard to repeat
– Not always reliable
– Costly
• time consuming
• labor intensive
Manual Testing vs. Automated Testing
Automated Testing:
• Testing employing software tools
• Execute tests without manual intervention
• Benefits –
– Fast
– Repeatable
– Reliable
– Reusable
– Programmable
– Saves time
Alpha Testing vs. Beta Testing
Alpha testing:
• Alpha testing is performed by potential users/customers or an
independent test team at the developer’s site.
• Conducted when code is mostly complete or contains most of
the functionality and prior to users being involved.
• Minor design changes may still be made as a result of such
testing. Sometimes a select group of users are involved.
Alpha Testing vs. Beta Testing
Beta testing:
• Beta testing is done at the customer’s site by the customer in
the open environment.
• Testing when development and testing are essentially completed and final
bugs and problems need to be found before final release.
• Typically done by end-users or others, not by programmers. Betas are
often widely distributed or even distributed to the public at large in hopes
that they will buy the final product when it is released.
• Selected users receive the system first and report problems back to the
developer.
• Beta testing is a type of acceptance testing involving a software product to
be marketed for use by many users.
What is Regression Testing?
• Regression testing is the re-testing of a system or component
of a system to verify that modifications have not introduced
any new defects and that the system/component still
complies with its specified requirements.
• Regression Testing is done to find out the defects that arise
due to code changes made in existing code like functional
enhancements or configuration changes.
• The main intention behind regression testing is to ensure that
any code changes made for software enhancements or
configuration changes has not introduced any new defects in
the software.
What is Regression Testing?
• Anytime the changes are made to the existing working
code, a suite of test cases is executed to ensure that the
new changes have not introduced any bugs in the
software.
• It is necessary to have a regression test suite and execute
that suite after every new version of software is
available.
• Regression test suite is the ideal candidate for
automation because it needs to be executed after every
new version.
What is smoke testing?
• Smoke testing is done for the software in order to verify that the software
is stable enough for further testing. Smoke testing “touches” all areas of
the application without getting too deep; tester looks for answers to basic
questions like, “Does the application window opens?”, “Can tester launch
the software?” etc.
• Smoke Testing is performed after software build to ascertain that the
critical functionalities of the program is working fine. It is executed
"before" any detailed functional or regression tests are executed on the
software build.
• The purpose
– is to determine whether the application is stable enough so that a
more detailed testing can be performed.
– is to reject a badly broken application, so that the QA team does not
waste time installing and testing the software application.
What is non-functional testing?
• Non-functional testing tests the characteristics of the software
like how fast the response is, or what time does the software
takes to perform any operation.
• Non-functional testing focuses on the software’s performance
i.e. How well it works.
• Some examples of Non-Functional Testing are:
– Performance testing
– Load testing
– Stress testing
– Volume testing
– Usability testing
– Security testing
What is a Bug?
See Project
What is a Test Case?
• A test case is a document that describes an input,
action, or event, and its expected results, in order to
determine if a feature of an application is working
correctly.
• In other words, a test case is document specifying
inputs, predicted results and a set of execution
conditions for a test item.
• Different organizations may use different test case
format.
Test Case Format
• Explain a typical test case format. // or
• What are the contents of a test case?
See Assignment
Test Suite
• The collection of individual test cases that will be
run in a test sequence until some stopping criteria
are satisfied is called a test suite.
– Group of test cases that can be executed as a package in a
particular sequence.
– Test suites are usually related by the area of the system
that they exercise, by their priority, or by content.
Test Log