testing1-Pendahuluan

advertisement
Testing dan Implementasi
Week 1. Pendahuluan
Objective
• Mahasiswa dapat menjelaskan tentang perlunya
Manajemen kualitas (Quality Management) terhadap
perangkat lunak
• Mahasiswa dapat menjelaskan peranan Software
Quality Assurance terhadap mutu dari suatu perangkat
lunak.
• Mahasiswa akan dapat menerangkan peranan tahap
pengujian dan tahap implementasi pada rangkaian
siklus hidup pengembangan sistem perangkat lunak.
• Mahasiswa akan dapat menghasilkan perencanaan
pengujian (test plan) suatu proyek pengujian perangkat
lunak.
• Mahasiswa akan dapat menyimpulkan hasil proses
pengujian yang dilakukan.
• Mahasiswa akan dapat menciptakan tim pengujian
berdasarkan kualifikasi yang dibutuhkan.
BUKU WAJIB
• Pressman , Roger S, Software Engineering A
Practioner’s Approach. 7th Edition, Mc
Graw Hill International Edition
• Black, Rex. (2002). Managing The Testing
Process. 2st Ed., Microsoft Press, Redmond,
Washington 98052-6399
• ISBN 0-7356-0584-X
Pengujian (Testing)
• Pengujian perangkat lunak (Software testing) adalah
proses untuk mengukur kualitas dari perangkat lunak
yang dikembangkan.
• Kualitas perangkat lunak (software quality) mengukur
seberapa baik sistem perangkat lunak dirancang
(quality of design), dan tingkat kesesuaian perangkat
lunak dengan rancangan yang telah dibuat (quality of
conformance).
• Standar internasional yang digunakan untuk
mengevaluasi kualitas perangkat lunak adalah ISO
9126 yang mendefinisikan karakteristik perangkat
lunak yang berkualitas.
Why test software?
“Software bugs, or errors... ...cost the
U.S. economy an estimated $59.5
billion annually...more than a third of
these costs, or an estimated $22.2
billion ... could be eliminated by an
improved testing ...”
NIST (National Institute of Standards
and Technology), 2002
Why find bugs in software early?
A software defect left unfixed until
late in the development cycle
costs 80 to 1000 times more to fix
than it would if it was dealt with
earlier
Gartner Inc.
Purpose of software testing
• ”Software Testing is the process of executing a
program or system with the intent of finding errors”
*
or
• ”Any activity aimed at evaluating an attribute or
capability of a program or system and determining
that it meets its required results” **
* Glenford Myers, The art of software testing
** William Hetzel, The Complete Guide to Software Testing
When to stop testing?
• Complete testing of a system is generally
unfeasible (too expensive)
• Testing normally stops:
▫ when resources are exhausted or
▫ when the software meets the requirements or
▫ when the benefit of continued testing cannot
justify the added testing costs
• So, how do we know this?
Implementasi Perangkat Lunak
(System Implementation)
System Implementation
• System Implementation or Adoption deals with
the transfer (conversion) between an old system
to a target system in an organization. So if a
company works with an old software system, it
may want to use a new system which is more
efficient, has more work capacity etc. So then a
new system needs to be adopted, where after it
can be used.
Tahap Pengujian & Implementasi dalam
Siklus Hidup Pengembangan Sistem
(Testing & Implementation Phases in SDLC)
Traditional SDLC
(1) Systems Investigation
An eight-stage systems
development life cycle
(SDLC)
(2) Systems Analysis
(3) Systems Design
(4) Programming
(5) Testing
(6) Implementation
(7) Operation
(8) Maintenance
Go Back to a previous Stage or Stop
12
Testing & Implementation Phases in
SDLC
• Testing (Pengujian)
▫ Checks to see if the information system will produce the expected and
desired results under certain conditions
• Implementation (Implementasi)
▫ The process of converting from the old system to the new system
▫ Four major conversion strategies
• Parallel conversion: the old and new systems operate simultaneously for
a period of time
• Direct conversion: the old system is cut off and the new systems is
turned on at a certain point in time
• Pilot conversion: introduces the new system in one part of the
organization
• Phased conversion: introduces components of the new system in stages
Purpose of test management
• To devise and apply an effective and
economic test strategy
• Key elements:
▫
▫
▫
▫
▫
Test planning
Test specifications
Test execution
Test monitoring and reporting
System evaluation
The Tools You Need
• A thorough test plan: meramalkan dan menghindari
masalah yg potensial.
•
•
•
•
A well-engineered test system
A state-based bug tracking database
A comprehensive test tracking spreadsheet
A simple change management database
Diperlukan untuk pengelolaan proses pengujian.
The Resources You Need
•
•
•
•
A practical test lab
Test Engineers and Technician
Contractors and Consultants
External test Labs and Vendors
Diperlukan untuk menjalankan proses pengujian.
Dasar Sistem Pengujian
• Suatu pengujian yang akan dilakukan harus
mempunyai fokus yang jelas.
• Ada 3 pertanyaan yang harus dijawab
sebelum melakukan suatu pengujian:
▫ What you might test ?
▫ What you should test ?
▫ What you can test ?
• Jawaban -> membantu menentukan fokus
pengujian yang dilakukan.
• Fokus pengujian yang jelas akan menentukan
kualitas dari sistem yang diuji.
1. What you might test?
Usaha Pengujian yang Diperluas
(The Extended Test Effort)
Usaha Pengujian yang Diperluas
• Dalam suatu proyek pengembangan perangkat
keras maupun perangkat lunak, sudah banyak
proses pengujian yang dilakukan di luar
organisasi.
• Ada 2 pandangan yang digunakan untuk menilai
bagaimana kelompok diluar organisasi pengujian
formal berkontribusi pada suatu proses
pengujian:
1. Test Granularity : level of focus of a test
2.Test Phases : Jenis pengujian yg dilakukan dalam
berbagai macam tahapan pengujian.
Test Granularity
• Refers to the fineness or coarseness of a test’s focus
• Can be thought of as running along a spectrum
ranging from structural to behavioural test
Structural Test
• Structural test find bugs in low level operations
such as those that occur down at the levels of
lines of code, database schemas, chips,
subassemblies, and interfaces.
• Structural tests are based on how a system
operates
Who did the structural test?
• Expert Programmers can be good structural
testing
• Testers develop most structural test by looking
at the code and data structures
Behavioural Test
• Behavioural tests are often used to find bugs in
high-level operations, at the level of features,
operational profiles, and customer scenarios
• They are functional tests based on what a system
should do
• Behavioral testing involves a detailed
understanding of the application domain, the
business problem being solved, and the mission
the system serves
Who did the behavioral test?
• Testers who understand the design of the
system, at least at a high level, so that they can
effectively find bugs common to that type of
design.
• In addition to understand some of the
technological issues surrounding the system
under test, behavioral testers must understand
the special behavioral test techniques that are
most effective at finding such bugs
What is Good Behavioral Test?
• Structured
• Methodical
• Often repeatable sequences of testercreated conditions
Behavioral testing is the primary test technique
for most independent test organizations
Live Testing
• Live Test involve putting customers, content
experts, early adopters and other end users in
front of the system
• In some cases, we encourage the testers to try to
break the system
• Well-known form: Beta Testing
Test Phases
•
•
•
•
•
•
•
Unit Testing
Component or Subsystem Testing
Integration or Product Testing
String Testing
System Testing
Acceptance or User Acceptance Testing
Pilot Testing
Benefit of Phased Test Approach
• Structural Testing can build product stability
• Structural testing using scaffolding or stubs can start
early
• You can detect bugs earlier and more efficiently
• You can gather better metrics and use best-practice
techniques in your testing effort
• Phases provide real and psychological milestones against
which you can gauge the "doneness" of testing and thus
the project
Test Phase Sequencing
Terima Kasih
Download