Monday 3 February 2014

Software Testing



Software testing
The process of exercising the software to verify the satisfied requirements and to detect the faults
Quality of software is assessed in terms of various factors such as

  • Functionality
  • Reliability
  • Efficiency
  • Usability
  • Maintainability
  • Portability

Basic concepts

Trivial bugs
This trivial defects does not affect the functionality. It is the minor defects such as spelling mistakes, improper alignment, graphical user interface mistakes.

Dirty testing
Negative testing is related to the testers’ attitude rather than a specific test approach or test
design technique, e.g. testing with invalid input values or exceptions. 

Re-Testing: 
After a defect is detected and fixed, the software should be retested to confirm that the original defect has been successfully removed. This is called Confirmation Testing or Re-Testing

Regression testing: 
Testing your software application when it undergoes a code change to ensure that the new code has not affected other parts of the software

LCSAJ: 
A Linear Code Sequence And Jump, consisting of the following three items the start of the linear sequence of executable statements, the end of the linear sequence, and the target line to which control flow is transferred at the end of the linear sequence.

off-the-shelf software: 
A software product that is developed for the general market, i.e. for a large number of customers, and that is delivered to many customers in identical format

Be spoke software
bespoke software: Software developed specifically for a set of users or customers. 


Types of Testing

Ad - hoc testing
  1. This is a informal type of software testing.
  2. It is performed by software testers, developers, Business analyst without referring the documentaation.
  3. This testing usually performed by the people , good understanding of requirements, experience knowldege in domain, requirements, functionality of the project
Acceptance testing
  1. This is formal type of software testing..
  2. It is performed by end customers.
  3. End customers check whether the software meets the excat requirements for the business needs.
  4. Acceptance tests are usually documented but the end customers may not documented.
Accessibility testing
  1. This is a forma type of software testing.
  2. It helps to determine whether the software can be used by the disability people.
API Testing
  1. it is focused on the functionality of the software business logic
  2. API testing is focused on the functionality of the software’s business logic
  3.  It mainly concentrates on the business logic layer of the software architecture. 
Alpha Testing
  1. This is a formal type os testing.
  2. This is performed by end customers at development site.
  3. Alpha testing conducted before we move to beta testing.
Aging testing
  1. This is type of performance testing.
  2. This testing can be done by running software for long duration like one week or one months.
  3. Check whether the software shows any performance degradation after running long period of time. 
  4. This is known as soak testing or longevity testing. 
All pairs Testing
  1. This is also known as pair wise testing
  2. This is one type of black box testing approach where each input is tested in pairs of input. its helps to works as expected  with all possible input combinations.
Beta testing
  1. This is formal type of testing.and it is carried out by end customers before release or handling over the product to the end customers.
Black Box testing
  1. This technique is carried by giving the various inputs and validating the results against expected output.
  2. For this technique, testers are not required  to know the coding or internal structure of the programs. 
Backward compatability testing
  1. This type of software testing to check whether the newer version of the software can work successfully installed over previous version of the software .
  2. check the new version works with new table structure, data structures, files that were created by the previous version of the software.
Boundary value analysis
  1. To check whether the defects at boundary conditions. If a field accepts value 1 to 100 , then testing is done by giving the inputs by 0,1,2,3 to 100,101.... 
Big Bang Integration Testing
  1. In big bang Integration testing, individual modules of the programs are not integrated until every thing is ready. This approach is seen mostly in inexperienced programmers.
  2. In this approach, the program is integrated without any formal integration testing, and then run to ensures that all the components are working properly
Bottom up Integration testing
  1. This testing starts with smaller systems or sub systmes of every project. In this way testers tester covering all the modules
  2. Starts with smaller portion of the software and gradually covered all the softwares  in terms of size, complexity, completeness.
Branch testing
  1. It is an type box white box testing..
  2. This is done by designing the test cases to test code for every branch condition.
  3. Branch testing is applied during unit testing  
Basis path testing
  1. It is an type of white box testing.
  2. This testing is for designing the test cases to design code for evry execution path of code at least once.
  3. Basis path testing is applied during unit testing.

Browser compatability testing ( BCT )
  1. This testing is done by testers.
  2. This is performed for web applications with combinations of different browsers and operating systems.

Benchmark testing
  1. This testing is performed by testing team.
  2. This testing is performed by measuring the performance of different version of the software with predefined configuration.of the systems.

Binary compatability Testing
  1. This is one type of compatability testing.
  2. It tests the compatability of binary or executable files from one hardware or opearating systems.
Compatability testing
  1. This is done by testing team.
  2. To check the software can be run on different hardware, operating systems, bandwidth, databases, web server, hardware  processor, and different version of the browser etc..
Certification testing
  1. This is one type of compatability testing.
  2. To check whether the product will be certified as fit to user or not.
  3. This is applicable for hardware, operating systems  or browser etc...
  4. hardware, processor are certified by windows 7....
Configuration Testing
  1. This testing is used for performance testing.
  2. By tuning the configuration of the system that make the software , hardware or operating systems.
Component testing
  1. This type of software testing done by developers.
  2. Component testing is done after by unit testing .
  3. It tested the group of units or code rather than individual functionality.
Compliance Testing
  1. This testing is done by external agencies or external standards and testers.
  2. To check whether the software meets the required standard , government laws, company policy.
Concurrency Testing
  1. This test is performed by performance test engineers
  2. To check whether the application performs when multiple user uses the software, login, features, and database .

Comparison Testing
  1. This test is performed by Business analyst or marketing analyst.
  2. This test is performed by comparing the software features with the competitor site or different version of the product.

Conformance testing
  1. This testing is performed by external agencies or standards body.
  2. This testing is done by whether the product meets the requirements.
  3. Mobile devices to restrict the limit of electro magnetic radiations.
Conversion testing
  1. This testing is performed by testers.
  2. To check whether the programs  of software used for converting data  from existing system to  a new systems.
  3. Php software system is being replaced by SAP implementations. data  has to be converted form Php to SAP.

Code Driven testing
  1. This testing is done by developers.
  2. It makes the frameworks Junit, Xunit, Nunit  working or not.
Condition coverage testing
  1. This testing is performed by developers during unit testing.
  2. Developer tests all the condition statements like if, if else, case etc..
Dynamic testing
  1. This testing is classified as static testing or dynamic Testing.
  2. This testing can be done by executing the software
  3. Dynamic Testing or functional testing , unit testing, performance testing , regression testing.
Documentation testing
  1. This is one type of static Testing.
  2. This testing check the end user perspective, spell check, grammatical checking, etc...
  3. It also check the end user (EULA) user guide , admin guide, installation guide.
Decision coverage Testing
  1. This type of testing used in Unit testing.
  2. It is used to validate each and every decision code ,if, if else...
Destructive testing
  1. This testing is performed by testing team.
  2. To find the failure points of the software by inputting in correct data, inputting corrupt data, by giving number of requests.