Showing posts with label SDLC. Show all posts
Showing posts with label SDLC. Show all posts

Thursday, 16 August 2012

How important is the process of software testing?

Businesses involved in software should always make sure that their software product is free of bugs, and almost there are errors or any kind of risks which cause problems to their customers(end-users), should be fixed before releasing the product to the market. Even though it is not possible to deliver 100% bug-free software product, software businesses should ensure that their product is almost free of all possible bugs/errors. To do so, they should follow software testing procedures or any kind of other testings from start to end of software development.

Software developing industry is very competitive industry to do business with. There are many software products compete in the market for a particular problem/need of customers. For an example, there are various software products like SAP, Tally and etc are competing in accountancy filed. So, it is very important that the software which you produce is very reliable, user-friendly, functional, secure and etc. Specially if a software provides solutions to business functions like accounting, it  has to be very secure, specially  from cracking, hacking and virus attacks to end-users' data. To do so security of the product should be tested well during process of software testing.

Usually there are software firms run out of time for extended testing due to tight deadline and/or delays on earlier software development phases. It leads to release the software with bugs/errors, which in return gains poor reputation to the brand. To overcome such things, software testing should not be omitted/ignored/shortened. Overall Software testing cycle should be followed. Alpha testing, beta testing, verification & validations too have to be considered during software testing process.

Unit testing should be carried out to ensure each unit of the software, operates correctly. Apart form that when the units are integrated, integration testing should be carried out to ensure software units continue working properly when those are integrated. Assuming that integrated software will work fine because of unit testing is carried out and all units are working well, there are cases where integrated software fail to work well, so integration testing is the must.

Software should perform what is supposed to perform in other words,  software should perform as what stated in software development specification which is filtered out/translated from customer requirements. To test this performance testing should be carried out.

Functionality of the software also important to compete in high competitive software industry. Each functions should work properly, individually as well as when those are integrated. Functional testing should be done to do so.

Regression testing also important when some reported issues are fixed. Other than that compatibility and usability testing should be performed before final release of the software product.

Beta version of software can be distributed to other/existing customers, which allow customers to work on it and report any issues. It helps to find out errors/bugs under different environment.

Finally even software testing is time consuming process. It is very essential to deliver quality and error free software product which in turn gives more high brand reputation and more businesses in near future.


Software testing : Things to know about

Software Testing Vs Software Quality Assurance
Executing software program purposefully with intention to “find bugs”, “measuring quality, security, functionality and performance” can be defined as software testing. Making sure that the standard procedures are adopted in all the phases of SDLC (Software Development Life Cycle), monitoring & improving process of all phases of SDLC and intend to solve identified all the problems is known as software quality assurance. Software testing is done to detect errors and Software quality assurance is oriented towards “prevention”.

SDLC Vs STLC
Preliminary analysis, Systems analysis, Systems design, Development, Installation & deployment and Maintenance are phases of SDLC.

The need of software begins when a business is in need of computerized solution for its problems or when the business identifies the opportunity for computerized solution. As next step, goals and scopes are defined along with system boundary, cost-benefit analysis and feasibility study. Then, project development plan is developed and other planning documents are prepared. Once that is done, analysis of user requirements is carried out and detailed functional document is developed. On the next phase the requirements are transformed into system design, and then the system design is converted into information system - at this phase system installation, creating and setting up the databases, coding, compiling and refining the programs are done.

Further in testing, STLC (Software Testing Life Cycle) is applied, which has the following phases:
System Study
Test planning
Test case preparation
Test case review
Execute test case
Identify bugs
Report bugs

Types of testing are Defect testing the failed scenarios, including defect tracking, Path testing, Data set testing, Unit testing, System testing, Integration testing, Black-box testing, White-box testing, Regression testing, Automation testing, User acceptance testing, Software performance testing

Once the testing phase is completed, system is implemented in production environment and further maintenance is carried out.

Further on Software testing
Test bed :
Test bed is setting up environment for testing, which includes configuring specific hardware, operating systems, network topology and etc to perform testing. In detailed test plan, “Test bed” should be consider in first point.

Test data :
What data to be tested with the software program. It is used to test effective controls of software with input.

In software testing, term “error” means - deviation of actual and expected output, term “bug” means - the error which can be found in development environment before delivery to customer and the term “defect” means - error which can be found in delivered product to the customer.

Reasons for errors on Software:
Communication gap on what the application should & should not do
Programmers mistake in codes
Changes of requirements
Running to meet deadlines

Only few things about software testing is discussed above out of several points to be considered about software testing.