You are on page 1of 30

 ITCS 327

◦ Software Engineering 2

LECTURE 1 1
 Knowledge of software testing and its
strategies.
 Sharpen the skills of testing the code.
 Domain of Study
◦ Implementation, Installation and Maintenance.
◦ Software Testing in a broader context.
◦ Software Quality Assurance.

LECTURE 1 2
 To critically understand the definitions of software
implementation, testing and software qualities.
 To demonstrate the types of various software testing
techniques.
 To understand the importance of considering static
techniques for the assessment of software work
product.
 To apply the principal approaches to software testing,
together with their associated techniques.
 To critically understand implementation patterns,
coding style and standard to produce quality code.

LECTURE 1 3
Upon successful completion of the course,
students should be able to:

 A- Knowledge and Understanding.


◦ A-1. Concepts and Theories: Demonstrate advanced
knowledge and understanding of essential facts,
concepts and specialist theories relating to the
implementation, testing, and software quality.
 B- Subject-Specific Skills
◦ B-1. Problem Solving: Solve the problems of software
implementation, installation, and quality using advanced
specialized techniques.
◦ B-2. Modeling and Design: Design test cases for testing
software quality characteristics, such as effectiveness,
reliability and accuracy.

LECTURE 1 4
Upon successful completion of the course, students should be able to:

 C- Thinking Skills
◦ C-1. Analytic: Critically analyze software problems, identify what to
test and choose the test conditions using test cases.
◦ C-3. Creative: Demonstrate creativity in the development of effective
software testing cases for producing reliable, accurate and compatible
software.
 D- General and Transferable Skills (Other Skills Relevant to Employability
and Personal Development)
◦ D-1. Communication: Show the ability to communicate clearly to
convey complex information and ideas in appropriate oral and written
forms.
◦ D-3. Organizational and Developmental Skills: Demonstrate the ability
to organize ideas and effectively allocate time in given assignment.
◦ D-2. Ethical and Social Responsibility: Demonstrate an understanding
and adhere to the ethical, legal and professional issues and significant
responsibilities pertaining to software testing.

LECTURE 1 5
Type of
Description ILOs Weighting
Assessment
The assignment consists of essay, problem-solving and research based
theoretical questions regarding topics in software testing. The purpose of
B1, B2, C1,
the assignment is to assess students where they have to demonstrate their
Assignments C3, D1, D3, 20%
extensive and detailed knowledge and critical understanding of key
D4
concepts of software testing. Students will be given two assignments
(each worth 10%).
The test will be an in-class 90 minutes exam that will consist of short-
A1, B1, B2,
Major Test answer, essay, and problem solving questions and cover the topics studied 30%
C1
in the first 8 weeks.
The quizzes will consist of MCQs, and short-answer questions.
The purpose of the quiz is to assess the students’ knowledge and
Quizzes understanding of key concepts, principles and theories of software A1 10%
testing. Students will be given three quizzes and best two will be
considered.
The final exam is comprehensive and will be of two hours duration. It A1, B1, B2,
Final Exam 40%
will consist of short-answer, essay and problem-solving questions. C1, D4
Case Studies Different software project cases are analyzed and studied. C1, D4 Formative

In-Class Exercises In-class exercises consisting mainly of problem solving questions. B1, B2 Formative

Overall 100%

LECTURE 1 6
 Mili A. and Tchier F. (2015) Software Testing:
Concepts and Operations, John Wiley & Sons.
 Hoffer J. A. , George J. and Valacich J. A.
(2013) Modern Systems Analysis and Design,
7th Edition, Pearson.
 Others
◦ Andreas Spiller, Tilo Linz, Hans Shaefer (2014),
Software Testing Foundations, 4th Edition, ISTQB
Compliant.
◦ Please refer to the Syllabus.

LECTURE 1 7
LECTURE 1 8
Software is:
(1) instructions (computer programs) that
when executed provide desired features,
function, and performance;
(2) data structures that enable the programs
to adequately manipulate information and
(3) documentation that describes the
operation and use of the programs.

LECTURE 1
9
Software has dual role.
Product, and vehicle for delivering the product.
Software – producing, managing, acquiring,
modifying, displaying, or transforming
information.
Vehicle – operating systems, networks,
software tools and environments.

LECTURE10
1
 Software is developed or engineered, it is not
manufactured in the classical sense.
 Software doesn't "wear out."
 Although the industry is moving toward
component-based construction, most software
continues to be custom-built.
◦ Reusable components such as GUI

LECTURE11
1
LECTURE12
1
 Some realities:
◦ a concerted effort should be made to understand the
problem before a software solution is developed
◦ design becomes a pivotal activity
◦ software should exhibit high quality
◦ software should be maintainable
 The seminal definition:
◦ [Software engineering is] the establishment and use of
sound engineering principles in order to obtain
economically software that is reliable and works
efficiently on real machines.

LECTURE13
1
 The IEEE definition:
◦ Software Engineering: (1) The application of a
systematic, disciplined, quantifiable approach to the
development, operation, and maintenance of software;
that is, the application of engineering to software. (2)
The study of approaches as in (1).

LECTURE14
1
tools

methods

process model

a “quality” focus

Software Engineering

LECTURE15
1
 Communication
 Planning
 Modeling
◦ Analysis of requirements
◦ Design
 Construction
◦ Code generation
◦ Testing
 Deployment

LECTURE16
1
 Software project management
 Formal technical reviews
 Software quality assurance
 Software configuration management
 Work product preparation and
production
 Reusability management
 Measurement
 Risk management

LECTURE17
1
 System software – collections of programs written to service other
programs. E.g. Compilers, OS, Drivers etc.
 Application software – stand-alone program to solve a specific business
need. E.g. Point-of-sale transaction processing.
 Engineering/scientific software – Astronomy, Molecular biology
 Embedded software – resides within a product or system and is used to
implement and control features and functions for the end users and
system itself. E.g. key pad control of microwave oven, braking systems,
dashboard displays, fuel control.
 Product-line software – to provide specific capability for use by many
different customers. E.g. word processing, spreadsheets, multimedia,
graphics, entertainment, database mangmt, personal and business
applications.
 WebApps (Web applications) – web 2.0 emerges
 AI software – to solve complex problems for which computation or
straightforward analysis is difficult. E.g. robotics, expert systems, pattern
recognition.

LECTURE18
1
 Open world computing—pervasive, distributed
computing
◦ Ubiquitous computing—wireless networks
 Netsourcing—the Web as a computing
engine
 Open source—”free” source code open to the
computing community (a blessing, but also
a potential curse!)

LECTURE19
1
LECTURE 1 20
Why must it change?
◦ software must be adapted to meet the
needs of new computing environments
or technology.
◦ software must be enhanced to
implement new business requirements.
◦ software must be extended to make it
interoperable with other more modern
systems or databases.
◦ software must be re-architected to make
it viable within a network environment.

LECTURE21
1
Testing is the process of exercising
a program with the specific intent of
finding errors prior to delivery to the
end user.

LECTURE 1 22
errors

requirements conformance

performance

an indication
of quality

LECTURE 1 23
 To perform effective testing, you should conduct effective technical
reviews. By doing this, many errors will be eliminated before testing
commences.
 Testing begins at the component level and works "outward" toward
the integration of the entire computer-based system.
 Different testing techniques are appropriate for different software
engineering approaches and at different points in time.
 Testing is conducted by the developer of the software and (for large
projects) an independent test group.
 Testing and debugging are different activities, but debugging must
be accommodated in any testing strategy.

LECTURE 1 24
 Verification refers to the set of tasks that ensure
that software correctly implements a specific
function.
 Validation refers to a different set of tasks that
ensure that the software that has been built is
traceable to customer requirements. Boehm
[Boe81] states this another way:
◦ Verification: "Are we building the product right?"
◦ Validation: "Are we building the right product?"

LECTURE 1 25
LECTURE 1 26
developer independent tester
Understands the system Must learn about the system,
but, will test "gently" but, will attempt to break it
and, is driven by "delivery" and, is driven by quality

LECTURE 1 27
 We begin by ‘testing-in-the-small’ and move
toward ‘testing-in-the-large’.
 For conventional software
◦ The module (component) is our initial focus
◦ Integration of modules follows
 For OO software
◦ our focus when “testing in the small” changes from an
individual module (the conventional view) to an OO class
that encompasses attributes and operations and implies
communication and collaboration

LECTURE 1 28
System engineering

Analysis modeling
Design modeling

Code generation Unit test

Integration test
System test

Acceptance test

LECTURE 1 29
 Dear Students,
 Your Major Test will be held on 26th March 2018 (Monday) during class at 1:45 pm. The
Lecture 1 to Lecture 6B are included. Dont miss the test cases template & helping material, you
can expect a case study for which you need to write the test case. However, you do not need to
memorize the template of master test plan for major test. Following are the detailed coverage
slides for Major test.
 Lecture 1: Slides 21 to 29
 Lecture 2: Complete lecture is included (but just Ignore Master Test Plan Template)
 Lecture 3: Slides 3, 4, 5, 11, 13, 15, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 41, 42, 44, 45, 47, 54.
 Lecture 4: Slides 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, (slides 19- 25 just Read once)
 Lecture 5: Complete
 Lecture 6: Slides 6, slides 12 - 22.
 Lecture 6B: only slide 31.
 Practice the test cases from the extra slides provided to you on moodle and the exercise we have
done in the class
 Thanks.

LECTURE 1 30

You might also like