1. What is the advantages and disadvantages of Test driven testing and model bas
ID: 3719237 • Letter: 1
Question
1. What is the advantages and disadvantages of Test driven testing and model based testing? (10 points)
2. Why do we need to do software configuration management, and what is the key properties that SCM have? (10 points)
3. We introduced boundary value testing, equivalence class testing, path testing, what is the different between these different testing techniques, and what kinds of criterial you will use to help you decide which testing technique is the best choice for a special system? (10 points)
5. What is object orient testing, why it is so important, and what is the difference with the structured testing methods? (10 points)
Explanation / Answer
1) Test Driven Testing:
Test-Driven Development is a process for when you write and run your tests. Following it makes it possible to have a very high test-coverage. Test-coverage refers to the percentage of your code that is tested automatically, so a higher number is better. TDD also reduces the likelihood of having bugs in your tests, which can otherwise be difficult to track down.
The TDD process consists of the following steps:
It can take some effort to learn well, but spending the time can pay off big. TDD projects often get a code-coverage of 90-100%, which means maintaining the code and adding new features is easy. This is because you have a large set of tests, so you can trust your code and changes work, and didn’t break any other code either.
Model based testing is a testing technique where run time behavior of a software under test is checked against predictions made by a formal specification or model. In other means, it describes how system behaves in response to an action (determined by a model). Supply action, and see, if the system responds as per the expectation.
It is a lightweight formal method to validate a system. This testing can be applied for both hardware and software testing.
Types of MBT:
There are two types of Model based testing.
Benefits of Model Testing:
Following are benefits of MBT:
********************************************************************************
2)
oftware Configuration Management is the process that defines how to control and manage the changes.
The need for an SCM process came when there are many developers and many versions of the software. Suffice to say that in a complex scenario where bug fixing should happen on multiple productions of systems and enhancements must be continued on the main code base, SCM acts as the backbone which can make this happen.
The SCM processes further defines the need to trace the changes and the ability to verify that the final delivered software has all the planned enhancements that are supposed to be part of the release.
The traditional SCM identifies some procedures that must be defined for each software project to ensure that a good SCM process is implemented. Those are following:
Identification
Software is usually made up of several programs. Each program has it’s related documentation and data can be called as a “configurable item”(CI). The number of CI in any software project that make up a CI is a decision made of the project. The end product is made up of a bunches of CIs.
The status of the CIs at a given point in time is called as a baseline. The baseline serves as a reference point in the software development life cycle. Each new baseline is the sum total of an older baseline plus a series of approved changes made on the CIs.
Control
The process of deciding, coordinating the approved changes for the proposed CIs and implementing all the changes on the appropriate baseline is called Configuration control. It should be kept in mind that configuration controls only address the process after changes are approved. The act of evaluating and approving changes to the software comes under the purview of an entirely different process is called change control.
Status Accounting/Monitoring
Configuration status accounting is the keeping process of each release. This procedure involves tracking what all is in each version of software and the changes that lead to this version. Configuration status accounting keeps a record of all the changes made to the previous baseline to reach of the new baseline.
Authentication
The reviews and audits that verify the physical existence of CIs and checks that they are correctly recorded and parts list.
Configuration authentication (CA) is a process of assuring that a new baseline has all the planned and approved changes incorporated. The process involves verifying that all the functional aspects of the software is completed and also the completeness of the delivery in terms of the right programs, documentation and data are being delivered.
The configuration authentication is an audit performed on the delivery before it is opened to the entire world.
Free software tools that help in SCM are:
Commercial Tools:
***********************************************************************************************************
3)
Boundary value Testing:
It’s widely recognized that input values at the extreme ends of input domain cause more errors in the system. More application errors occur at the boundaries of input domain. ‘Boundary value analysis’ testing technique is used to identify errors at boundaries rather than finding those exist in center of input domain.
Boundary value analysis is the next part of Equivalence partitioning for designing test cases where test cases are selected at the edges of the equivalence classes.
Test cases for input box accepting numbers between 1 and 1000 using Boundary value analysis:
1) Test cases with test data exactly as the input boundaries of input domain i.e. values 1 and 1000 in our case.
2) Test data with values just below the extreme edges of input domains i.e. values 0 and 999.
3) Test data with values just above the extreme edges of input domain i.e. values 2 and 1001.
Boundary value analysis is often called as a part of stress and negative testing.
Equivalence Testing :
In this method, the input domain data is divided into different equivalence data classes. This method is typically used to reduce the total number of test cases to a finite set of testable test cases, still covering maximum requirements.
In short, it is the process of taking all possible test cases and placing them into classes. One test value is picked from each class while testing.
E.g.: If you are testing for an input box accepting numbers from 1 to 1000 then there is no use in writing thousand test cases for all 1000 valid input numbers plus other test cases for invalid data.
Using equivalence partitioning method above test cases can be divided into three sets of input data called as classes. Each test case is a representative of a respective class.
PATH Testing:
Path testing is an approach to testing where you ensure that every path through a program has been executed at least once. You normally use a dynamic analyzer tool or test coverage analyser to check that all of the code in a program has been executed. However, testing all paths does not mean that you will find all bugs in a program. Many bugs arise because programmers have forgotten to include some processing in their code, so there are no paths to execute. Some bugs are also related to the order in which code segments are executed. For example, if segments a, b and c are executed <a, b, c>, then the program may work properly. However, if they are executed <a, c, b> then an error may arise. It is practically impossible to test all orders of processing as well as all program paths.
***************************************************************************************************************
4)Object Oriented Software Testing
As an increment to the existing conventional approach, object-oriented approach was developed as the next great advance of software engineering. Software developed using object-oriented concept has a different structure and behavior that the one developed using procedural languages. Object-oriented approach is a data centric approach rather than algorithmic and it is a method based on hierarchy of classes and well-defined and cooperating objects. An object can be defined as a thing or entity which can store data and send & receive messages whereas class can be defined as group of objects that share common properties and relationships. Everything in object-oriented programming is grouped as self sustainable objects, thereby gaining reusability by means of four important object-oriented features such as Encapsulation, Abstraction, Inheritance and Polymorphism. Encapsulation can be defined as wrapping up of data and functions into a single unit. Objects are described as implementations of abstract data types (ADTs). Usually an ADT definition is called class, while an object is a runtime instance of a class. Inheritance is the process by which objects of one class acquire the properties of another class. Polymorphism enables a number of different operations to have the same name i.e program entities should be permitted to refer to objects of more than one class, when a hierarchical relationship among these classes exits
Structured Testing:
the structured testing criterion is simply stated: Test a basis set of paths through the control flow graph of each module. This means that any additional path through the module’s control flow graph can be expressed as a linear combination of paths that have been tested. Note that the structured testing criterion measures the quality of testing, providing a way to determine whether testing is complete. It is not a procedure to identify test cases or generate test data inputs. Section 6 gives a technique for generating test cases that satisfy the structured testing criterion. Sometimes, it is not possible to test a complete basis set of paths through the control flow graph of a module. This happens when some paths through the module can not be exercised by any input data. For example, if the module makes the same exact decision twice in sequence, no input data will cause it to vary the first decision outcome while leaving the second constant or vice versa. This situation is explored in section 9 (especially 9.1), including the possibilities of modifying the software to remove control dependencies or just relaxing the testing criterion to require the maximum attainable matrix rank (known as the actual complexity) whenever this differs from the cyclomatic complexity. All paths are assumed to be exercisable for the initial presentation of the method.
******************************************************************************************************************************
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.