Categories Testing

Based on the levels:
  • Unit Testing: Testing the modules or units only.
  • Integration Testing: Testing more than one module together at a time.
  • System Testing: Testing the whole system.
  • Acceptance Testing: Testing for the acceptance of the software.
Based on Approaches:
  • White Box Testing: Testing dealing with the internal codes of the software.
  • Black Box Testing: In this testing the entire internal structure is kept intact, only we deal with input and output.
  • Grey Box Testing: In this testing, we take limited internal modules on the account and put emphasis on input and output solely.
Based on Methods:
  • Static Testing: In this type of testing, the software is evaluated without the code being executed.
  • Dynamic Testing: In this testing, the software must pass through the entire scenario for which it is built.
Based on Type:
  • Manual Testing: In this test, the tester does all things manually, that is he/she himself uses the test cases to analyze the software.
  • Automation Testing: In this test, the tester is a computer which is itself running different software, which is a fact to generate test cases and test the software.

Software Testing Techniques

Unit testing vs integration testing

  • Unit Testing is done to see whether each of the individual modules is working correctly. On the other hand, in the integration testing, we have to combine more than one module to make a group and then apply our test to see, whether the entire integrated modules are collaboratively working.
  • Unit Test in a type of white box testing, as we are dealing with functional units of software, that is the modules or functions. On the other hand, the integration testing is a black box testing, as in this case also we are combining modules are solely concerned about the inputs and outputs only.
  • Unit Testing can be performed at any point in time, during the software development life cycle. On the other hand, integration testing is done only after the unit tests are completed successfully. We may also say that integration testing is only the last-but-one step of system testing, which is the final one.
  • Unit testing is only meant to find an error in the modules only and not an error related to the integration of the modules. On the other hand, integration testing is solely done to carry out the integration errors as well as some tricky Unit test error as well.
  • Unit testing will lay emphasis on the behavior of the single module. On the other hand, in the integration test, it will try its best to check the behavior of all the modules which are integrated.
  • Unit Test starts with the specification of modules. On the other hand, integration testing started with the specification of the interface.
  • Unit testing is performed by the developer or professional programmers. On the other hand, integration testing is done by the entire software developing team.
  • Unit testing is considered as a small test and so find the errors are easy in this kind of test. On the other hand, integration testing is about testing many modules at a time and so finding the error is not an easy task.
  • A unit test is simple as compared to the integration testing, and that is why the maintenance of unit test is less expensive. On the other hand in case of integration testing, the maintenance cost is relatively higher.

Software Testing Environment

System Testing Vs Integration Testing

  • System Testing checks the system as a whole. On the other hand, in the Integration Testing, the interconnection between the modules is the main concern, and so modules are first integrated and then tested.
  • System Testing can always be performed after integration testing. On the other hand, integration testing can be only done after unit testing, and before the system testing.
  • System Testing is done keeping in mind that all the functional and non-functional requirements are used during the testing. On the other hand, in integration testing, the testing is made limited to the usage of some functional aspects only.
  • System testing is purely a black box testing. On the other hand, in the case of integration testing, it is the conjugation of both the black box and the white box testing.
  • In the case of System testing, the test cases are designed in such a way that all the modules which are bound can be utilized and the overall performance could be measured. On the other hand, in case of integration testing test cases are designed so that all the modules in the integration can be used.
  • System testing can be performed by test engineers only. On the other hand, integration testing can be done by professional developers as well as test engineers as well.
  • System testing says whether the software is ready for acceptance testing. On the other hand, integration testing says nothing about acceptance. It is just a step for making integrated modules ready for system testing.
  • System testing figures many things like, the overall efficiency of the software, platform dependency or any other related properties which relates to the overall software output and development.

Your link suggestions goes here

System Testing Vs Acceptance Testing

  • System Testing is an end to end testing and is performed a check whether the whole system performs the way it is expected to perform. On the other hand acceptance testing is purely a functionality testing, which checks whether the software meets all the customer requirements.
  • System testing is done by the developing team and the testers of the company. On the other hand, the acceptance testing is done by the customers, shareholders, testers, users and all other people who are related to the software company in any sense and will be using the software.
  • System testing may be both functional or non-functional testing. On the other hand, acceptance testing is solely functional testing.
  • System testing basically measures the whole system's performance as per the functionalities. On the other hand, acceptance testing is purely done for the acceptance of the customer or any business organization who is going to purchase the software for their uses.
  • System testing is all about the operating system compatibility, hardware compatibility, etc. On the other hand, acceptance testing has nothing to do about the compatibility, all it has to do is assuring that the software is meeting all the demands of the institution or the organization for which it is built.
  • System testing is performed after the integration testing. On the other hand, acceptance testing is carried out after all the iterations and successful completion of the system testing.
  • System testing involves load, stress and performance testing. On the other hand, acceptance testing involves the uses of boundary value analysis, equivalence class partitioning and also the decision table.
  • System testing may be iterated several times after getting errors or failure. On the other hand, in case of the acceptance testing, the error or the failure is directly considered as the product failure and the reputation of the developing team is compromised.
  • System testing involves test cases mainly containing positive as well as negative parameters to check how the system behaves. On the other hand, in case of acceptance testing, there are only the uses of the positive test cases.

Black box Testing Vs White box Testing

  • Black Box testing is a software testing which is done regardless of what is happening inside the software package. On the other hand, in white box testing, the entire design structure of the software is checked step by step.
  • Black Box testing is used is testing category like the acceptance testing or the system, which are considered as the high-level test. On the other hand, white box testing is carried out in the testing category of unit testing and integration testing.
  • Black Box testing does not require knowledge of programming or coding. On the other hand, in the white box testing which deals with the checking of each and every function statement wise, it is therefore required to have a good grasp of programming knowledge to be able to understand the flaws.
  • Black Box testing requires only simple testers to be able to carry out the test. On the other hand, in case of the white box testing software developers are required to carry out the test, as different test cases may be involved during the execution or the test.
  • Black Box testing does not require the knowledge to implement the software. On the other hand, in the case of white box testing the knowledge of implementation is required.

Static Testing VS Dynamic Testing

  • Static Testing is done running the actual code. On the other hand, dynamic testing is carried out by executing the entire program.
  • In System Testing, the testing itself does the process of verification. On the other hand, in dynamic testing, validation is carried during the process of testing.
  • In Static testing, the defect is sensed and is taken care of. On the other hand, in dynamic testing, it does by finding out the defects and then fixing them.
  • Static Testing has a procedure and checklist which has to be followed while performing the test. On the other hand, in the case of dynamic testing, testing is only based on test cases, it is required to use almost all the modules and functions as its best.
  • In Static testing, its easy to find a defect and fixing them is easier. On the other hand, in dynamic testing, this process is more complicated and harder compared to Static Testing.
  • The most important point about static testing is that the structural and statement coverage testing is also covered in static testing. On the other hand, in case of dynamic testing, only the executable code is covered.

Automated Testing Vs Manual Testing

  • Automated Testing is done by computer software. On the other hand, manual testing is carried out by humans or simple computer software which is mainly under human control.
  • Automated Testing may change it's test cases from time to time if it encounters regression. On the other hand, in the case of manual testing, when it encounters regression, it has to rethink the entire scenario before making the test cases again.
  • Automated Testing is useful when a set of relatively different test cases are used again and again. On the other hand, manual testing is useful when only two or three test cases are being used, or the test is performed just for few times.
  • In Automated testing, the testers may be able to test, an application which are complicated a required logically complex test cases. On the other hand, in the case of manual testing, it may not be able to handle complex test cases, as no coding modification is possible here inside the test cases.
  • An automated test is faster compared to the manual testing, as the feeding of the test cases is done by computer and its software. On the other hand, manual testing is comparatively slower, as the test cases are fed by humans.

Categories of Testing

Summary

Software Testing can be categorized in different levels, different types, different approaches, different methods, etc.

Bases on the levels, it can be categorized into unit testing, integration testing, system testing, and acceptance testing. Based on the Approaches, it can be categorized into white-box, black-box, and grey-box testing.

Based on the methods, it can be categorized into Static Testing & Dynamic Testing. And based on the type, it can be divided into dynamic and static testing.

Recommended Reading
Comment / Suggestion Section
Point our Mistakes and Post Your Suggestions

Protractor Training

new tutorial I am starting new Protractor training batch on Weekends. Course starts from 24-Aug-2019 [10am IST to 1 pm IST] based on online.

Interested people can confirm the seat by calling to +91 8971673487 or whatsapp to +91 9003381224. You can attend first class(3 hours) for free. Only 10 Seats in Total

Find the course content : View Content