about summary refs log tree commit diff
path: root/usth/ICT2.7/P4L1 General Concepts Subtitles/15 - Testing Granularity Levels - lang_en_vs4.srt
diff options
context:
space:
mode:
Diffstat (limited to 'usth/ICT2.7/P4L1 General Concepts Subtitles/15 - Testing Granularity Levels - lang_en_vs4.srt')
-rw-r--r--usth/ICT2.7/P4L1 General Concepts Subtitles/15 - Testing Granularity Levels - lang_en_vs4.srt275
1 files changed, 0 insertions, 275 deletions
diff --git a/usth/ICT2.7/P4L1 General Concepts Subtitles/15 - Testing Granularity Levels - lang_en_vs4.srt b/usth/ICT2.7/P4L1 General Concepts Subtitles/15 - Testing Granularity Levels - lang_en_vs4.srt
deleted file mode 100644
index 83df7ea..0000000
--- a/usth/ICT2.7/P4L1 General Concepts Subtitles/15 - Testing Granularity Levels - lang_en_vs4.srt
+++ /dev/null
@@ -1,275 +0,0 @@
-1

-00:00:00,160 --> 00:00:03,050

-And before I start talking about specific testing techniques, there's

-

-2

-00:00:03,050 --> 00:00:05,490

-something else that I want to discuss, which is Testing

-

-3

-00:00:05,490 --> 00:00:09,090

-Granularity Levels. So let's consider a software system, a system

-

-4

-00:00:09,090 --> 00:00:12,310

-made out of components that interact with one another. So the

-

-5

-00:00:12,310 --> 00:00:15,000

-first level that we consider in testing is called Unit

-

-6

-00:00:15,000 --> 00:00:18,490

-Testing, which is the testing of the individual units or modules

-

-7

-00:00:18,490 --> 00:00:20,690

-in isolation. The next step, is to see there are

-

-8

-00:00:20,690 --> 00:00:25,340

-multiple modules and their interactions. And this is called Integration Testing.

-

-9

-00:00:25,340 --> 00:00:28,650

-So, integration testing is the testing of the interactions among

-

-10

-00:00:28,650 --> 00:00:31,460

-different modules. And it can be performed according to different

-

-11

-00:00:31,460 --> 00:00:34,260

-strategies. Depending on the order in which the modules are

-

-12

-00:00:34,260 --> 00:00:37,570

-integrated and on whether we integrate one module at a time

-

-13

-00:00:37,570 --> 00:00:40,510

-or multiple modules together, all at once. And in this

-

-14

-00:00:40,510 --> 00:00:43,240

-latter case, we call this kind of integration testing, the one that

-

-15

-00:00:43,240 --> 00:00:47,640

-integrates all the modules at once, Big Bang integration testing.

-

-16

-00:00:47,640 --> 00:00:50,520

-And after performing integration testing, the next step is to test

-

-17

-00:00:50,520 --> 00:00:52,750

-the complete system as a whole. And this level of

-

-18

-00:00:52,750 --> 00:00:56,190

-testing is normally called, System Testing. So system testing in the

-

-19

-00:00:56,190 --> 00:00:59,560

-testing of the complete system and it includes both functional and

-

-20

-00:00:59,560 --> 00:01:03,250

-non functional testing. We will discuss functional and non functional testing

-

-21

-00:01:03,250 --> 00:01:05,575

-in details in the next two lessons. But I just

-

-22

-00:01:05,575 --> 00:01:08,330

-want to give you an idea of what they are intuitively. Functional

-

-23

-00:01:08,330 --> 00:01:12,250

-tests are the test that aim to verify the functionality provided

-

-24

-00:01:12,250 --> 00:01:15,680

-by the system. For example if you consider the function double

-

-25

-00:01:15,680 --> 00:01:17,840

-value that we saw earlier in the lesson, a

-

-26

-00:01:17,840 --> 00:01:20,660

-functional test will try to assess that that function

-

-27

-00:01:20,660 --> 00:01:23,970

-is producing the right value given a specific input.

-

-28

-00:01:23,970 --> 00:01:26,826

-Conversely, no functional test are the one that target, as

-

-29

-00:01:26,826 --> 00:01:30,540

-surprisingly, no functional properties of the system. For example,

-

-30

-00:01:30,540 --> 00:01:34,060

-no functional test will include performance tests, load tests,

-

-31

-00:01:34,060 --> 00:01:37,310

-robustness tests. In general, no functional tests will try

-

-32

-00:01:37,310 --> 00:01:41,410

-to assess different qualities of the system, such as reliability,

-

-33

-00:01:41,410 --> 00:01:45,970

-maintainability, usability, so basically, all the ilities that you can

-

-34

-00:01:45,970 --> 00:01:49,760

-think about. In addition to these three basic testing levels, there

-

-35

-00:01:49,760 --> 00:01:51,830

-are two more levels that I want to consider and that

-

-36

-00:01:51,830 --> 00:01:55,150

-I want to discuss. And they both involve the whole system.

-

-37

-00:01:55,150 --> 00:01:57,610

-And the first one is Acceptance Testing which is the

-

-38

-00:01:57,610 --> 00:02:01,320

-validation of the software against the Customer requirements. So this is

-

-39

-00:02:01,320 --> 00:02:04,090

-the testing that makes sure that the system does what the

-

-40

-00:02:04,090 --> 00:02:06,720

-customer wants it to do. And the last type of testing

-

-41

-00:02:06,720 --> 00:02:09,729

-that I want to mention is Regression Testing. And regression testing

-

-42

-00:02:09,729 --> 00:02:13,260

-is the type of testing or retesting, that we perform every time

-

-43

-00:02:13,260 --> 00:02:15,540

-that we change our system. And we need to make sure

-

-44

-00:02:15,540 --> 00:02:19,060

-that the changes behave as intended and that the unchanged code is

-

-45

-00:02:19,060 --> 00:02:22,680

-not negatively affected by the modification, by these changes. In fact,

-

-46

-00:02:22,680 --> 00:02:25,070

-what can happen when you modify the code is that parts of

-

-47

-00:02:25,070 --> 00:02:28,120

-the code that are related to the changes, are actually affected

-

-48

-00:02:28,120 --> 00:02:32,110

-by the changes, and start misbehaving. And we call those regression errors.

-

-49

-00:02:32,110 --> 00:02:35,080

-And regression errors, are very common. For example, you're probably

-

-50

-00:02:35,080 --> 00:02:38,070

-familiar with the situation in which, one software update is

-

-51

-00:02:38,070 --> 00:02:41,350

-released, and just a few days later, another software update

-

-52

-00:02:41,350 --> 00:02:44,640

-is released. In many cases that happens because the first update

-

-53

-00:02:44,640 --> 00:02:47,760

-was containing regression errors. So the changes in the code

-

-54

-00:02:47,760 --> 00:02:51,100

-that broke some functionality, that resulted in failures on the user's

-

-55

-00:02:51,100 --> 00:02:53,940

-machine and in bug reports and therefore that caused further

-

-56

-00:02:53,940 --> 00:02:57,090

-maintenance, further bug fixes, and a release on a new version.

-

-57

-00:02:57,090 --> 00:02:59,790

-Something else I'd like to mention about regression testing, is that

-

-58

-00:02:59,790 --> 00:03:02,535

-regression testing is one of the main causes why software maintenance is

-

-59

-00:03:02,535 --> 00:03:05,679

-so expensive. And that's also why researchers have invested a great

-

-60

-00:03:05,679 --> 00:03:07,481

-deal of effort into refining regression

-

-61

-00:03:07,481 --> 00:03:09,495

-testing techniques that can make regression

-

-62

-00:03:09,495 --> 00:03:12,599

-testing more effective and more efficient. So let me leave you,

-

-63

-00:03:12,599 --> 00:03:15,129

-with a little piece of advice which is try to automate as

-

-64

-00:03:15,129 --> 00:03:19,470

-much as possible regression testing. For example use scripts, use tools, make

-

-65

-00:03:19,470 --> 00:03:22,660

-sure to save your harness, make sure to save your input, and

-

-66

-00:03:22,660 --> 00:03:24,820

-outputs for the test, because you want to be able

-

-67

-00:03:24,820 --> 00:03:27,680

-to rerun your test, at a push of a button as

-

-68

-00:03:27,680 --> 00:03:29,750

-much as possible every time you change your code, to

-

-69

-00:03:29,750 --> 00:03:32,560

-avoid the presence of regression errors in the code you release.