Bug, Defect, Error, Fault & Failure Quality Assurance vs Quality Control What is regression testing?
What is regression testing? different white box testing techniques?
• Bug: When we have some coding error, it Quality Assurance is popularly known as QA Regression testing is done to ensure that • Statement Coverage - This technique is
leads a program to its breakdown, which is Testing, is defined as an activity to ensure enhancements or defect fixes made to the aimed at exercising all programming
known as a bug. • Defect: When the that an organization is providing the best software works properly and does not affect statements with minimal tests. • Path
application is not working as per the possible product or service to customers. the existing functionality . Since this testing Coverage - This technique corresponds to
requirement is known as a defect. It is Quality Control in Software Testing is a technique focuses on reuse of existing test testing all possible paths which means that
specified as the aberration from the actual systematic set of processes used to ensure cases that have already been executed, the each statement and branch is covered. •
and expected result of the application or the quality of software products or services. technique is called “selective retesting”. Condition coverage ( It cover all the possible
software. • Error: Refers to difference The main purpose of quality control to ensure There are 2 types of regression testing 1. outcomes(true and false) of each condition of
between Actual Output and Expected output. is ensuring that the software product meets Regular Regression testing 2. Final Regression decision point at least once Condition
• Fault: The condition causes the software to the actual requirements by testing and testing • Regular Regression testing Is done coverage = Total decisions exercised *100
fail to perform its required function. • reviewing its functional and non-functional between test cycles to ensure that the defect Total number of decisions in the program •
Failure: It is the inability of a system or requirements. Quality control is popularly fixes that are done and functionality that Function coverage : This technique cover all
component to perform required function abbreviated as QC. were working with the earlier test cycles functions in a program • It is easier to achieve
according to its specification. continue to work. • Regular Regression 100 percent function coverage than 100
Levels of Testing testing can use more than one product build percent coverage in any of earlier methods •
Unit testing: A Unit is a smallest testable for the test cases to be executed • A Final Function coverage gives more focus on
portion of a system or application that can be Regression testing is done to validate the functions which are frequently called and
compiled, liked, loaded, and executed. This final build before release. • The Final hence it help in improving the performance
kind of testing helps to test each module Regression test cycle is conducted for a and quality of the product
separately. The aim is to test each part of the specific period of duration called “cook time” Describe functional testing techniques?
software by separating it. It checks whether for regression testing • Unit testing: It is usually performed by a
the components are fulfilling functionalities What is black box testing? When to do regression testing? developer who writes different code units
or not. This kind of testing is performed by Black box testing is done without the It is necessary to perform regression testing that could be related or unrelated to achieve
developers. Integration testing: Integration knowledge of the internals of the system when • A reasonable amount of initial testing a particular functionality. His, this usually
means combining. For Example, In this testing under test • It doesn’t require examining of is already carried out • A good number of entails writing unit tests which would call the
phase, different software modules are code of a program • Tester only knows about defects have been fixed • Defect fixes that methods in each unit and validate those
combined and tested as a group to make sure a set of inputs and expected outputs and is can produce side effects are taken care of • when the required parameters are passed,
the hat integrated system is ready for system unaware of how those inputs are Regression testing may also be performed and its return value is as expected. • Code
testing. Integrating testing checks the data transformed into outputs by software • Black periodically, as a proactive measure coverage is an important part of unit testing
flow from one module to another modules. box testing is done based on requirements: it factors affecting performance testing where the test cases need to exist to cover
This kind of testing is performed by testers. helps in identifying any incomplete, 1. Throughput: It represents the number of the below three: • Sanity testing: Testing
System Testing: System testing is performed inconsistent requirements • Black box testing requests processed by the product in a that is done to ensure that all the major and
on a complete, integrated system. It allows addresses the stated requirements as well as specified time duration 2. Response time can vital functionalities of the application/system
checking the system’s compliance as per the implied requirements • Black box testing be defined as the delay between the point of are working correctly. This is generally done
requirements. It tests the overall interaction encompasses the end user perspective • request and the first response from the after a smoke test. • Smoke testing: Testing
of components. It involves load, Black box testing handles valid and invalid product 3. Latency: Latency is a delay caused that is done after each build is released to
performance, reliability and security testing. inputs • Black box testing activities require by the application, operating system, and the test to ensure build stability. It is also called
System testing most often the final test to the involvement of the testing team from the environment. 4. Tuning : Tuning is a as build verification testing.• Regression
verify that the system meets the beginning of the software project life cycle. • procedure by which the product testing: It is performed to ensure that adding
specification. It evaluates both functional and Test scenarios and test data are prepared performance is enhanced by setting different new code, enhancements, fixing of bugs is
non-functional need for the testing. during the test construction phase of the test values to the parameters of the product, not breaking the existing functionality or
Acceptance testing: Acceptance testing is a life cycle. operating system, and other components 5. causing any instability and still works
test conducted to find if the requirements of Different Blackbox testing techniques Benchmarking : It is important to compare according to the specifications. • Regression
a specification or contract are met as per its 1. Requirements based testing: the throughput and response time of the tests need not be as extensive as the actual
delivery. Acceptance testing is basically done Requirements-based testing is a testing product with those of the competitive functional tests but should ensure just the
by the user or customer. However, other approach in which test cases, conditions and products. This type of performance testing amount of coverage to certify that the
stockholders can be involved in this process. data are derived from requirements. • It wherein competitive products are compared functionality is stable. • Integration Tests:
Verification and Validation includes functional tests and also non- is called benchmarking 6. Capacity planning : When the system relies on multiple
Verification in Software Testing is a process functional attributes such as performance, The exercise to find out what functional modules that might individually
of checking documents, design, code, and reliability or usability. • Requirements are resources(hardware and software) and work perfectly, but have to work coherently
program to check if the software has been tracked by a Requirement traceability matrix configurations are needed is called capacity when clubbed together to achieve an end-to-
built according to the requirements. The (RTM) • RTM contains requirement id, planning end scenario, validation of such scenarios is
main goal of the verification process is to requirement description, priority, test What is white box testing called Integration testing. • Beta/Usability
ensure the quality of software application, conditions, test case id, and phase of testing. • It is a way of testing the external Testing: Product is exposed to the actual
design, architecture, etc. The verification • RTM helps in identifying the relationship functionality of code by examining and customer in a production like an environment
process involves activities like reviews, walk- between the requirements and test case testing program code • It takes into account and they test the product. The user’s comfort
throughs, and inspections. Validation is a 2) Positive and negative testing • Positive the program code, code structure, and is derived from this and the feedback is taken.
mechanism of testing and validating if the testing is done to verify the known test internal design flow • It is also known as a This is similar to that of User Acceptance
software product meets the exact needs of conditions and negative testing is done to clear box, glass box, or open box • In white- testing.
the customer. The process helps to ensure break the product with unknowns • The box testing, the developer will inspect every Phases of software project
that the software fulfils the desired use in an purpose of positive testing is to prove that line of code before handing it over to the 1)Requirement gathering and analysis :
appropriate environment. The validation the product works as per specification and testing team or the concerned test engineers. Specific requirements of the software to be
process involves activities like unit testing, expectations • When a test case verifies the • The code is noticeable for developers built are gathered and documented in the
integration testing, system testing, and user requirements of product with a set of throughout testing; that's why this process is form of system requirement
acceptance testing. expected output it is called positive test case known as WBT (White Box Testing). • White specification(SRS) 2) Planning : This phase
• Negative testing is done to show that the box testing is also known as open box testing, comes up with schedule, the scope and
product does not fail when an unexpected glass box testing, structural testing, clear box resource requirement of project .At the end
input is given 3)Boundary value analysis testing, and transparent box testing. ,project plan and test plan documents are
Boundary value analysis is used to test What do you verify in White Box Testing? delivered 3)Design :This phase figure out how
boundary values because the input values • Internal security holes • Broken or poorly to meet the requirements. It is delivered into
near the boundary have higher chances of structured paths in the coding processes • 2 levels. High level design and low level
error .• Boundary values are those that The flow of specific inputs through the code design. System design description (SDD)
contain the upper and lower limit of a • Expected output • The functionality of document is created at end of this phase
variable. • Test cases are developed for each conditional loops • Testing of each 4)Coding :It includes coding the program in
and every value of the range. • Testing of statement, object, and function on an chosen programming language 5)Testing :It
boundary values is done by making valid and individual basis Advantages • Code includes identifying and removing defects in
invalid partitions. • Invalid partitions are optimization by finding hidden errors. • the software 6)Deployment and
tested because testing of output in adverse Testing can start early in SDLC even if GUI is Maintenance :Defects that occur after the
condition is also essential not available. deployment of software in the customer’s
environment should be corrected.
Non-Functional Testing Techniques are : advantages and disadvantages of black box What is integration testing? software testing lifecycle (STLC)?
• Compatibility testing: A type of testing to testing? • Integration Testing is defined as a type of • STLC stands for Software Testing Life Cycle.
ensure that a software program or system is Advantages of black box testing • This can be testing where software modules are • STLC is a sequence of different activities
compatible with other software programs or initiated at an early stage of the development integrated logically and tested as a group. • performed by the testing team to ensure the
systems. • Compliance testing: A type of of software • Black box testing can be Testing the interaction between the modules quality of the software or the product. • STLC
testing to ensure that a software program or conducted by non-technical testers who can and interaction with other systems externally is an integral part of Software Development
system meets a specific compliance standard, be easily outsourced. • Provide end-user is called integration testing • A typical Life Cycle (SDLC). • STLC deals only with the
such as HIPAA or Sarbanes-Oxley. • experience (all the tests in black box testing software project consists of multiple testing phases. • STLC starts as soon as
Endurance testing: A type of testing to are conducted from the end-user software modules, coded by different requirements are defined or SRD (Software
ensure that a software program or system perspective) • Code access is not required. • programmers. The purpose of this level of Requirement Document) is shared by
can handle a long-term, continuous load. Well-suited and efficient for large code testing is to expose defects in the interaction stakeholders. • STLC provides a step-by-step
Software Testing 2023 • Load testing: A type segments. • Large numbers of moderately between these software modules when they process to ensure quality software. • In the
of testing to ensure that a software program skilled testers can test the application with no are integrated. • Integration Testing focuses early stage of STLC, while the software or the
or system can handle a large number of users knowledge of implementation, programming on checking data communication amongst product is developing, the tester can analyse
or transactions. • Performance testing: A language, or operating systems. these modules. • Integration testing starts and define the scope of testing, entry and exit
type of testing to ensure that a software Disadvantages of black box testing • The test when two of the product components are criteria and also the Test Cases. • It helps to
program or system meets specific cases are difficult to design. • Blind coverage, available and ends when all component reduce the test cycle time along with better
performance goals, such as response time or since the tester cannot target specific code interfaces have been tested. • The final round quality. • As soon as the development phase
throughput. • Security testing: A type of segments or error prone areas. • There are of integration involving all components is is over, the testers are ready with test cases
testing to ensure that a software program or chances that many of the test cases are called Final Integration testing( FIT) or system
and start with execution. • This helps to find
system is secure from unauthorized access or repetitive. • It is not possible to test all the integration. • Any software module will work
bugs in the initial phase.
attack. • Scalability testing: A type of testing functionalities of the application with the well individually, but when it’s integrated
There are 6 major phases of STLC − •
to ensure that a software program or system help of black box testing with a different module, there are chances
Requirement Analysis − When the SRS is
can be scaled up or down to meet changing What is acceptance testing? where the software might not behave as
ready and shared with the stakeholders, the
needs. • Stress testing: A type of testing to • Acceptance testing is a quality assurance intended. This is when integration testing is
testing team starts high level analysis
ensure that a software program or system (QA) process that determines to what degree performed to ensure that the software works
concerning the AUT (Application under Test).
can handle an unusually high load. • Usability an application meets end users' approval. • smoothly without any issues.
• Test Planning − Test Team plans the
testing: A type of testing to ensure that a Depending on the organization, acceptance Static Vs Dynamic testing?
strategy and approach. • Test Case Designing
software program or system is easy to use. • testing might take the form of beta testing, Static Testing is a type of software testing in
− Develop the test cases based on scope and
Volume testing: A type of testing to ensure application testing, field testing, or end-user which software application is tested without
criteria’s. • Test Environment Setup − When
that a software program or system can testing. • A QA team conducts acceptance code execution. Manual or automated
integrated environment is ready to validate
handle a large volume of data. tests to ensure the software or app matches reviews of code, requirement documents and
the product. • Test Execution − Real-time
Write principles of software testing? business requirements and end-user needs. • document design are done in order to find
1) Exhaustive testing is not possible An acceptance test returns either a pass or the errors. The main objective of static validation of product and finding bugs. • Test
Exhaustive testing is not possible. Instead, we fail result. • Acceptance testing includes the testing is to improve the quality of software Closure − Once testing is completed, matrix,
need the optimal amount of testing based on following phases: plan, test, record, compare applications by finding errors in early stages reports, results are documented.
the risk assessment of the application.2) and result. • Once the test is written of software development process. It
Defect Clustering Defect Clustering which according to the plan, end users interact with examines work documents and provides What SDLC?
states that a small number of modules the software to gauge its usability. The review comments. It is also called non- Software Development Life Cycle (SDLC)
contain most of the defects detected. This is software should meet expectations, as execution testing or verification testing. defines all the standard phases which are
the application of the Pareto Principle to defined by the business in the requirements. Static Testing Techniques • Informal Reviews involved during the software development
software testing: approximately 80% of the • When the tests return results, IT should • Technical Reviews • Walkthrough • process. SDLC life cycle is a process of
problems are found in 20% of the modules. 3) report and fix any flaws that show up. • If the Inspection Dynamic Testing a code is developing software through a phased
Pesticide Paradox If the same set of results match the acceptance criteria for each executed. It checks for functional behavior of manner in the following order 1.
repetitive tests are conducted, the method test case, the test will pass. But, if test cases software system, memory/CPU usage and Requirements Gathering 2. Design the
will be useless for discovering new defects 4) exceed an unacceptable threshold, they will overall performance of the system. Hence the software 3. Build the Software 4. Test 5.
Testing shows a presence of defects Testing fail. name “Dynamic”. The main objective of this Deployment 6. Maintenance. Each stage has
talks about the presence of defects and don’t Difference between alpha and beta testing? testing is to confirm that the software definite entry and exit criteria along with
talk about the absence of defects. i.e. • Alpha Testing is performed by internal product works in conformance with the deliverables.
Software Testing reduces the probability of employees of the organization and Beta business requirements. This testing is also What is STLC?
undiscovered defects remaining in the Testing is done by users. • Alpha Testing is called an Execution technique or validation Software Testing Life Cycle (STLC) is the
software but even if no defects are found, it done within the organization, while Beta testing. Dynamic testing is performed at all testing process that is executed in a well-
is not a proof of correctness. 5) Absence of Testing is done in the user's environment. • levels of testing and it can be either black or planned manner. In the STLC process, various
Error – fallacy It is possible that software During Alpha Testing only functionality and white box testing. Dynamic Testing activities are carried out to improve the
which is 99% bug-free is still unusable. This usability are tested, while during Beta Testing Techniques • Unit Testing • Integration quality of the product. However, STLC phases
can be the case if the system is tested usability, functionality, security, and Testing • System Testing only deal with testing and detecting errors
thoroughly for the wrong requirement. reliability are tested to the same depth. • but not development itself. Different
Software testing is not mere finding defects, Long execution cycles may be needed for companies define different phases in STLC.
but also to check that software addresses the Alpha Testing while just a few weeks of However, generic Software Test Life Cycle has
business needs. The absence of Error is a execution make Beta Testing possible the following stages. 1. Requirement Analysis
Fallacy i.e. Finding and fixing defects does not 2. Test Planning 3. Test Development 4. Test
help if the system build is unusable and does Environment Setup 5. Test Execution &
not fulfill the user’s needs & requirements 6) Closure
Early Testing Early Testing – Testing should
start as early as possible in the Software
Development Life Cycle. So that any defects
in the requirements or design phase are
captured in early stages 7) Testing is context
dependent Testing is context dependent
which basically means that the way you test
an e-commerce site will be different from the
way you test a commercial off the shelf
application.