Software Testing

Software Testing is the process that validates and verifies that the developed software meets the requirements as expected by both technical teams and final beneficiaries.

Codespring encourages Test Driven Development. This allows to the team to conceive software that is testable at each step, before deployment at the user’s points. Testing may be done at different levels: unit testing, integration testing, system testing, and user acceptance testing.  Dynamic testing is applied to discrete functions or modules.

Software Testing Methods:

Testing may be static and/or dynamic. It can also be done manually or by automated means.

Manual testing is recommended for:

  • small projects, where no further releases are foreseen
  • when big changes are foreseen
  • or automation is just not possible

Automated testing is suitable for:

  • functions that will not suffer often or major changes
  • regression testing (that may be automated in 70-80% of cases)

Software Testing Tools

  • Bug tracking: Redmine, Mantis Bug Tracker, Team Foundation Server, JIRA
  • Test management: Microsoft Test Manager, TestLink, HP Quality Center
  • Automated testing: TestComplete, Cucumber, Selenium
  • Unit testing framework: NUnit, JUnit, CppUnit
  • Unit test execution: Maven Surfire Pulgin
  • Integration test execution: Maven Failsafe Plugin
  • Load testing: Apache JMeter

Software Testing Resources

Software Testing involves human resources and appropriate infrastructure. A software development project may require one or both of the following:

  • specialized teams – each tester has a certain role and a set of task; the testing team is separated from the development team
  • agile teams – where the developers undertake the testers role when necessary.

In both situations, the testing will check how the software meets its’ capability, reliability, efficiency, portability, maintainability, compatibility, and usability criterions.

  • 31