Testing

Software testing is the process used to assess the quality of computer software.

Software testing is an empirical technical investigation conducted to provide stakeholders with information about the quality of the product or service under test , with respect to the context in which it is intended to operate. This includes, but is not limited to, the process of executing a program or application with the intent of finding software bugs. Quality is not an absolute; it is value to some person.

Over its existence, computer software has continued to grow in complexity and size. Every software product has a target audience. For example, a video game software has its audience completely different from Telecom software. Therefore, when an organization develops or otherwise invests in a software product, it presumably must assess whether the software product will be acceptable to its end users, its target audience, its purchasers, and other stakeholders. Software testing is the process of attempting to make this assessment.

Client Requirements/Trends

  • A need for more robust and reliable software
  • Clients expect that bought software holds no or little defects (bugs)
  • Variety testing strategies for different software projects
  • Increased need for automation conducted tests
  • Reduced time-to-market
  • Reduced cost constraints
  • Increased cost of quality

Redstone Offering/Experiences

We like the idea of "Less is more". Large amounts of code often tend to generate many bugs. Keep it simple when possible and use tried and tested patterns and frameworks (OSS or well known commercial ones). After many years of development we fully understand the need for extensive, proper testing when developing software.

  • Try to build in automation tests in large system from day 1.
  • Monitor progress on a regular basis and distribute the test reports to all delegates in the project.
  • Define on an early step the test cases if possible.
  • Define the goal with end-customer an define when to stop testing activities (usually a defined level of non-blocking defects in the system test).
  • Never let the software developer test its own code (except for functionally, basic and unit tests).
  • Plan for regression tests, there will be changes to requirements.
  • Make sure your requirements is visible in your test cases.

Normal steps to walk to fulfill the requirement of well-tested software

  • Test Strategy Definition
  • Test Process Improvement
  • Automation Engineering
  • Test script setup
  • Test on all levels, meaning:
    • Functional Testing
      • Unit testing (developer)
      • System (Integration) Testing
      • Regression Testing
      • User Acceptance Testing
      • Usability Testing
    • Non-Functional Testing
      • Performance Testing
      • Load Testing
      • Stress Testing
    • Environment Management handling Data
    • Release and Configuration Management

There exists a couple of methodologies to set testing in focus from beginning in a project that we have Experiences from:

TDD

Test-Driven Development (TDD) is a software development technique consisting of short iterations where new test cases covering the desired improvement or new functionality are written first, then the production code necessary to pass the tests is implemented, and finally the software is refactored to accommodate changes. The availability of tests before actual development ensures rapid feedback after any change.

XP

Extreme Programming (or XP) is a software engineering methodology (and a form of agile software development). Extreme Programming encourages starting with the simplest solution. Within Extreme Programming, feedback relates to different dimensions of the system development. Building software systems requires communicating system requirements to the developers of the system.

More information on Methods and Processes. Read more

Success Key 6: Build in automation tests in large system to enable easy change handling and regression tests

Success Key 7: Traceability, make sure each positive test case map to a single customer requirement

Business Value

  • Reduced time-to-market and costs with a high quality
  • Close to zero defect delivery ensuring Business As Usual
  • Efficiency throughout test automation (also enable easy updates for future features)
  • Higher efficiency from the beginning of the software life-cycle

By partnering with Redstone you are always assured of:

  • Top quality resources with deep understanding of testing importance
  • Short startup time
  • High awareness of globally cost pressures
 

Try us!

Please contact us if you have a need for professional resources! You will find a rock-solid partner for your web and telecom projects!

Projify

Projify is the Redstone project site that gives users free access to information tools to collaborate, communicate and manage documents. The service is completely open to companies, organizations, associations and individuals.

Create free account today!

 Projify