Software testing gives independent view of the software to which allow the business to understand the risks of implementating the software. The software Test system are not limited to executing a program or application to finding software bugs in existing software or the developed one which has created for customer request.
Software Testing can also define as the process of validating and verifying software programe, application and product meets the business requirements which helped to design and developthe software.The most software testing occur when requirements fulfilled and system has developed for execution of programe.
Software Testing Team
The software testing mostly done by professional software testers. The “software tester” term was used generally until 1980, but after 1980 the software tester term became a proper separate profession. In software testing there were many roles has been established like,Managers, test lead, test designer, tester and test administrator.
The functional testing normally takes test to vereify some specific function of the code and also action of that code.These kind of testing normally found in those documentation of code requirements.The functional testing of software normally takes to answer some following question i.e.”user are ables to do this”or does particular part of codeing or feature work.
NON Fnctional Testing
The Non functional testing normally takes test of software that could not be related to specific function,user action.like security.The Non functional testing normally takes to answer following question for example how many user can log on at once or is it possible to hack this software easly.
Software validation and verification:
The software testing can take place in association of validation and verification of software.
Verification: The verification of software testing means that to know if Software which has developed is that built right.for example it fulfill or match the user requirements or specification of software.
Validation: The validation of software means that have we built the right software.i.e.is it that software which customer wants to be built.
The software Testing Methods
The box approach
There issoftware testing approach which can taken to perform software testing.
The Box approach
The box approach manly divide into two parts
Black box testing
white box testing
Black Box Testing
The black box testing will treat software as black box,that means this testing will take without knowing any knowledge of internal implementation of software.The Black box testing approach include.fuzz testing,model based testing and specification based testing.
Specification-based testing: The specification testing use to test the functionalty of software system according to requirements.The software tester inputs the data and will only be able to see the output on test object.This type of testing normally requires some test cases to provided the tester and the tester can verify that data with given input the output of testing either is or is not same as it was expected .
The specification testing is important or necessary but this would not be good for some certain risks.
White Box Testing.
The white box testing is another method which test the software.The white box testing method is done when the tester has internal access of data structures and programe code that implement .Here is few types of white box testing
Code Coverage Testing
Fault Ijection Testing
API Testing: The API stands for application programming interface .The API testing will test those application which using both public and private API.
Code Coverage Tsting:This testing purpose is to test some code coverage.For example The software tester will take test on all programming code to execute once while testing the software.
Fault Ijection Testing:This testing purpose is that improve the code coverage.
Static testing:In static testing all the testing which took in white box testing is static testing.
There are few testing level
System Integration Testing
Unit Testing:The unit test is takes to test the functionality of some particular section of programe code.This testing normally takeing at functional level of programe.for example In Object Oriented language this testing will be taken at class level,the unit test in object oriented include destructor and constructor.these tests are normally written of those testers who work on coding to make sure that every specific part of codeing is working properly.In this testing there could be many tests taken at one fuction of coding.The only unit testing can not test the functionalty of software.The software works independently.The unit testing also called component testing.
Integration testing:The integration testing is type of software testing that verify the interfaces between components against a software design. The components of software could integrated in an repertation of process or together .The integration software testing will test to find the defects in the interfaces and interaction between integrated components. The large number of software tester groups will test all the elements of design of system and will test until the software works perfectly.
System Testing:The system testing will tests the complete system to make sure the software fulfill all requirements.
System Integration Testing:The system integration testing is that if any third party or external member wants to intergate with this system will be able to do and the system define the system requirements.
Regression Testing:The Regression testing means the tester will focus on finding a defect after the major part of coding for some reasons has been changed.In this testing the software tester focus on old errors that could occur again.Those regressions happen whenever software functionality which was working before test but stops working after that.The regression happen when some code changes,for example when the newly built code of software collide with old code or existing code.The mane purpose of regession testing is that testing that software which has already been tested means retesting again whether the previously resolve fault may have come back.The fully testing is happen when software is in release phase and when there will be risk for developer will add some more features.The changes depends on early part of builting a software.
Alpha Testing:The alpha testing is that which have been done by the end user ,customers or an independent means the actual user who is going to use this software will test this software at developers’ site.The alpha testing is normally done before the software will go sale or before handing to customer.i.e.off the shelf testing after this software will go for beta testing
Beta Testing:The beta testing will take after alpha testing.The beta testing means that the software will release for limited people outside the developers to check the functionalty of software.The other purpose of testing is the further testing will take to find bugs or faults.sometimes the beta version of software will release to open public to get more feedback from maximum number of peoples.
Security Testing:The security testing is most important for any software that process the personal details of customers’ data .The security is important to prevent system from hackers.
Sample Testing Cycle
There is commonly used cycle for testing.The below sample is very commonly used with in organisations which is using waterfall development model.
Requirements analysis: This phase should begin in requirements phase of software development life cycle.In design phase tester work with software developer determine what design of software is testable.
Test Planning: The test planning or test plan in this there will be many test taken so there should be plan for testing.
Test Development:The test developer or Test procedures, test data, to use in testing software.
Test Execution: The tester will execute the software based on plan and will report any bugs or errors to developer.
Test Reporting: In this phase once the testing is completed then tester will make final report on their test which they have taken throw many phases and report will show whether the software is ready to release or not.
Test result analysis: The test result analysis or Defect Analysis,is normally done by the developers with client and make them sure what defects should be treated.for example the software is working properly or it could be done later.
Defect Retesting:In this phase once defect has dealt by developers than it will bw retested by testing team.
Regression Testing: In any programe it is likely to have samll testing program built into software to test when user wants and it make sure when new development or fixed software and modfied will come to software will not disturb the software completely.The complete software will working properly.
Test Clousure:After completeing all test and test fulfill the exit requirements than it is important to key outputd ,logs and documents related to software should kept safe for future development..