-In the last lesson, we talked about black-box testing or functional testing, - -2
-which is the kind of testing that you perform when you just - -3
-look at the description of the software. Today we're going to cover white-box - -4
-testing, which is the kind of testing that we perform when we - -5
-open up the box. We look inside the program, and we actually - -6
-test it based on its code. And there is one basic assumption - -7
-behind the idea of white-box testing, which is a very intuitive one, - -8
-and the assumption is that executing the faulty statement is a necessary - -9
-condition for revealing a fault. In other words, if there is - -10
-a bug in the program there is no way were going to be - -11
-able to find this bug or this fault, if we don't execute - -12
-the statement that contains it. Which makes a lot of sense. As - -13
-we did for black-box testing, we're going to start by summarizing what - -14
-are the main advantages of white-box testing. The main advantage is that - -15
-it's based on the code, and as such, the quality of white-box - -16
-testing can be measured objectively. And what I mean here by objectively - -17
-is that if you think about black-box testing In many - -18
-cases, there were subjective decisions, there were had to be made - -19
-in order to define tests in a black-box fashion. In the - -20
-case of white-box testing, because everything is based on the quota, - -21
-we don't have to make such subjective decisions. And similarly, because - -22
-white-box testing is based on the code, it can be measured - -23
-automatically. So we can build tools and actually there are tools, - -24
-and there's plenty of tools, that can be measured, the level - -25
-of white-box testing can be achieved in a fully automated way. - -26
-And we're going to see some of them in the course of the - -27
-class. Another advantage of white-box testing is that it can be - -28
-used to compare test suites. So if you have two alternative sets - -29
-of tests that you can use to assess the quality of - -30
-your software, white-box testing techniques can tell you which one of these - -31
-two test suites is likely to be more effective in testing - -32
-your code. And finally, white-box testing allows for covering the coded behavior - -33
-of the software. What that means is that if there is - -34
-some mistake in the code and is not obvious by looking at - -35
-the specification of the code, white box testing might be able - -36
-to catch it, because it tries to exercise the code. There's many - -37
-different kinds of white box testing, there are control flow based - -38
-techniques, data flow based techniques, and fault based techniques. And for each - -39
-one of these family of techniques there are many variations. So - -40
-this field is very, very broad. In this lesson we will talk - -41
-about white-box testing by focusing - -42
-mainly on control-flow based testing techniques. -- cgit 1.4.1