Documente Academic
Documente Profesional
Documente Cultură
Outline
What is Software Testing? Software Quality Why Test Software? The Testing Spectrum Benefits of Software Testing What should be Tested?
Software Testing
12/31/2012
Software Testing
12/31/2012
i.e. executing the software. This is part of testing, but not all of the testing activities
Test activities exist before and after test execution. These activities
include:
o Planning and control o Choosing test conditions o Designing and executing test cases o Checking results o Evaluating exit criteria
been completed
achieving similar objectives, and will provide information that can be used to improve both the system being tested and the development and testing processes
Testing can have the following objectives: o Finding defects o Gaining confidence about the level of quality o Providing information for decision-making o Preventing defects
5 Software Testing 12/31/2012
the life cycle can help to prevent defects from being introduced into code. Reviews of documents (e.g., requirements) and the identification and resolution of issues also help to prevent defects appearing in the code
Different viewpoints in testing take different objectives into account.
requirements
of the software (with no intention of fixing defects), to give information to stakeholders of the risk of releasing the system at a given time
Maintenance testing often includes testing that no new defects have been
that are caused by defects. Debugging is the development activity that finds, analyses and removes the cause of the failure
Subsequent re-testing by a tester ensures that the fix does indeed resolve
the failure. The responsibility for each these activities is usually testers test and developers debug
7 Software Testing 12/31/2012
Software Quality
Garvin D in his article What does product quality mean? describes
Software Quality
The manufacturing view examines whether the product was built right
the first time, avoiding costly rework to fix delivered faults. Thus the manufacturing view is a process view, advocating conformance to good process
Everybody has a different view of what characteristics of a software
contribute to its overall quality. This is because the importance of the characteristics depend on who is analyzing the software. For example:
Does it do what they want?
Is it easy to learn? How does it compare with other products? What are the number of failures and the type of failures?
9 Software Testing 12/31/2012
Software Quality
With the help of testing, it is possible to measure the quality of software in
terms of defects found, for both functional and non-functional software requirements and characteristics
Testing can give confidence in the quality of the software if it finds few or
no defects
A properly designed test that passes reduces the overall level of risk in a
system
When testing does find defects, the quality of the software system
root causes of defects found in other projects, processes can be improved, which in turn should prevent those defects from reoccurring and, as a consequence, improve the quality of future systems. This is an aspect of quality assurance
10 Software Testing 12/31/2012
Process Quality
The quality of the development and maintenance process is as
The process should be improved by examining: Where and when you are likely to find a particular kind of fault How can we find faults earlier in the development process? How can we design secure, high-quality systems? Are there alternative activities that can make our process more
11
Software Testing
12/31/2012
Quality Attributes
Measures of software quality can be divided into: o Static quality attributes o Dynamic quality attributes
Static
documentation. It focuses on the range of methods that are used to determine or estimate software quality without reference to actual executions. Techniques in this area include code inspection, program analysis, symbolic analysis, and model checking
Static quality attributes include structured, maintainable, and testable
Quality Attributes
Dynamic quality attributes relate to the behavior of the application
while in use. It deals with specific methods for ascertaining and/or approximating software quality through actual executions, i.e., with real data and under real (or simulated) circumstances.
structurally dictated testing procedures, and the automation of testing environment generation
Quality Attributes
Reliability: the probability of a failure-free operation Correctness: the correct operation of an application and is always with
assumptions e.g all buttons in the user interface might follow a common color-coding convention
Usability: the ease with which an application can be used Performance: refers to the time the application takes to perform a
requested task
14 Software Testing 12/31/2012
including loss of money, time or business reputation, and could even cause injury or death
Software defects can be caused by human beings. An error may
reviews cannot:
o Does it really work as expected? o Does it meet the users requirements? o Is it what the users expect? o Do the users like it? o Is it compatible with our other systems? o How does it perform? o How does it scale when more users are added? o Which areas need more work? o Is it ready for release?
16 Software Testing 12/31/2012
17
Software Testing
12/31/2012
specifications. A specification is a description of a function in terms of a measurable output value given a specific input value under specific preconditions
A simple specification may be along the line of a SQL query retrieving data
for a single account against the multi-month account-summary table must return these eight fields <list> ordered by month within 3 seconds of submission.
The validation process confirms that the software meets the business
requirements
A simple example of a business requirement is After choosing a branch
office name, information about the branchs customer account managers will
appear in a new window. The window will present manager identification and
18
summary Testing Software information about each managers customer base: <list of data 12/31/2012 elements>. Other requirements provide details on how the data will be
defects ultimate source may be traced to a fault introduced in the specification, design, or development (coding) phases
A good test is one that has a high probability of finding an as yet
undiscovered error, and a successful test is one that uncovers an as yet undiscovered error
Defects occur due to: o Errors made by human beings o Time pressure o Complexity in code o Complexity of infrastructure o Changing technologies o Many system interactions
19 Software Testing 12/31/2012
example, radiation, magnetism, electronic fields, and pollution can cause faults in firmware or influence the execution of software by changing the hardware conditions
Testing plays a major role in software development, maintenance and
operations:
o Rigorous testing of systems and documentation can help to
reduce the risk of problems occurring during operation and contribute to the quality of the software system, if the defects found are corrected before the system is released for operational
use
20 Software Testing
software in terms of defects found, for both functional and nonfunctional software requirements and characteristics
o Testing can give confidence in the quality of the software if it finds
few or no defects
o A properly designed test that passes reduces the overall level of risk
in a system.
o When testing does find defects, the quality of the software system
informed decisions about the release of the software or system being tested, for the next development step or handover to customers
22
Software Testing
12/31/2012
done at each level of software development is different in nature and has different objectives
Unit Testing is done at the lowest level. It tests the basic unit of
software, which is the smallest testable piece of software, and is often called unit, module, or component interchangeably.
combined into a larger structure. The test is often done on both the
system. System test is often based on the functional/requirement specification of the system. Non-functional quality attributes, such as reliability, security, and maintainability, are also checked.
over from the developers to the customers or users. The purpose of acceptance testing is rather to give confidence that the system is working than to find errors.
24
Software Testing
12/31/2012
versions
Identify and catalog reusable modules and components
situations before going on to unlikely situations. For example, if the application retrieves data and performance is important, test reasonable queries with a normal load on the server before going on to unlikely ones at peak usage times
26
Software Testing
12/31/2012
underlying code. It also examines the functional behavior of the application. Behavior is a function of the code, but it doesnt always follow that if the behavior is bad then the code is bad. Its entirely possible that the code is solid but the requirements were inaccurately or incompletely collected and communicated
A comprehensive testing regime examines all components associated
the systems that the application is to run on, and the manuals and
documentation that accompany the application
27 Software Testing 12/31/2012
better.
o Business requirements
o Hardware configuration
12/31/2012
28
may be larger or smaller depending on the size and complexity of the application being tested
The programmer(s) who wrote the application should have a reduced
role in the testing if possible. The concern here is that theyre already so intimately involved with the product and know that it works that they may not be able to take an unbiased look at the results of their
labors
Testers must be cautious, curious, critical but non-judgmental, and
good communicators. One part of their job is to ask questions that the
versa, but testers and developers do share at least one major traitthey itch to get their hands on the keyboard
Testers are the only IT people who will use the system as heavily an
The problem is that novices dont have the business experience that the
expert users have and might not recognize that something is wrong
Testers from IT must find the defects that only the expert users will find
because the experts may not report problems if theyve learned that it's
not worth their time or trouble
30 Software Testing 12/31/2012
Software Developer(s)
31
Software Testing
12/31/2012
32
Software Testing
12/31/2012
END
33
Software Testing
12/31/2012