Unit - I (STT) Final
Unit - I (STT) Final
Manual Testing : Software Development Life Cycle (Requirements Gathering, Analysis and Planning,
Software Design, Coding/Implementation, Testing, and Release and Maintenance Phase), Software Test
Levels (Unit Testing, Integration Testing, System Testing, and Acceptance Testing), Software Test
Types, Software Test Design Techniques, Software Test Life Cycle, Software Documents, Software
Testing Standards, Software Testing certification/s
Software Development Life Cycle is a systematic approach to develop software. It is a Process followed
by Software Developers and Software Testing is an integral part of Software Development, so it is also
important for Software Testers…
Software Development Life Cycle (SDLC) is a process used by the software industry to design, develop
and test software. The SDLC aims to produce high-quality software that meets or exceeds customer
expectations, reaches completion within times and cost estimates.
ISO/IEC 12207 is an international standard for software life-cycle processes. It defines all the tasks
required for developing and maintaining software.
These phases may vary from one organization to another, but the purpose is almost all same, that is
“Develop and Maintain Quality Software”,
1. Requirement Gathering
2. Analysis
3. Design
4. Coding / Development
5. Testing
6. Deployment & Maintenance
Note: It is General Software Development Life Cycle, we have various SDLC Models in the IT
Industry, Waterfall Model, V Model, Spiral Model and Agile Development Models etc…, Software
Development process varies from one SDLC Model to another.
1. Requirement Gathering
Requirement Gathering is the most important phase in software development life cycle, Business Analyst
collects the requirements from the Customer/Client as per the clients business needs and documents the
requirements in the Business Requirement Specification and provides the same to Development Team.
Note: Document name may vary from one Organization to another, Some examples are Customer
Requirement Specification (CRS), Business Requirement Document (BRD) etc…
Suppose Our Planned Software is not intended for a single customer and the software product for
multiple customers then Business Analyst or Business Team collects Requirements from the Market and
also evaluate Other similar products in the Market.
1
Page
Key Role in this phase is Business Analyst and Outcome of the phase is “Business Requirement
Specification”
2. Analysis
Once the Requirement Gathering is done the next step is to define and document the product
requirements and get them approved by the customer. This is done through SRS (Software Requirement
Specification) document. SRS consists of all the product requirements to be designed and developed
during the project life cycle.
Key people involved in this phase are Project Manager, Business Analyst and Senior members of the
Team. The outcome of this phase is Software Requirement Specification.
3. Design
In Design phase Senior Developers and Architects, they give the architecture of the software product
to be developed. It has two steps one is HLD (High Level Design) or Global Design and another is LLD
(Low Level Design) or Detailed Design,
High Level Design (HLD) is the overall system design, covers the system architecture and database
design. It describes the relation between various modules and functions of the system.
Low Level Design (LLD) is the detailed system design, covers how each and every feature in the product
should work and how every component should work.
The outcome of this phase is High Level Document and Low Level Document which works as an input to
the next phase Coding…
4. Coding / Implementation
Developers (seniors, juniors, fresher) involved in this phase, this is the phase where we start building
the software and start writing the code for the product.
The outcome of this phase is Source Code Document (SCD) and the developed product.
5. Testing
Once the software is complete then it is deployed in the testing environment. The testing team starts
testing (either test the software manually or using automated test tools depends on process defined in
STLC)
Testing is done to verify that the entire application works according to the customer requirement.
During this phase, Testing team may find defects which they communicate to developers, the
development team fixes the defect and send back to Testing for a re-test. This process continues until the
software is Stable, and working according to the business needs of that system.
After successful testing, the product is delivered (deployed to the customer for their use), Deployment is
done by the Deployment/Implementation engineers and Once when the customers start using the
developed system then the actual problems will come up and needs to be solved from time to time.
2
Page
Fixing the issues found by the customer comes in the maintenance phase. 100% testing is not possible –
because, the way testers test the product is different from the way customers use the product.
Maintenance should be done as per SLA (Service Level Agreement)
Software Test Levels are the different stages of the software development life cycle where testing is
conducted.
In order to increase the Quality of Software we go for multiple levels of Testing instead of conducting
single stage of Testing.
Test Levels identify missing areas and prevent overlap and repetition.
1) Unit Testing
2) Integration Testing
3) System Testing
4) Acceptance Testing
1) Unit Testing
The most basic type of Testing is Unit or Component Testing, Unit Testing is a level of software testing
where individual units/ components of a software are tested and the purpose of Unit Testing is to validate
that each unit of the software performs as designed.
Unit or Component Testing may include Testing of Functionality and specific Non Functional
characteristics such as resource-behavior (Ex: Memory leaks), performance or robustness testing, as well
as structural testing (ex: Decision Coverage). Test cases are derived from Software Design or the data
model.
It is normally performed by software developers using the White Box Testing method, in rare cases, it
may also be performed by independent software testers.
2) Integration Testing
Integration Testing tests interfaces between components, interactions to different parts of a system such
as an operating system, file system and hardware or interfaces between systems.
Integration Testing is often carried out by the integrator, but preferably by a specific integration tester or
test team. Test drivers and test stubs are used to assist in Integration Testing.
Integration Testing can be conducted in two states for some applications, component integration testing
after Unit Testing and system integration testing after system testing.
3
Component Integration Testing: Testing performed to expose defects in the interfaces and interaction
Page
3) System Testing
System Testing: The process of testing an integrated system to verify that it meets specified requirements.
System Testing should investigate both functional and non functional requirements of the system and
testers may also deal with incomplete or undocumented requirements.
System Testing requires a controlled Test Environment as well as stable software build/s and the test
environment should correspond to the production environment as much as possible in order to
minimize the risks.
Normally Independent Testers perform System Testing using Black Box Testing Method.
4) Acceptance Testing
Acceptance Testing is a level of software testing where a system is tested for acceptability. The purpose
of this test is to evaluate the system’s compliance with the business requirements and assess whether it is
acceptable for delivery.
The acceptance test has two stages, first one is Alpha testing, this test takes place at developer’s site, A
cross section of potential users and members of the developer’s organization are invited to use the system.
Developers observe the users and note problems. Next Beta Testing or field testing, sends the system to a
cross-section of users who install it and use it under real-world working conditions.
We have different Acceptance Tests, User Acceptance Testing is performed by the end users of the
software. The User acceptance test focuses mainly on the functionality of the system and the operational
acceptance test (also called production acceptance test) validates weather the system meets the
requirements for operation. The operational acceptance test may include testing of backup/restore,
disaster recovery and maintenance tasks etc…
A Test type is a group of test activities aimed at testing specific characteristics of a software system, or a
part of a system, based on specific test objectives. Such objectives may include:
• Evaluating whether the Structure or architecture of the component or system is correct, complete, and
as specified.
• Evaluating the Effects of changes, such as confirming that defects have been fixed (confirmation
testing) and looking for unintended changes in behavior resulting from software or environment changes
(regression testing).
4
Page
1. Functional Testing
Functional testing considers the behavior of the software, so black-box techniques may be used to derive
test conditions and test cases for the functionality of the component or system.
Functional test design and execution may involve special skills or knowledge, such as knowledge of the
particular business problem the software solves (e.g., online banking software for the banking industry).
Unit Testing
Integration Testing
System Testing
User Acceptance Testing.
Sanity/Smoke Testing.
Re & Regression Testing.
etc…
Functional Testing is a Test type, and Unit Testing, Integration Testing, System Testing and
Acceptance Testing are the Test levels.
Functional Testing is conducted in all Test Levels (Unit, Integration, System, and Acceptance
Testing)
Sanity and Smoke Testing are Test Execution levels of Functional Testing
2. Non-functional Testing
Non-functional testing of a system evaluates characteristics of systems and software such as usability,
performance efficiency, or security. Non-functional testing is the testing of “how well” the system
behaves.
Contrary to common misperceptions, non-functional testing can and often should be performed at all test
levels, and done as early as possible. The late discovery of non-functional defects can be extremely
dangerous to the success of a project.
I18N Testing.
Page
L1ON Testing.
Compliance Testing.
Etc…
Structural/White-box testing derives tests based on the system’s internal structure or implementation.
Internal structure may include code, architecture, workflows, and/or data flows within the system.
The thoroughness of white-box testing can be measured through structural coverage. Structural coverage
is the extent to which some type of structural element has been exercised by tests, and is expressed as a
percentage of the type of element being covered.
White-box test design and execution may involve special skills or knowledge, such as the way the code is
built, how data is stored (e.g., to evaluate possible database queries), and how to use coverage tools and to
correctly interpret their results.
4. Change-related Testing
When changes are made to a system, either to correct a defect or because of new or changing
functionality, testing should be done to confirm that the changes have corrected the defect or
implemented the functionality correctly, and have not caused any unforeseen adverse consequences.
Confirmation Testing:
After a defect is fixed, the software may be tested with all test cases that failed due to the defect, which
should be re-executed on the new software version.
Regression Testing:
It is possible that a change made in one part of the code, whether a fix or another type of change, may
accidentally affect the behavior of other parts of the code, whether within the same component, in other
components of the same system, or even in other systems.
Note: Confirmation testing and Regression testing are performed at all test levels.
Design is an efficient way of doing or achieving something. A test design technique is used to select a
good set of tests from all possible tests for a given system.
Exhaustive Testing is not possible, so we need to use Test Design Techniques in order to reduce the size
of the input. Exhaustive Testing is a Test approach in which the test suite comprises all combinations of
input values and preconditions. Exhaustive Testing is not recommendable due to Time and Budget
considerations.
There are two main categories of Test Design Techniques, They are:
a. Static Techniques
6
Page
b. Dynamic Techniques
2. Static and Dynamic Test Design Techniques
A. Static Techniques
Testing of the software documents done manually or with a set of tools but without executing the
Software.
i) Reviews
Types of Reviews
a) Informal Review
b) Walkthrough
c) Technical Review
d) Inspection
Static analysis tools are typically used by developers, Compilers offer some support for Static analysis,
a) Error Guessing
7
b) Exploratory Testing
Page
3. Black-box Test Design Techniques
• It can be applied at any level of testing (Unit, Integration, System and Acceptance Testing)
• In Equivalence Partitioning, inputs to the Software are divided into groups that are expected to exhibit
similar behavior.
• Equivalence Partitions/Classes can be found for both valid data and invalid data.
0 1 to 10 11 to 99 or above
The customer Identification Number field in a CRM system accepts only numbers.
Below 10 10 Above 10
Example 4 (Others)
8
Page
• The maximum and minimum values of a partition are its boundary values.
• Behavior at the edge of each equivalence partition is more likely to be incorrect than behavior within the
partition.
• Boundary value analysis can be applied at all Test levels(Unit, Integration, System and Acceptance
Testing).
Example 1:
0 1 to 10 11 to 99 or above
Minimum/maximum 0
Minimum 1
Maximum 10
Minimum 11
Maximum 99
————————————-
Example 3 (Data Size)
Below 10 10 Above 10
Minimum -9
Maximum -11
—————————————-
Example: User Id field accepts 10 to 20 characters
Below 10 10 to 20 11 to 99
Minimum -1
Maximum – 9
Minimum – 10
Maximum – 20
Minimum – 21
Maximum -99
• The decision tables are a good way to capture system requirements that contain logical conditions.
• It may be applied for all situations when the action of the software depends on logical decisions.
Conditions:
i) For SC or ST Candidates 5 Years age relaxation
———————————————-
OC 20 Invalid
OC 21 Valid
OC 35 Valid
OC 36 Valid
10
Page
BC 36 Valid
BC 39 Invalid
SC 39 Valid
PHC 39 Valid
ST 40 Valid
—————————————————–
Banking System interest rates For fixed deposits.
1 to 2 years 7%
2 to 3 Years 8%
3 to 5 Years 10%
Condition:
———————————–
25 1 year 7%
35 2.5 8%
56 4 10%
66 4 10.5%
• In State transition Testing Test cases are designed to execute valid and invalid state transitions.
• A System (Application Under Test) may exhibit a different response on current conditions or previous
history.
• In Use Case Testing Test Cases are designed to execute User Scenarios or Business Scenarios.
• A Use Case describes interactions between actors, including users and the system.
• A Use case usually has a mainstream scenario and sometimes alternative scenarios.
Example:
Mainstream Scenario:
————————————————–
Alternatives
———————–
4a) Suppose if user selects incorrect Account Type
5a) If User enters incorrect amount (More than the balance amount or more than the day limit)
Software Testing Life Cycle (STLC) identifies what test activities to carry out and when to accomplish
Page
those test activities. Even though testing differs between organizations, there is a testing life cycle.
Just like Software Developers follow the Software Development Life Cycle (SDLC), Software Testers
also follow the Software Testing Life Cycle.
Software Test Process is not a single activity, it consists of many different activities which are executed
to achieve a good quality product.
1) Requirement Analysis
2) Test Planning
3) Test Design & Development
4) Test Environment Setup
5) Test Execution
6) Test Cycle Closure
We have Entry and Exit Criteria for all levels in the Software Testing Life Cycle…
Entry Criteria: Entry Criteria gives the prerequisite items that must be completed.
Exit Criteria: Exit Criteria defines the items that must be completed.
1) Requirement Analysis
In the Requirement Analysis phase, test team studies the requirements and identify the testable
requirements.
Entry Criteria: Requirements Document available (both functional and non functional),
Application Architectural document or Product should be available…
Exit Criteria: RTM should be signed off and The customer should sign off on the test automation
feasibility
Deliverables:
i) Requirement Traceability Matrix (RTM)
2) Test Planning
In this phase the Test Manager or Test Lead prepares the Test Plan and Test strategy documents.
Entry Criteria: Requirements Document, Requirement Traceability Matrix (RTM) and Automation
Feasibility Report
Exit Criteria: Approved Test Plan document, Test Strategy document and Effort estimation document
Deliverables:
Etc..
> In Test design phase, testers prepare test scenarios, test cases/test scripts and test data based on
the Requirement Document/s and Test Plan.
Entry Criteria: Requirements Document/s, RTM and Test Plan, Automation analysis report
14
Exit Criteria: Reviewes Test cases, Test Scripts (if automation) and Test data.
Page
Etc…
Deliverables:
i) Test cases
ii) Test scripts (for automation if required)
iv) Test Data
It is a combination of hardware and software environment on which the tests will be executed. Test
Environment supports test execution with software, hardware and network configured. Test environment
configuration must mimic the production environment.
Readiness of the test environment can be validated by smoke testing performed by the Testing team.
Entry Criteria: System design document/s, Architectural document of the application and
Environment set-up checklist. Provision of Test Plan, readiness of Smoke Test cases and preparation
of test data.
Exit criteria: Test environment should be ready and smoke testing should be performed successfully.
Activities:
i) Setup Test Environment and Test Data
Deliverables:
i) Test Environment ready with test data set up
5) Test Execution
In Test Execution phase the test cases are executed in the testing environment, while execution of the
test cases the Testing team may find bugs which will be reported, bugs are fixed by the developer and
they are retested by the Testing Team.
Entry Criteria: Test Plan document, Test cases, Test data, Test Environment
Activities:
15
Testing team will meet , discuss and analyze testing artifacts and evaluate Test cycle completion
criteria. Identify strategies that have to be implemented in future and taking lessons from the current test
cycle.
Entry Criteria: Test case Execution report and Opened and closed Defect Reports
Exit Criteria: Test Closure Report signed off by client, Test Metrics
Activities:
i) Evaluate Test Cycle completion criteria
ii) Prepare test metrics
iii) Documentation of the learning from the project
iv) Prepare Test closure report
Deliverables:
i) Test Closure report
ii) Test metrics
Note: This Software Testing Life Cycle or Software Test Process is for conducting Software Testing
in System Testing Level and It is Manual Testing Process.
Documentation is an important activity in Software Testing, before, during, and after Testing we create
and use several documents.
1. Test Policy
A high-level (company level) document describes the principles, approach, and major objectives of the
organization regarding Testing.
2. Test Strategy
A high-level document of the Test Levels to be performed and the Testing within those levels for an
Organization.
This is the document that connects the requirements to the test cases. The connection or mapping of the
requirements to test cases is many to many. This means that one requirement is tested by one or more test
16
cases. Conversely, it is possible to have one test case addressing one or more requirements.
Page
4. Test Plan
A document describing the scope, approach, resources, and schedule of intended activities.
5. Test Case
A set of input values, execution preconditions, expected result, and execution postconditions developed
for a particular objective or Test condition.
6. Defect Report
A document reporting of any flaw in a component or system that can cause the component or system to
fail to perform its required function.
7. Test Metrics
A document summarizing testing activities and Results. It also contains an evaluation of the
corresponding test items against exit criteria.
17
Software Testing Quality Standards, ISO standards for Software quality, IEEE Test documentation
standards, and Software Testing Certification.
Software Testing Standards
Standards are a set of mandatory requirements established by consensus and maintained by a recognized
body to prescribe a disciplined uniform approach or specify a product, that is, mandatory conventions and
practices.
External standards
Internal standards.
ISO develops International Standards. ISO founded in 1947, and since then published more than 19 000
International Standards covering almost all aspects of technology and business.
The aim of ISO/IEC 29119 Software Testing is to provide one definitive standard for software testing that
defines vocabulary, processes, documentation, techniques and a process assessment model for software
testing that can be used within any software development life cycle.
An IEEE standard for Software Test Documentation, Provides Test documentation templates from Test
Planning to Test Closure.
Institute of Electrical and Electronics Engineers describes itself as “the world’s largest technical
professional society.It provides standards for Power, Energy, Telecom, Information Technology and
Aviation etc… Industries.
The IEC was officially founded in June 1906, in London, England. By 1914 the IEC had formed four
technical committees to deal with Nomenclature, Symbols, Rating of Electrical Machinery, and Prime
Movers. In 1948, the IEC Central Office moved to Geneva, Switzerland.
The British Standards Institution publishes standards and provides a range of books, self-
assessment tools, conferences and training services. It also represents UK economic and social interests in
European and international standards organisations.
BSI defines a standard as 'something that is generally accepted'. British Standard (BS) publications
are technical specifications or practices that can be used as guidance for the production of a product,
carrying out a process or providing a service.
The Capability Maturity Model Integration (CMMI) is a process and behavioral model that helps
organizations streamline process improvement and encourage productive, efficient behaviors that decrease
risks in software, product, and service development.
The CMMI was developed by the Software Engineering Institute at Carnegie Mellon University as a process
improvement tool for projects, divisions, or organizations. The DoD and U.S. Government helped develop
the CMMI, which is a common requirement for DoD and U.S. Government software development
contracts. The CMMI is currently administered by the CMMI Institute, which was purchased by the ISACA
in 2016.
Software Testing has helped a lot of ventures to evaluate and verify the quality of every software
component so that the software can respond aptly to different inputs of stakeholders. Besides, the
techniques, associated with the testing of programming, driver, or application software involve risks
that, can run intentionally or intentionally in different environments. Those risks need to be remediated
proactively and to do that, businesses must have that production unit, acquiring an overall knowledge
of the practical implementation of risk analysis [which is an imperative part of Software Testing].
You may think about the demand for a software tester in this instance. Yes, the requirement is
humongous and will always be till the creation and maintenance of software will occur!! Whether you
plan dynamic or static testing, you need to bring quality testing practices to the table and for doing that,
this becomes necessary – certified testers with recognition through certification by reputed institutions.
Let’s take a look at top software testing certifications which won’t only land a high-paying job for
you but also help the ventures reduce the risks so that their software may gain acceptance from their
customers globally.
This certification can professionally identify the ability of an applicant or a candidate while
demonstrating the software testing principles and their quality practices at a foundational level. Some
prerequisites are there like: –
2 years degree from college-level [accredited] institution + 1-year experience in the IT services
Page
field
3 years experience in the IT services field
From the above, you must possess any ONE OF those for qualifying the candidacy of CAST. The fee
for this certification is 100 US Dollars and one can pay this online after reading the payment terms
carefully. The certification will test your knowledge in various skill areas.
This certification will let you receive recognition since the candidature is identified and evaluated on
the grounds of a professional level of competence. Such competence is regarding the knowledge of the
practices and principles of QA i.e. Quality Assurance used in Software Testing. Undoubtedly, one
needs to ethically note these prerequisites down, and they start with: –
4-year degree from a college-level [accredited] institution + 2 years experience in the IT services
field
3-year degree from a college-level [accredited] institution + 3 years experience in the IT services
field
2-year degree from a college-level [accredited] institution + 4 years experience in the IT services
field
From the above, you need to acquire any ONE from those to let your candidacy qualify. Despite all
these four prerequisites, the fee for CSQA certification is 350 US Dollars or $450. You must access
the payment policy section to know accurately about the terms and conditions.
This certification is most widely recognized for software testing at a foundational level as well as an
advanced level. Currently, expert-level certification is being developed. For all these levels, the
working groups of ISTQB are operating internationally so that the candidates can prepare well for roles
like software testers, test managers, test analysts, IT directors, and QA managers i.e. quality assurance
managers. In the foundational level (one module), you may either opt for the Foundational Level Core
certification or Foundational Level Specialist certification.
Similarly, the advanced level (three modules) is divided into Advanced Level Core Certification and
Advanced Level Specialist Certification. For the candidates willing to receive advanced-level
certification, they must possess the Foundational one. If we talk about the fees, the foundational level
certification costs 229 US Dollars while each of the advanced level ISQB certification costs $249.
Both these certifications will test your knowledge about the fundamentals of testing and quality
assurance; defects, effects, and root causes of test processes, tasks, and work products, basic to the mid-
level understanding of the lifecycle of software testing i.e. STLC, configuration management of the
automated and agile test cases.
The certification for CQE costs around 533 US Dollars and has an examination in two modes. The
Page
first one is computer-delivered (in English) which has 175 Questions in total which you need to
complete in 5 hours and 18 minutes. Of those, 160 questions are multiple-choice type i.e. MCQ,
and 15 questions are unscored which means they won’t impact your final marks. On the other side,
the paper-and-pencil examination (in English, Portuguese, Spanish, Mandarin, and Korean in certain
locations) for Certified Quality Engineer has 160 questions that need to be completed in 5 hours.
Before getting enrolled in CQE certification, you must have 8 years of experience in one or more areas
of CQE or a minimum of 3 years of experience (full-time, paid role as an intern or employee) in the
decision-making position (i.e. you are involved with the execution and controlling of quality inspection
processes) in any of its areas.
There will be variability in the set of topics asked like notions of service quality control and evaluation
of products’ principles; development and analysis of statistical models, and human factors correctly
diagnosing the metrology of management information systems. Rather than these, the certification will
document your critical skills related to the validation and verification of sampling, distributions, and
capability studies based on the hypothetical statistics of risk assessment and its acceptance.
This certification assesses the capabilities and competencies of the applicants inclined towards software
testing. Soon, they will be working at the ST management level. If one wants to be on the qualifying
list of CMST’s candidacy, then any ONE of these three prerequisites must be fulfilled:
Besides, there are 100 Multiple Choice Questions from which the candidate must answer 70
correctly to pass CMST certification whose fee is 450 US Dollars. On an overall basis, this
certification will assess your candidature on grounds of resource planning, traceability, and controlling
of various test processes, implementing and designing the product that will meet the requirements of
the customers and maintenance of releases somewhere related to the quality standards of this
competitive market.
This certification is best if you want to establish good standards for establishing qualification at the
initial stage and provide proper direction to do testing through a self-assertive educational program. If
you want to acquire the position of a certified software tester then you must be capable of applying the
principles and practice of quality control. Furthermore, if you want to be on the qualifying list for a
CSTE then any ONE of these three prerequisites must be fulfilled:
A 2-year degree from a recognized college institution or college and 4 years of working experience
in the IT industry.
A 3-year degree from a recognized college institution or college and 3 years of working experience
in the IT industry.
A 4-year degree from a recognized college institution or college and 2 years of working experience
21
in the IT industry.
Page
This certification is relevant for all software delivery practices that include Agile, DevOps, Waterfall
and Continues Delivery. The 2018 foundation-level course is best for those who need to demonstrate
practical knowledge of the fundamental concepts of software testing. It includes people who are
working in the roles of quality manager, business analyst, project manager, and software development
manager. Moreover, if you want to know the exam details please take a look:
Question- 40
Multiple choice
Fees- $250
This CTFL certification is better for people who want to apply for foundational roles in testing, for
example, test consultants and test analysts. Also, anyone can take the exam as there are no eligibility
criteria set for the same.
22
Page