This document discusses fundamentals of software testing. It explains why testing is necessary to find defects that could harm people or companies. Testing helps ensure quality by evaluating if software meets requirements. There are limitations to testing, as exhaustive testing of all combinations is not feasible. The document compares software testing to driving tests, noting both involve planning tests, evaluating results against requirements, and making risk-based pass/fail decisions. It discusses using both static and dynamic testing to achieve test objectives like finding defects and gaining confidence in quality.
Testing helps find defects, provide confidence, and prevent defects. It involves both static and dynamic testing throughout the software development lifecycle. Software testing is like a driving test, where the tester evaluates if the software satisfies requirements and is fit for purpose by looking for faults, just as an examiner assesses a driver's abilities. Early testing is important so that defects can be found and fixed at lower cost stages of development. The objectives of testing include finding defects, gaining confidence in quality, and preventing defects.
This document discusses testing principles and analogizes software testing to driving tests. It states that testing should start early in the development lifecycle and include both static and dynamic testing. Tests need to be regularly reviewed and revised to avoid the "pesticide paradox" where tests become outdated. Testing can find defects but cannot prove their absence. Fixing defects does not guarantee user acceptance if requirements are not met.
The document discusses the history and current state of software testing certification. It covers:
1) The ISTQB/ISEB certification program began in the late 1990s and early 2000s to standardize software testing knowledge and professionalize the field.
2) The certifications include Foundation, Practitioner, and Specialist levels to cater to candidates with different experience levels.
3) International collaboration through the ISTQB has led to widespread adoption of a common certification syllabus across many countries.
The document discusses test planning, analysis, design, implementation, and execution. It describes the roles and responsibilities of test analysts in each phase of testing. This includes activities like creating test cases and conditions, designing test suites, implementing test data and environments, executing tests, and logging test results. Test implementation is influenced by factors like the development lifecycle model, quality characteristics, test infrastructure, and exit criteria.
The document discusses software testing and preparation for the ISTQB Foundation Certification exam. It covers topics like quality assurance and control, different software development and testing models, types of testing, the testing life cycle, defect management, and test automation. It provides descriptions and explanations of these key testing concepts.
Testing helps find defects, provide confidence, and prevent defects. It involves both static and dynamic testing throughout the software development lifecycle. Software testing is like a driving test, where the tester evaluates if the software satisfies requirements and is fit for purpose by looking for faults, just as an examiner assesses a driver's abilities. Early testing is important so that defects can be found and fixed at lower cost stages of development. The objectives of testing include finding defects, gaining confidence in quality, and preventing defects.
This document discusses testing principles and analogizes software testing to driving tests. It states that testing should start early in the development lifecycle and include both static and dynamic testing. Tests need to be regularly reviewed and revised to avoid the "pesticide paradox" where tests become outdated. Testing can find defects but cannot prove their absence. Fixing defects does not guarantee user acceptance if requirements are not met.
The document discusses the history and current state of software testing certification. It covers:
1) The ISTQB/ISEB certification program began in the late 1990s and early 2000s to standardize software testing knowledge and professionalize the field.
2) The certifications include Foundation, Practitioner, and Specialist levels to cater to candidates with different experience levels.
3) International collaboration through the ISTQB has led to widespread adoption of a common certification syllabus across many countries.
The document discusses test planning, analysis, design, implementation, and execution. It describes the roles and responsibilities of test analysts in each phase of testing. This includes activities like creating test cases and conditions, designing test suites, implementing test data and environments, executing tests, and logging test results. Test implementation is influenced by factors like the development lifecycle model, quality characteristics, test infrastructure, and exit criteria.
The document discusses software testing and preparation for the ISTQB Foundation Certification exam. It covers topics like quality assurance and control, different software development and testing models, types of testing, the testing life cycle, defect management, and test automation. It provides descriptions and explanations of these key testing concepts.
Here you will get overview of Software Testing:
what is software testing life cycle
software development life cycle
Methodologies Of software testing
Levels of testing
Types of Testing
V-model Architechture of testing
Test Case Example
Defect Life Cycle
Mobile Testing Tools used
CROSS Browser Testing Tools
Website Screen Capture tools:
The document provides an overview of the International Software Testing Qualifications Board (ISTQB). It discusses ISTQB's mission to advance the software testing profession through defining a body of knowledge, connecting the international testing community, and encouraging research. ISTQB offers certification programs at the Foundation, Advanced, and Expert levels, and its syllabi are available in many languages. Surveys have found benefits of ISTQB certification for both professionals and their employers, including improved productivity, recognition of skills, and increased marketability. The document also summarizes ISTQB's Agile Tester Extension, which aims to satisfy the growing demand for skills in agile testing environments.
Software Testing Life Cycle – A Beginner’s GuideSyed Hassan Raza
Software Testing Life Cycle refers to 6 phases of the software testing process. Learn about each phase of STLC in-depth in our article. (Source: https://www.goodcore.co.uk/blog/software-testing-life-cycle/)
The document discusses reporting test results in software testing. It states that a test log and test incident report are prepared during and after test execution. A test log records events during testing like execution details, procedure results, and anomalous events. A test incident report documents any unexpected or unexplainable incidents that require follow-up. It provides details like a summary, description, impact, and identifiers. A test summary report summarizes the overall testing results and forms part of a project's historical records.
The document discusses software test automation. It defines software test automation as activities that aim to automate tasks in the software testing process using well-defined strategies. The objectives of test automation are to free engineers from manual testing, speed up testing, reduce costs and time, and improve quality. Test automation can be done at the enterprise, product, or project level. There are four levels of test automation maturity: initial, repeatable, automatic, and optimal. Essential needs for successful automation include commitment, resources, and skilled engineers. The scope of automation includes functional and performance testing. Functional testing is well-suited for automation of regression testing. Performance testing requires automation to effectively test load, stress, and other non-functional requirements
Software testing involves verifying that software meets requirements and works as intended. There are various testing types including unit, integration, system, and acceptance testing. Testing methodologies include black box testing without viewing code and white box testing using internal knowledge. The goal is to find bugs early and ensure software reliability.
The document discusses various topics related to software testing including:
1. It introduces different levels of testing in the software development lifecycle like component testing, integration testing, system testing and acceptance testing.
2. It discusses the importance of early test design and planning and its benefits like reducing costs and improving quality.
3. It provides examples of how not planning tests properly can increase costs due to bugs found late in the process, and outlines the typical costs involved in fixing bugs at different stages.
The document discusses various aspects of test management including organizational structures for testing, configuration management, test estimation and monitoring, incident management, and standards for testing. It describes different levels of independence for testing, such as testing by developers, testing by development teams, and independent test teams. It also outlines the importance of configuration management, estimating and measuring test progress, logging incidents, and following standards for quality assurance and industry-specific testing.
The document outlines the software testing life cycle (STLC) which is a systematic and planned process for testing software. The STLC includes requirement analysis to define what will be tested, test planning to identify activities, resources and schedules, test case development to detail test cases and data, test execution to run test cases and log results, and test cycle closure to generate reports and complete testing.
This document summarizes Rex Black's book on risk-based testing strategies. It discusses:
- The two main types of risks in testing: product risks related to quality, and project risks related to management and schedules.
- How risk-based testing guides testing activities based on identified risks, prioritizing higher-risk items and allocating more testing effort to them.
- The benefits of risk-based testing over requirements-based testing, like having a more predictable reduction in risk over time and the ability to intelligently reduce testing if needed.
- The history of risk-based testing strategies dating back to the 1980s, and how modern approaches aim to systematically analyze and address risks.
Static analysis techniques can analyze source code without executing it to find potential issues. It checks for violations of coding standards and detects problems like unreachable code, undeclared variables, and array index errors. Data flow analysis examines how variables are defined and used. Control flow analysis checks for unreachable nodes, infinite loops, and conformance to flow patterns. Cyclomatic complexity measures a program's structural complexity. Static analysis has limitations but can efficiently find certain faults before testing begins.
A presentation that provides an overview of software testing approaches including "schools" of software testing and a variety of testing techniques and practices.
Software testing involves executing software components to evaluate properties against requirements. It identifies errors and ensures quality. Benefits include lower costs from early bug detection, improved security, quality, and customer satisfaction. Testing strategies include unit, integration, and system testing. Types are functional, non-functional, and regression/maintenance testing. Methodologies are white-box and black-box testing. The software testing lifecycle has phases for requirements, design, execution, closure, and analysis. Performance testing types include stress, volume, configuration, compatibility, regression, recovery, and usability testing.
The 11-step software testing process follows a "V" model where the first five steps involve verifying interim deliverables and the last six steps involve validating the executable software. The 11 steps are: 1) assess development plan and status, 2) develop test plan, 3) test requirements, 4) test design, 5) test during programming, 6) execute and record results, 7) acceptance test, 8) report results, 9) test installation, 10) test software changes, and 11) evaluate test effectiveness. The process aims to validate and verify that the software meets requirements, works as expected, can be implemented consistently, and satisfies stakeholder needs.
This document discusses software testing. It defines software testing as an empirical investigation to provide information about product quality. Testing is important because all software has defects, is complex, and is created by humans. Various roles are involved in testing, including testers, developers, and users. An important part of testing is planning with test plans, scripts, and techniques like quick tests, negative testing, and integration testing. The document emphasizes the importance of finding defects early through a planned, systematic approach to testing.
The document discusses risk based testing and random testing approaches. It outlines the challenges of time and resource constraints when testing software. Risk based testing uses risk analysis and metrics to focus testing on high risk areas in order to save time and money while maintaining quality. Metrics are developed to manage and organize large test projects. Random testing involves automatically generating random inputs and scenarios to stress test software in ways not covered by nominal testing. It can be used with differential and fault injection testing against a reference implementation to automatically check test results.
The document discusses software testing concepts including the importance of testing, the testing life cycle, types of testing, quality assurance and control, and bug reporting. It provides definitions and descriptions of key testing terms like errors, bugs, faults, failures, test plans, test cases, unit testing, integration testing, system testing, and regression testing. Testing roles like testers, QA leads, and test analysts are also outlined.
This document discusses fundamentals of software testing. It explains that testing is important to identify defects that can cause problems. Testing helps measure software quality by finding bugs and ensuring requirements are met. However, exhaustive testing of all possible inputs is impossible, so risk-based testing is used instead. Testing activities should start early and continue through the software development life cycle. The goal of testing is to reduce risks and improve the software, not just find defects.
This document provides an overview of fundamentals of software testing. It discusses why testing is needed due to human errors in development that can introduce defects. It defines software testing as evaluating a system or component against requirements or to identify defects. The document outlines the typical test process, including planning, analysis, implementation, execution and reporting. It also discusses testing principles such as how testing can find defects but not prove their absence and how test cases need regular revision to avoid becoming outdated.
Here you will get overview of Software Testing:
what is software testing life cycle
software development life cycle
Methodologies Of software testing
Levels of testing
Types of Testing
V-model Architechture of testing
Test Case Example
Defect Life Cycle
Mobile Testing Tools used
CROSS Browser Testing Tools
Website Screen Capture tools:
The document provides an overview of the International Software Testing Qualifications Board (ISTQB). It discusses ISTQB's mission to advance the software testing profession through defining a body of knowledge, connecting the international testing community, and encouraging research. ISTQB offers certification programs at the Foundation, Advanced, and Expert levels, and its syllabi are available in many languages. Surveys have found benefits of ISTQB certification for both professionals and their employers, including improved productivity, recognition of skills, and increased marketability. The document also summarizes ISTQB's Agile Tester Extension, which aims to satisfy the growing demand for skills in agile testing environments.
Software Testing Life Cycle – A Beginner’s GuideSyed Hassan Raza
Software Testing Life Cycle refers to 6 phases of the software testing process. Learn about each phase of STLC in-depth in our article. (Source: https://www.goodcore.co.uk/blog/software-testing-life-cycle/)
The document discusses reporting test results in software testing. It states that a test log and test incident report are prepared during and after test execution. A test log records events during testing like execution details, procedure results, and anomalous events. A test incident report documents any unexpected or unexplainable incidents that require follow-up. It provides details like a summary, description, impact, and identifiers. A test summary report summarizes the overall testing results and forms part of a project's historical records.
The document discusses software test automation. It defines software test automation as activities that aim to automate tasks in the software testing process using well-defined strategies. The objectives of test automation are to free engineers from manual testing, speed up testing, reduce costs and time, and improve quality. Test automation can be done at the enterprise, product, or project level. There are four levels of test automation maturity: initial, repeatable, automatic, and optimal. Essential needs for successful automation include commitment, resources, and skilled engineers. The scope of automation includes functional and performance testing. Functional testing is well-suited for automation of regression testing. Performance testing requires automation to effectively test load, stress, and other non-functional requirements
Software testing involves verifying that software meets requirements and works as intended. There are various testing types including unit, integration, system, and acceptance testing. Testing methodologies include black box testing without viewing code and white box testing using internal knowledge. The goal is to find bugs early and ensure software reliability.
The document discusses various topics related to software testing including:
1. It introduces different levels of testing in the software development lifecycle like component testing, integration testing, system testing and acceptance testing.
2. It discusses the importance of early test design and planning and its benefits like reducing costs and improving quality.
3. It provides examples of how not planning tests properly can increase costs due to bugs found late in the process, and outlines the typical costs involved in fixing bugs at different stages.
The document discusses various aspects of test management including organizational structures for testing, configuration management, test estimation and monitoring, incident management, and standards for testing. It describes different levels of independence for testing, such as testing by developers, testing by development teams, and independent test teams. It also outlines the importance of configuration management, estimating and measuring test progress, logging incidents, and following standards for quality assurance and industry-specific testing.
The document outlines the software testing life cycle (STLC) which is a systematic and planned process for testing software. The STLC includes requirement analysis to define what will be tested, test planning to identify activities, resources and schedules, test case development to detail test cases and data, test execution to run test cases and log results, and test cycle closure to generate reports and complete testing.
This document summarizes Rex Black's book on risk-based testing strategies. It discusses:
- The two main types of risks in testing: product risks related to quality, and project risks related to management and schedules.
- How risk-based testing guides testing activities based on identified risks, prioritizing higher-risk items and allocating more testing effort to them.
- The benefits of risk-based testing over requirements-based testing, like having a more predictable reduction in risk over time and the ability to intelligently reduce testing if needed.
- The history of risk-based testing strategies dating back to the 1980s, and how modern approaches aim to systematically analyze and address risks.
Static analysis techniques can analyze source code without executing it to find potential issues. It checks for violations of coding standards and detects problems like unreachable code, undeclared variables, and array index errors. Data flow analysis examines how variables are defined and used. Control flow analysis checks for unreachable nodes, infinite loops, and conformance to flow patterns. Cyclomatic complexity measures a program's structural complexity. Static analysis has limitations but can efficiently find certain faults before testing begins.
A presentation that provides an overview of software testing approaches including "schools" of software testing and a variety of testing techniques and practices.
Software testing involves executing software components to evaluate properties against requirements. It identifies errors and ensures quality. Benefits include lower costs from early bug detection, improved security, quality, and customer satisfaction. Testing strategies include unit, integration, and system testing. Types are functional, non-functional, and regression/maintenance testing. Methodologies are white-box and black-box testing. The software testing lifecycle has phases for requirements, design, execution, closure, and analysis. Performance testing types include stress, volume, configuration, compatibility, regression, recovery, and usability testing.
The 11-step software testing process follows a "V" model where the first five steps involve verifying interim deliverables and the last six steps involve validating the executable software. The 11 steps are: 1) assess development plan and status, 2) develop test plan, 3) test requirements, 4) test design, 5) test during programming, 6) execute and record results, 7) acceptance test, 8) report results, 9) test installation, 10) test software changes, and 11) evaluate test effectiveness. The process aims to validate and verify that the software meets requirements, works as expected, can be implemented consistently, and satisfies stakeholder needs.
This document discusses software testing. It defines software testing as an empirical investigation to provide information about product quality. Testing is important because all software has defects, is complex, and is created by humans. Various roles are involved in testing, including testers, developers, and users. An important part of testing is planning with test plans, scripts, and techniques like quick tests, negative testing, and integration testing. The document emphasizes the importance of finding defects early through a planned, systematic approach to testing.
The document discusses risk based testing and random testing approaches. It outlines the challenges of time and resource constraints when testing software. Risk based testing uses risk analysis and metrics to focus testing on high risk areas in order to save time and money while maintaining quality. Metrics are developed to manage and organize large test projects. Random testing involves automatically generating random inputs and scenarios to stress test software in ways not covered by nominal testing. It can be used with differential and fault injection testing against a reference implementation to automatically check test results.
The document discusses software testing concepts including the importance of testing, the testing life cycle, types of testing, quality assurance and control, and bug reporting. It provides definitions and descriptions of key testing terms like errors, bugs, faults, failures, test plans, test cases, unit testing, integration testing, system testing, and regression testing. Testing roles like testers, QA leads, and test analysts are also outlined.
This document discusses fundamentals of software testing. It explains that testing is important to identify defects that can cause problems. Testing helps measure software quality by finding bugs and ensuring requirements are met. However, exhaustive testing of all possible inputs is impossible, so risk-based testing is used instead. Testing activities should start early and continue through the software development life cycle. The goal of testing is to reduce risks and improve the software, not just find defects.
This document provides an overview of fundamentals of software testing. It discusses why testing is needed due to human errors in development that can introduce defects. It defines software testing as evaluating a system or component against requirements or to identify defects. The document outlines the typical test process, including planning, analysis, implementation, execution and reporting. It also discusses testing principles such as how testing can find defects but not prove their absence and how test cases need regular revision to avoid becoming outdated.
1) Testing is a process that occurs throughout the software development life cycle to find defects, provide confidence, and prevent defects. It includes both static and dynamic testing.
2) The fundamental test process includes planning and control, analysis and design, implementation and execution, evaluating exit criteria and reporting, and test closure activities.
3) Testing requires a different mindset than development, as testers look critically at software to find defects rather than working to solve problems like developers. Independent testing helps ensure quality.
Software testing is an important phase of the software development process that evaluates the functionality and quality of a software application. It involves executing a program or system with the intent of finding errors. Some key points:
- Software testing is needed to identify defects, ensure customer satisfaction, and deliver high quality products with lower maintenance costs.
- It is important for different stakeholders like developers, testers, managers, and end users to work together throughout the testing process.
- There are various types of testing like unit testing, integration testing, system testing, and different methodologies like manual and automated testing. Proper documentation is also important.
- Testing helps improve the overall quality of software but can never prove that there
The document provides an overview of software testing fundamentals including definitions of testing, why testing is necessary, quality versus testing, general testing vocabulary, testing objectives, and general testing principles. It defines software testing as verifying and validating that software meets requirements, works as expected, and discusses how testing is needed because humans make mistakes and software errors can have expensive and dangerous consequences. The document also provides definitions of quality, contrasts popular versus technical views of quality, and outlines key aspects of quality like functionality, reliability, and value.
Software Testing Presentation in Cegonsoft Pvt Ltd...ChithraCegon
The process of executing and verifying whether the application or a program or system meets the customer requirements with the intent of finding errors.
The document discusses fundamentals of software testing. It defines software testing as a process that involves planning, preparation, and evaluation activities throughout the software development life cycle. The goal of testing is to identify defects, verify that requirements are met, and demonstrate software fitness for purpose. Testing methods include both static techniques like documentation review and dynamic techniques like executing test cases. The results of testing are used to evaluate software quality and determine whether additional work is needed.
The document outlines the key activities in a fundamental test process, including test planning and control, test analysis and design, test implementation and execution, evaluating exit criteria and reporting, and test closure activities. It describes the major tasks within each activity in the order they are typically performed, such as determining test scope and objectives in test planning, reviewing requirements and designing tests in test analysis and design, implementing test cases and executing tests, assessing whether exit criteria are met, and archiving testware upon completion.
This document summarizes a lecture on software testing. It defines software testing and its objectives, including finding bugs, reducing risk, and ensuring requirements are met. Principles of testing discussed include that testing shows bugs but not their absence, exhaustion is impossible, and early testing is important. Factors that can lead to failures like pressures and complexity are reviewed. The document also discusses testing standards, the psychology of testing versus development, and careers in software testing.
The document provides an overview of software testing fundamentals. It discusses the role of testing in the software development life cycle and how testing helps improve quality. It defines software testing as a process involving planning, preparation, execution and evaluation. Both static and dynamic testing methods are used to test software products as well as related documentation. The document also compares software testing to driving tests, noting they both involve planning, static and dynamic elements, evaluation against requirements, and aim to demonstrate fitness for purpose while detecting defects.
Testing is the process of evaluating a system or its component(s) with the intent to find whether it satisfies the specified requirements or not. In simple words, testing is executing a system in order to identify any gaps, errors, or missing requirements in contrary to the actual requirements.
This document provides an overview of a course on Software Quality Assurance. It discusses several key points:
- The course introduces students to Software Quality Assurance principles as practiced in industry.
- Several methods are used for process and product assurance, including audits, inspections, reviews, testing, and assessments.
- Embedded quality assurance activities aim to detect and remove errors early in the development cycle to reduce costs.
- A case study of the Space Shuttle flight software project demonstrates how a rigorous quality assurance process using embedded activities achieved extremely high reliability.
In this section, we will describe the fundamental test process and activities. These start with test planning and continue through to test closure. For each part of the test process, we'll discuss the main tasks of each test activity.
backlink:
http://sif.uin-suska.ac.id/
http://fst.uin-suska.ac.id/
http://www.uin-suska.ac.id/
This document discusses the process of test planning and control for software testing. It describes the major tasks involved in test planning such as determining scope and risks, developing a test approach, and scheduling tests. It also covers test control which includes measuring results, monitoring progress, and making decisions. Test implementation and execution are outlined as transforming test conditions into test cases, executing tests, and reporting discrepancies. Evaluating exit criteria and test closure are the final stages discussed.
This presentation gives you a walkthorugh on CTFL module 01.
Covers in detail about-
1. Fundamentals of testing
2. Terminologies in testing
3. Seven testing principles
4. Fundamental test process
The document discusses software testing concepts including:
- Quality assurance ensures processes are established to produce products that meet specifications.
- Testing determines if a product meets requirements and identifies failures to meet requirements.
- A test plan is written by the lead tester and includes the testing strategy, resources, and plans. It outlines test cases and procedures to validate software meets specifications.
- Testing begins in the define system phase to ensure requirements are testable, and continues through subsequent phases including product testing, acceptance testing, and deployment. Documentation and repeatable processes are critical to quality assurance.
COURSE IS NOW FULLY AVAILABLE AND LIVE HERE: https://goo.gl/gVukvc
This is the first section of six parts to cover what you need to learn about ISTQB foundations exam. Broken down into pieces and examples to pass. Check out more on my blog: https://www.rogeriodasilva.com/
Understanding of Self - Applied Social Psychology - Psychology SuperNotesPsychoTech Services
A proprietary approach developed by bringing together the best of learning theories from Psychology, design principles from the world of visualization, and pedagogical methods from over a decade of training experience, that enables you to: Learn better, faster!
Inspire: Igniting the Spark of Human Potentialgauravingole9
Inspire: Igniting the Spark of Human Potential
Inspiration is the force that propels individuals from ordinary to extraordinary. It transforms ideas into innovations, dreams into realities, and individuals into icons. This article delves into the multifaceted nature of inspiration, exploring its sources such as nature, art, personal experiences, and the achievements of others, and its profound impact on personal growth, societal progress, and cultural evolution. Through the lens of historical figures and timeless quotes, we uncover how inspiration fuels creativity, drives societal change, and ignites the spark of human potential.
Procrastination is a common challenge that many individuals face when it comes to completing tasks and achieving goals. It can hinder productivity and lead to feelings of stress and frustration.
However, with the right strategies and mindset, it is possible to overcome procrastination and increase productivity.
In this article, we will explore the causes of procrastination, how to recognize the signs of procrastination in oneself, and effective strategies for overcoming procrastination and boosting productivity.
As we navigate through the ebbs and flows of life, it is natural to experience moments of low motivation and dwindling passion for our goals.
However, it is important to remember that this is a common hurdle that can be overcome with the right strategies in place.
In this guide, we will explore ways to rekindle the fire within you and stay motivated towards your aspirations.
You may be stressed about revealing your cancer diagnosis to your child or children.
Children love stories and these often provide parents with a means of broaching tricky subjects and so the ‘The Secret Warrior’ book was especially written for CANSA TLC, by creative writer and social worker, Sally Ann Carter.
Find out more:
https://cansa.org.za/resources-to-help-share-a-parent-or-loved-ones-cancer-diagnosis-with-a-child/
aula open english sobre Classic-motorcycles-2_1.pdf
Fundamentals of testing
1. FUNDAMENTALS OF
TESTING
• By : Y.A Obbi Ikhsan
Backlink ke website resmi :
http://sif.uin-suska.ac.id/
http://fst.uin-suska.ac.id/
http://www.uin-suska.ac.id/
2. UNIVERSITAS ISLAM NEGERI SULTAN
SYARIF KASIM RIAU
FAKULTAS SAINS DAN TEKONOLOGI
Nama : Y.A Obbi Ikhsan
Nim : 11453106082
Jurusan : Sistem Informasi
3. In this chapter, we will introduce you to the fundamentals
of testing: why testing is needed; its limitations, objectives and
purpose; the principles behind testing; the process that testers
follow; and some of the psychological factors that testers must
consider in their work
4. WHY IS TESTING NECESSARY?
• Describe, with examples, the way in which a defect in software can cause
harm to a person, to the environment or to a company. (K2)
• Distinguish between the root cause of a defect and its effects. (K2)
• Give reasons why testing is necessary by giving examples. (K2)
• Describe why testing is part of quality assurance and give examples of
how testing contributes to higher quality. (K2)
• Recall the terms 'mistake', 'defect', 'fault', 'failure' and the corresponding
terms 'error' and 'bug'. (K1)
• Explain the fundamental principles in testing. (K2)
5. INTRODUCTION
In this section, we're going to kick off the book with a
discussion on why testing matters. We'll describe and illustrate
how software defects or bugs can cause problems for people, the
environment or a company. We'll draw important distinctions
between defects, their root causes and their effects. We'll explain
why testing is necessary to find these defects, how testing
promotes quality, and how testing fits into quality assurance. In
this section, we will also introduce some fundamental principles
of testing.
6. TESTING AND QUALITY
Testing helps us to measure the quality of software in
terms of the number of defects found, the tests run, and
the system covered by the tests. We can do this for both the
functional attributes of the software (for example, printing a
report correctly) and for the non-functional software
requirements and characteristics (for example, printing a
report quickly enough).
7. WHAT IS QUALITY?
Projects aim to deliver software to specification. For the project to
deliver what the customer needs requires a correct specification.
Additionally, the delivered system must meet the specification. This is
known as validation ('is this the right specification?') and verification ('is
the system correct to specification?'). Of course, as well as wanting the
right software system built correctly, the customer wants the project to be
within budget and timescale – it should arrive when they need it and not
cost too much.
9. HOW MUCH TESTING IS ENOUGH?
Testing Principle - Exhaustive testing is impossible
• Testing everything (all combinations of inputs and
preconditions) is not feasible except for trivial cases. Instead
of exhaustive testing, we use risks and priorities to focus
testing efforts.
10. OF THE DRIVING TO THE POINT WHERE THE DRIVER CANNOT PASS.
THE FORMAT OF THE DRIVING TEST AND THE CONDUCT OF THE
EXAMINER ARE WORTH CONSIDERING :
• The test is planned and prepared for. In advance of the test, the examiner has planned a series of
routes which cover the key driving activities to allow a thorough assessment of the driver's
performance. The drivers under test do not know what route they will be asked to take in advance,
although they know the requirements of the test.
• The test has known goals – assessing whether the driver is sufficiently safe to be allowed to drive by
themselves without an instructor, without endanger ing themselves or others. There are clear
pass/fail criteria, based on the number and severity of faults, but the confidence of the examiner in
the driving is also taken into account.
• The test is therefore carried out to show that the driver satisfies the require ments for driving and to
demonstrate that they are fit to drive. The examiner looks for faults in the driving. The time for the
test is limited, so it is not a complete test of the driver's abilities, but it is representative and allows the
examiner to make a risk-based decision about the driver. All the drivers are tested in an equivalent
way and the examiner is neutral and objective. The examiner will log factual observations which
enable a risk assessment to be made about the driving. Based on this, a driver who passes will be
given a form enabling him to apply for a full driving license. A driver who fails will get a report with a
list of faults and areas to improve before retaking the test.
• As well as observing the driver actually driving, the examiner will ask questions or the driver will take
a written exam to check their under standing of the rules of the road, road signs, and what to do in
various traffic situations.
11. DEFINING SOFTWARE TESTING
• With that analogy in mind, let's look at the ISTQB definition
of software testing.
Let's break the definition down into parts; the definition has
some key phrases to remember.
12. First, let's look at testing as a process:
• Process – Testing is a process rather than a single activity – there are a series of activities
involved.
• All life cycle activities – Chapter 2 looks at testing as a process that takes place throughout the
software development life cycle. We saw earlier that the later in the life cycle we find bugs, the
more expensive they are to fix. If we can find and fix requirements defects at the requirements
stage, that must make commercial sense. We'll build the right software, correctly and at a lower
cost overall. So, the thought process of designing tests early in the life cycle can help to prevent
defects from being introduced into code. We sometimes refer to this as 'verifying the test basis
via the test design'. The test basis includes documents such as the requirements and design
specifications. You'll see how to do this in Chapter 4.
• Both static and dynamic – We'll see in Chapter 3 that as well as tests where the software code is
executed to demonstrate the results of running tests (often called dynamic testing) we can also
test and find defects without exe cuting code. This is called static testing. This testing includes
reviewing of documents (including source code) and static analysis. This is a useful and cost
effective way of testing.
• Planning – Activities take place before and after test execution. We need to manage the testing;
for example, we plan what we want to do; we control the test activities; we report on testing
progress and the status of the software under test; and we finalize or close testing when a phase
completes. Chapter 5 covers these test management activities.
13. • Preparation – We need to choose what testing we'll do, by selecting test
con ditions and designing test cases. Chapter 4 covers the test design
activities.
• Evaluation – As well as executing the tests, we must check the results and
evaluate the software under test and the completion criteria, which help
us decide whether we have finished testing and whether the software
product has passed the tests.
• Software products and related work products – We don't just test code. We test
the requirements and design specifications, and we test related
documents such as operation, user and training material. Static and
dynamic testing are both needed to cover the range of products we
need to test.
14. Software test and driving test compared
We can see that the software test is very like a driving
test in many ways, although of course it is not a
perfect analogy! The driving examiner becomes the
software tester. The driver being examined becomes
the system or software under test, and you'll see as we
go through this book that the same approach broadly
holds.
15. • Planning and preparation - Both the examiner and the tester need a plan of
action and need to prepare for the test, which is not exhaustive, but is
repre sentative and allows risk-based decisions about the outcome.
• Static and dynamic - Both dynamic (driving the car or executing the
software) and static (questions to the driver or a review of the software)
tests are useful.
• Evaluation - The examiner and the tester must make an objective
evaluation, log the test outcome and report factual observations about
the test.
• Determine that they satisfy specified requirements – The examiner and
tester both check against requirements to carry out particular tasks
successfully.
• Demonstrate that they are fit for purpose - The examiner and the tester
are not evaluating for perfection but for meeting sufficient of the
attributes required to pass the test.
• Detect defects - The examiner and tester both look for and log faults.
16. WHEN CAN WE MEET OUR TEST
OBJECTIVES?
We can use both dynamic testing and static testing as a means
for achieving similar test objectives. Both provide information
to improve both the system to be tested, and the development
and testing processes. We mentioned above that testing can have
different goals and objectives, which often include :
• finding defects;
• gaining confidence in and providing information about the
level of quality;
• preventing defects.