ソフトウェアテスト
[2] ソフトウェア工学の概の概概
要
Software Testing
[2] Overview of Software Engineering
あまん ひろひさ ひろひさ
阿萬 裕久 裕久( AMAN
Hirohisa )
(C) 2007-2022 Hirohisa AMAN
1
Role of software
the computer system
Combination of hardware and software
computer system
software
hardware
master the hardware
is the role of software
how the hardware
It's up to the software to
make the most of it
Games are a typical example
(C) 2007-2022 Hirohisa AMAN
2
Software Liability Is Serious
The key to safety and security in everyda
y life
Software reliability
Software bugs can cause serious damage
Possibility of impact on electricity, gas, water su
pply, transportation, and finance
(Example) Stock exchange stops → Major damage Major damage
may cause accidents
(Example) Elevator malfunction → Major damage Personal injury injury
Needs to be tested for a variety of
situations (C) 2007-2022 Hirohisa AMAN
3
Software Features (1/4)
It is difficult to grasp the actual situ
ation
Software is logical, not physical
in short, Does not actually exist as a “t
hing”
(C) 2007-2022 Hirohisa AMAN
4
Software Features (2/4)
Work concentrated on the developme
nt process
Hardware, the flow is to develop a produ
ct and manufacture it in a factory.
For software, manufacturing is just a cop
ying
Quality and cost are centered on the dev
elopment process
"Everything is defective from the beginning" → Major damage
It is all about not failing in development
(C) 2007-2022 Hirohisa AMAN
5
Software Features (3/4)
Long period of operation and mainten
ance
Rather than the time it took to create, the s
oftware
operation(actually used by users)
Maintenance(Modify, improve, and exten
d functions)
The period of doing is much longer
Ease of maintenance is the
key
(C) 2007-2022 Hirohisa AMAN
6
Software Features (4/4)
low reuse
Hardware: It is common to reuse existin
g parts
Software: It is difficult to complete just b
y combining parts (requires a lot of custo
mization)
There is software that can be reused in t
he form of libraries, but it cannot be use
d without programming.
(C) 2007-2022 Hirohisa AMAN
7
Reuse
There are two types of software reuse
Black Box
No need to worry about the contents, use it
like a part
White Box
Copy and paste the program and rewrite it
as needed
(C) 2007-2022 Hirohisa AMAN
8
black box reuse
Library form
For example, using existing functions as it is,
(example)
C.in language
scanf function or
printf function
#include <xxxx.h>
existing
code
(C) 2007-2022 Hirohisa AMAN
New
code
9
white box reuse
“Copy and paste" the source code
For example, using part of existing source code.
Transcribe codes from books and web pages
There is also a risk of copying mistakes (bugs) a
nd misusing it.
Example: Even if you copy and paste a program that
you do not understand, you will only get confused.
existing
code
copy
(C) 2007-2022 Hirohisa AMAN
New
code
10
[Exercise 1]
Consider the code clone problem
Copy and paste the source code as it i
s, or change part of it and use it as "c
ode cl injuryone”
In the software industry, software wit
h many code clones is regarded as a
problem
Why?
(C) 2007-2022 Hirohisa AMAN
11
What is good software
Note that the concept differs dependi
ng on the viewpoint
user
friendly
Understanding/Maintenance
It's easy to do
Good
software
the required
specifications
A user
meets
or
Development
cost/
Appropriate Developer
period
client
Software engineering is mainl injuryy from the devel injuryoper's perspect
(C) 2007-2022 Hirohisa AMAN
12
User's Perspective (1)
Satisfaction of required specifications
Requirements can be broadly divided i
nto two types:
Functional specifications: Functions to b
e achieved
Example: User authentication
Non-functional specification: "How" should
the requirements be realized
Example: Authentication for 500 users must
be completed within 3 seconds
(C) 2007-2022 Hirohisa AMAN
13
User's Perspective (2) Operabili
ty
In a word, "ease of use”
Easy to operate
Easy to understand operation
Indirectly, operating speed and memory
usage are also related.
(I don't want to use so-called "heavy" syste
ms)
(C) 2007-2022 Hirohisa AMAN
14
Developer's Perspective (1) Cos
t and Period
Low development cost is desirable
The development period is within the
deadline (until delivery) to
It is rare to be able to develop slowly ov
er time
Need to finish on time with limited resou
rces and time
It can be developed at low cost and delivered within
the deadline, and The goal is to develop software that
satisfies the required specifications.
(C) 2007-2022 Hirohisa AMAN
15
Developer's Perspective (2) Mai
ntainability
Once completed and put into operation, t
he required specifications almost always
change.
"I want you to change this way"
Request for addition or expansion of function
s "More such functions"
Bugs may be found
Software that is easy to maintain is “good” software & “Ease of
understanding” is also important because it may be maintained by
another person
(C) 2007-2022 Hirohisa AMAN
16
Three characters that appear in s
oftware development sites
QCD
Quality (Quality)
Cost (Cost)
Deadline (Delivery)
KKD
intuition
experience
courage
important in the
manufacturing
industrynameans
three pillars
It means a site that
is not well
managed
(C) 2007-2022 Hirohisa AMAN
17
Classification of software
Basic software
What users
Application software
want
middleware
Application
software
middleware
embedded software
An image of these three layer Basic software
s embedded in hardware
on the calculator
What we can offer
(C) 2007-2022 Hirohisa AMAN
18
[Exercise 2]List the chal injuryl injuryenges in devel injury
oping and maintaining embedded soft
ware.
Thinking about embedded software fo
r elevator control
When developing this software, what
is more difficult than general softwar
e?
Also, what about maintenance?
(C) 2007-2022 Hirohisa AMAN
19
life cycle
life cycle: The Life of Software
development (development)
plan
Requirements analysis
external design
internal design
implementation
normally
(programming)
test
Here is
the longest
Operation/maintenance
(C) 2007-2022 Hirohisa AMAN
waste
20