SOFTWARE TESTING
SOFTWARE Software is not the collection of programs but also all associated documentation and configuration data which is need to make these programs operate correctly. Software is not the collection of programs but also all associated documentation and configuration data which is need to make these programs operate correctly. SOFTWARE ENGINEERING SoftwareEngineering is an systematic, disciplined, quantifiable, approach to development,operation, and maintenance of software. SoftwareEngineering is an systematic, disciplined, quantifiable, approach to development,operation, and maintenance of software. The main intention of developing the software w projects is to satisfy the user needs with effort. The main intention of developing the software w projects is to satisfy the user needs with effort.
Communication (Collecting requirement from stack holders) Planning (Estimation the Budget and Creating the Required List) Deployment (Delivering the project and gathering the feedback) PHASES OF SOFTWARE DEVELOPEMENT Construction (Code Generation and Testing the Project) Modeling (Analyzing the Requirements and preparing the design for Project)
SOFTWARE TESTING SOFTWARE TESTING SoftwareTesting is a process of execution of the given S/W with an intension of finding bugs in it. SoftwareTesting is a process of execution of the given S/W with an intension of finding bugs in it. The testing is one of the essential steps of S/W development life cycle. The testing is one of the essential steps of S/W development life cycle. NEED FOR SOFTWARE TESTING NEED FOR SOFTWARE TESTING SoftwareTesting is to uncover error’s that were made during the design and construction phases. As errors are uncovered these errors must be corrected, the process of correcting the error is called the debugging.
code Unit Testing System Testing Validation Testing Integration Testing Design Requirements Software Engineering The testing strategy was developed by project engineers, and testing specialists. The need of developing the testing strategy is, if we perform the testing with out preparing a strategy it leads to unnecessary expenditure and waste of time. To over come these draw backs we prepare the Strategy.
UNIT TESTING VALIDATION TESTING INTEGRATION TESTING SYSTEM TESTING
Test Cases Interface Local data Structures Boundary conditions Independent paths Error Handling paths Module Module Before performing any other test the data have to flow across the unit test conditions. Unit test focus on internal processing logic and data structures with in the boundaries of components. UNIT TESTING
Integration testing is a systematic technique for constructing the software while at the same conducting tests to uncover errors associated with interfacing. Integration testing is a systematic technique for constructing the software while at the same conducting tests to uncover errors associated with interfacing. TWO TYPES OF INTEGRATION TESTING Incremental Testing: combining the each module one by one and testing is performed whenever a module is combined. In this error rectification is easy. Non Incremental: All the modules are combined and entire project is tested at once. By this error detection becomes difficult and we can not perform complete testing. INTEGRATION TESTING
TOP DOWN This starts with higher components and progress towards the lower level components. This uses DFS and BFS approaches for testing. Project architecture is provided at the beginning of testing. In this we cannot perform 100% testing. M1M1 M1M1 M2M2 M2M2 M4M4 M4M4 M5M5 M5M5 M8M8 M8M8 M3M3 M3M3 M7M7 M7M7 M6M6 M6M6
BOTTOM UP This starts with low level components and progress towards high level components. Clusters are the group of low level components. Testing is conducted on each cluster. The project architecture will not be provide till the last module is integrated. Performed 100% testing. Cluster3 McMc McMc MaMa MaMa MbMb MbMb D1D1 D1D1 D2D2 D2D2 D3D3 D3D3 Cluster2 Cluster 1
SMOKE TESTING It is the daily based testing to check the shows topper errors. The main advantages of this testing is We easily identify the error and We easily correct the errors STRUCTURAL TESTING (WHITEBOX TESTING) This is sometimes called as glass box testing or white box testing In this code is visible outsides so called glass box testing. In this we test all independent paths, boundary conditions and all logical decision and local data structures.
PATH TESTING It is one of the while box testing technique. In path testing the path coverage criterion considers all possible logical paths in a program and leads to test cases aimed at exercising a program along each path. To identify he independent path first we have to prepare the program in a simple control flow called flow graph.
main(){ int a,b,c; printf(“Enter values for A B and C”); scanf(“%d %d %d”,&a,&b,&c); if(a>b){ If(a>c) printf(“A is Biggers”); else printf(“C is Biggers”); } else if(b>c) printf(“B is Biggest”); else printf(“C is Biggest”); }
No Yes Start Read a,b,c a>b a>c b>c A is Big C is Big B is Big Stop C is Big FLOW CHART
R2R2 R1R1 R3R3 R4R4 In order to find the no of independent paths we use the flow graph with this flow graph we can find the independent paths using following techniques Identify no of regions =4 No of edges- No of nodes+2 = = 4 No of predicates +1 =3+1=4 FLOW GRAPH
BLACKBOX TESTING This is also called behavior and functional testing. White box and black box are complimentary one. This testing focus on information domain and SRS documentation. The function and behavior of system can be determined by Input and Output.
VALIDATION TESTING This testing mainly focus on requirements specified by the customer. This is also called as acceptance test. This is conducted by end user or customer in presence of developer. This is achieved by series of Black box testing methods. Formal Acceptance Testing:( For Single user i.e., the Bespoke product) Informal Acceptance Testing : (For Multiple users i.e. the Generic product)
ALPHA TESTING This is the testing conducted by the end users in the presence of developers, the presence of developers is because the end users does not have the knowledge of operation that product. BETA TESTING This is conducted after the alpha testing in this the involvement of developer is absent. This is conducted after the alpha testing in this the involvement of developer is absent.
SYSTEM TESTING The system should interact with the previous existing systems i.e., it should be flexible to the environment. This focus on the external system specifications. In this testing the system is tested along with the other systems. WAYS OF SYSTEM TESTING –Recovery testing –Security testing –Stress testing –Performance testing
CONCLUSION In the Designer point of view testing is destruction process,designing as well as coding is the construction process but really the testing has the equal importance to the construction and designing phases. Finally we can conclude that we can not provide the customer with a Quality Product with out Testing.
Q U E R I E S