{"id":829,"date":"2018-05-14T06:18:35","date_gmt":"2018-05-14T06:18:35","guid":{"rendered":"http:\/\/talentedtester.com\/?p=829"},"modified":"2019-06-08T09:22:52","modified_gmt":"2019-06-08T09:22:52","slug":"istqb-foundation-test-design-techniques","status":"publish","type":"post","link":"http:\/\/talentedtester.com\/istqb-foundation-test-design-techniques\/","title":{"rendered":"The Ultimate Guide: ISTQB Foundation Test Design Techniques"},"content":{"rendered":"
Shop Related Products<\/span> Ads by Amazon <\/a> <\/span> <\/a> <\/span> <\/span> \u00d7 Thank you! <\/p>\n This will help us improve your ad experience. We will try not to show you such ads again.<\/p>\n Report a problem <\/p>\n This item is…<\/p>\n Not relevant Inappropriate \/ Offensive Displayed poorly Other <\/p>\n Add Comments (Max 320 characters)<\/span><\/p>\n <\/span> A Friendly Introduction to Software Testing<\/span> <\/a> $29.95<\/span>$29.95<\/span><\/span> Bestseller<\/span> <\/span> <\/span> (18)<\/span> <\/span> <\/span> <\/span> <\/span> <\/a> DEAL OF THE DAY ENDS IN <\/span> <\/span> <\/span> <\/span> <\/span> <\/a> \u00d7 Thank you! <\/p>\n This will help us improve your ad experience. We will try not to show you such ads again.<\/p>\n Report a problem <\/p>\n This item is…<\/p>\n Not relevant Inappropriate \/ Offensive Displayed poorly Other <\/p>\n Add Comments (Max 320 characters)<\/span><\/p>\n <\/span> Black Box Testing<\/span> <\/a> $30.79<\/span>$50.00<\/span><\/span> Bestseller<\/span> <\/span> <\/span> (6)<\/span> <\/span> <\/span> <\/span> <\/span> <\/a> DEAL OF THE DAY ENDS IN <\/span> <\/span> <\/span> <\/span> <\/span> <\/a> \u00d7 Thank you! <\/p>\n This will help us improve your ad experience. We will try not to show you such ads again.<\/p>\n Report a problem <\/p>\n This item is…<\/p>\n Not relevant Inappropriate \/ Offensive Displayed poorly Other <\/p>\n Add Comments (Max 320 characters)<\/span><\/p>\n <\/span> Python Testing with pytest: Simple, \u2026<\/span> <\/a> $34.51<\/span>$43.95<\/span><\/span> Bestseller<\/span> <\/span> <\/span> (16)<\/span> <\/span> <\/span> <\/span> <\/span> <\/a> DEAL OF THE DAY ENDS IN <\/span> <\/span> <\/span> <\/span> <\/span> <\/a> \u00d7 Thank you! <\/p>\n This will help us improve your ad experience. We will try not to show you such ads again.<\/p>\n Report a problem <\/p>\n This item is…<\/p>\n Not relevant Inappropriate \/ Offensive Displayed poorly Other <\/p>\n Add Comments (Max 320 characters)<\/span><\/p>\n <\/span> Managing Information Security: Chapter 6. Firewalls<\/span> <\/a> $6.99<\/span><\/span><\/span> Bestseller<\/span> <\/span> <\/span> <\/span> <\/span> <\/span> <\/span> <\/span> <\/a> DEAL OF THE DAY ENDS IN <\/span> <\/span> <\/span> <\/span> <\/span> <\/a> \u00d7 Thank you! <\/p>\n This will help us improve your ad experience. We will try not to show you such ads again.<\/p>\n Report a problem <\/p>\n This item is…<\/p>\n Not relevant Inappropriate \/ Offensive Displayed poorly Other <\/p>\n Add Comments (Max 320 characters)<\/span><\/p>\n <\/span> Clean Code: A Handbook of Agil\u2026<\/span> <\/a> $31.99<\/span><\/span><\/span> Bestseller<\/span> <\/span> <\/span> (484)<\/span> <\/span> <\/span> <\/span> <\/span> <\/a> DEAL OF THE DAY ENDS IN <\/span> <\/span> <\/span> <\/span> <\/span> <\/a> \u00d7 Thank you! <\/p>\n This will help us improve your ad experience. We will try not to show you such ads again.<\/p>\n Report a problem <\/p>\n This item is…<\/p>\n Not relevant Inappropriate \/ Offensive Displayed poorly Other <\/p>\n Add Comments (Max 320 characters)<\/span><\/p>\n <\/span> Behavior-Driven Development with Cucumber: Better Collaboration for \u2026<\/span> <\/a> $31.96<\/span>$34.99<\/span><\/span> Bestseller<\/span> <\/span> <\/span> <\/span> <\/span> <\/span> <\/span> <\/span> <\/a> DEAL OF THE DAY ENDS IN <\/span> <\/span> <\/span> <\/span> <\/span> <\/a> \u00d7 Thank you! <\/p>\n This will help us improve your ad experience. We will try not to show you such ads again.<\/p>\n Report a problem <\/p>\n This item is…<\/p>\n Not relevant Inappropriate \/ Offensive Displayed poorly Other <\/p>\n Add Comments (Max 320 characters)<\/span><\/p>\n <\/span> A Friendly Introduction to Software Testing<\/span> <\/a> $3.99<\/span><\/span><\/span> Bestseller<\/span> <\/span> <\/span> (18)<\/span> <\/span> <\/span> <\/span> <\/span> <\/a> DEAL OF THE DAY ENDS IN <\/span> <\/span> <\/span> <\/span> <\/span> <\/a> \u00d7 Thank you! <\/p>\n This will help us improve your ad experience. We will try not to show you such ads again.<\/p>\n Report a problem <\/p>\n This item is…<\/p>\n Not relevant Inappropriate \/ Offensive Displayed poorly Other <\/p>\n Add Comments (Max 320 characters)<\/span><\/p>\n <\/span> How Google Tests Software<\/span> <\/a> $23.96<\/span>$39.99<\/span><\/span> Bestseller<\/span> <\/span> <\/span> (61)<\/span> <\/span> <\/span> <\/span> <\/span> <\/a> DEAL OF THE DAY ENDS IN <\/span> <\/span> <\/span> <\/span> <\/span> <\/a> Ads by Amazon <\/a> <\/span> <\/a> <\/span> <\/span> <\/p>\n For any software development lifecycle to be effective, complete and accurate information is a very essential element. These two elements are what enable your test teams to work together cohesively in a systematic manner.<\/p>\n This, in turn, ensures that your end product matches the expectations of your customers as well as your business in general. The goal of a test design technique is the testing of features and functionalities using effective test case scenarios.The process of analyzing your organizations requirements from a business point of view goes hand in hand with proper testing. Determining the accuracy of completed information can be done using ambiguity testing techniques, which happens to be one of the top testing design techniques.Basically, a test design technique’s<\/a> main goal is to determine a proper series of tests from a pool of all the possible tests for a particular system. There are numerous types of software testing techniques. <\/p>\n Each one of them has their own weaknesses and strengths. Each technique<\/a> has it’s own way of identifying different types of defects.<\/p>\n So what are the Test Design Techniques covered in the ISTQB exam? Coincidentally, the two main categories covered by the ISTQB exam (Click here to see the difference between ISQI & ISTQB<\/a>) are the same categories we’re going to cover in this article herein below:<\/p>\n Dynamic techniques are divided into another three major categories. These are:-<\/p>\n This technique is also referred to as specification based or behavioural techniques. This technique uses the software’s external descriptions such as customer requirements, design, technical specifications and so on.<\/p>\n In this technique, when the tester doesn’t fully understand the software’s code or its internal structure they can perform tests using methods such as Boundary Value Analysis (input values are tested at the boundaries), Decision Table Testing, State Transition Testing, Equivalence Class Partitioning and Use Case Testing.<\/p>\n This type of technique is based on the software code as well as the program’s internal structure, testing each of them individually, one after the other. In this type of technique, testers and developers usually have a proper understanding of the internal structure and the program’s software code.<\/p>\n This test-design technique doesn’t concentrate on external or internal structures. The testing is based on experience and the following test methods are usually adopted when it comes to scenarios such as; Fault attack (here errors are anticipated by testers) and Exploratory Testing (application testing without test case documentation).<\/p>\n This technique<\/a> is all about manually testing your software product. This process is usually started in the early stages of the software development process. This means that it is most likely going to happen during the verification stage. <\/p>\n The fact that the testing is done without the need to execute the program means that you will not have any need for a computer. These testing techniques<\/a> can be applied to several forms of documents. These include design documents<\/a>, source code etc.<\/p>\n In the input values’ extreme ends is where errors, for the most part , are observed. These extreme values like lower\/upper or start\/end values are known as Boundary Values<\/a>. <\/p>\n Boundary Value Analysis is the analysing of these Boundary Values. It’s sometimes also referred to as Range Checking. Boundary Value Analysis is based on black box testing technique principles and it’s main objectives are to locate errors at input domain boundaries rather than finding the errors at the input’s center.Boundary value analysis and Equivalence partitioning are kind of intertwined and can both be used together at different levels of testing. Test cases are derived for the equivalence classes edges.<\/p>\n Each individual boundary contains invalid boundary values as well as valid boundary values. Normally, each boundary will contribute one test case each. Finding defects using this technique can be quite effective and it has the capability of functioning at most levels.<\/p>\n Your previous experiences or needs are what will determine your choice from the multiple test case applicable from invalid and valid input domains, however, you must remember that you will still be required, from each input domain, to select one test case.This testing technique is quick, easy and a fantastic way to catch input anomalies that may play a major role in interrupting the programs functionality. So, to cut short testing procedures and save time, experts delivering quality management services as well as software testing heavily rely on this method.<\/p>\n Equivalence Partitioning<\/a> is basically selecting single input values from every range from a range of values that is made up of divided test input data. It also happens to be a black box based testing technique and its main objective is the calculation of the effectiveness of certain test cases. <\/p>\n This technique also has the ability to function at all testing levels from integration, unit, system testing etc.In this technique, input is split into several different classes. The equivalence class input criteria represented by each individual class. One input is then chosen from each class.<\/p>\n What this method does is it reduces the number of test cases from an infinite number to a finite one. All this while still securing the effectiveness of each selected test case that has been assigned to monitor all the possible scenarios.A basic Equivalence Partitioning<\/a> concept is if a range from one to hundred is being accepted by one application, then those inputs can be divided into classes using Equivalence Partitioning principles. Example, design, invalid as well as valid input all get each class to provide them with one test case each.<\/p>\n One of the most vital components in the testing phase is Test Case. These are basically the predefined variables and conditions that are used to check whether your application and software is working like it’s supposed to.<\/p>\n For a testing process to be successful, then as a competent software developer you will have to learn and understand how to use some of these techniques. Understanding some of these testing methods will make your work so much easier.<\/p>\n <\/span><\/p>\n Static testing involves the testing of documents and software without actually running the code. Static testing<\/a> is the opposite to dynamic testing, which requires the code to be ran. <\/p>\n According to Guru99<\/a>, this can be in the form of walkthroughs, peer reviews, informal reviews and inspections.<\/p>\n Testing the software in the initial phase leads to greater efficiency of the code. Static testing offers<\/a> just that. During the early development phase, the code undergoes various tests and makes sure that the changes in the current part of the code do not affect the other parts.The main uses of static testing is that it is tested keeping the work environment in mind. During a review process, the software tester engineer can debate whether a certain form of code is applicable in the real world environment or not. Testing the software at the early stage before implementing it at a large scale saves a lot of time and more impotantly for any project, is the cost saving.<\/p>\n The outputs from this exercise are typically uncovering deviations from code standards, code that will be hard to maintain in the future, design issues and potentially missing requirements.<\/p>\n System testing requires the code to be ran, whereas static testing does not<\/a>. It is effectively an offline method to uncover defects early on in the development process.<\/p>\n According to Guru99<\/a>, there are five major roles in static testing:<\/p>\n The moderator coordinates the activities and tracks the progress of these tasks, to ensure a timely completion.<\/p>\n This person, for example a developer, takes the responsibility of fixing the error that has been identified. This does not have to be a developer, the defect could be a design document, for example. In this situation, an architect may be the author in this context.<\/p>\n This person will keep notes and minutes of meetings. They are typically members of the Project Management Office (PMO), but does not have to be.<\/p>\n As the name suggests, responsible for reviewing defects and providing feedback, to maintain quality.<\/p>\n Manages the process and each individual involved in the static testing activities.<\/p>\n The foremost step of static testing is the review. It is carried out in four stages depending upon its level of formality. The four types of reviews are<\/p>\n These four levels of reviews are inter-connected and intertwined, and work in liaison to collectively bring out an error free code.<\/p>\n All in all, static testing is the most important part of the software testing process which builds the foundation for a flawless software.<\/p>\n Its importance is based on the fact that it is done manually where there is a greater probability of spotting an error and before executing the code itself.<\/p>\n The early stage of the development of a software product lies heavily with the static testing where each bit of error code is identified and rectified making the software error free.<\/p>\n<\/p>\n <\/span><\/p>\n White Box Testing, which is also commonly referred to as Glass Box, Clear Box, Open Box or Structural Testing, is basically all about testing software solution’s internal infrastructure and coding.<\/p>\n Its main objectives are to strengthen security, improving usability and design, as well as strengthening the flow of outputs and inputs. This type of testing examines outputs using a particular knowledge of programming code.The “box testing” approach often used in software testing has two parts to it. One of them is what we’re here to discuss, White Box Testing. It’s counterpart is known as Black Box testing and this, unlike Clear Box testing, involves the testing of software from an end user type or external perspective.<\/p>\n In White Box testing<\/a>, the process is concentrated on internal testing and is all about the inner workings of a certain applications.The concept of a see through box was what was used when coming up with the term “white box”. The white box<\/a>, glass box or clear box name represents the ability to effectively see through the developed software’s outer shell right through to its inner workings. Similarly, the “black box” terms used in Black Box testing represents the lack of ability to be able to see the software’s inner workings. This approaches main goal is the testing of end user experiences.<\/p>\n So, is White Box testing<\/a> also called Unit testing<\/a>? Let’s find out. First of all, Unit testing, in computer programming, is a process whereby source-code’s individual units are tested to determine whether they are okay for use. An application’s smallest testable part is known as a unit. <\/p>\n A unit, in procedural programming, may be an individual procedure or function. Unit tests are occasionally created by testers that use the white box approach or regular programmers.<\/p>\n Each individual test case is, ideally, independent from one another. Substitutes such as mock objects, method stubs, test harnesses and fakes can be used to help test modules in isolation. Software developers are the ones that typically write and run unit tests with the goal of ensuring the code meet the behaviour and design it was intended for.In White Box testing, if you want to effectively design test cases, you will require adequate programming skills as well as an internal perspective of how the said system works.<\/p>\n For the tester to determine the appropriate output levels, they will need to choose exercise path inputs through the code. It is quite similar to the testing of nodes within a circuit as is experienced in the In-Circuit Testing process (ICT). Clear box testing<\/a> is normally done at unit level. <\/p>\n It is used to test paths between as well as within units. Hopefully now you can see the difference between the two. The two testing approaches are somewhat different in the few ways explained above.<\/p>\nWhat is a Test Design Technique?<\/h2>\n
What Are the Main Categories<\/h3>\n
01. Dynamic Test Techniques<\/h3>\n
Black Box Techniques: <\/h4>\n
White Box Techniques: <\/h4>\n
Experience Based Testing: <\/h4>\n
02. Static Techniques<\/h3>\n
What is Boundary Value Analysis?<\/h3>\n
Equivalence Partitioning<\/h3>\n
Final Words On Test Design Techniques<\/h3>\n
Digging Deeper Into Static Testing<\/h2>\n
Secret Static Testing Techniques that appear in the ISTQB Exam Questions?<\/h3>\n<\/p>\n
What Is Static Testing?<\/h3>\n
What Are The Main Uses Of Static Testing?<\/h3>\n
How Is It Different From System Testing?<\/h3>\n
What Are The Different Roles And Responsibilities?<\/h3>\n
\n
Moderator<\/h4>\n
Author<\/h4>\n
Scribe<\/h4>\n
Reviewer<\/h4>\n
Manager<\/h4>\n
What Are The Different Types Of Reviews Involved?<\/h3>\n
\n
Final Words on Static Testing<\/h3>\n
Is White Box Testing also Called Unit Testing?<\/h2>\n
What is White Box Testing?<\/h3>\n
Difference Between White Box Testing and Unit Testing?<\/h3>\n
Advantages of White Box Testing<\/h3>\n
\n