Showing posts with label QA. Show all posts
Showing posts with label QA. 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.

Wednesday, 15 August 2012

Essential of Software testing

Usually time allocated for software testing is less compare to other areas of software development. There are situations where actual testing is performed more quicker than actual allocated time for testing. Because, there are software developing companies getting pressure from other stakeholders like marketing team, management team and etc. The reason for the pressure may be the marketing department and management team may have allocated lots of money in advertising and promotion activities, as a result they always need to launch the product in time, even they prefer sooner is better. That obviously put less time on testing.

Usually, taking the software to end user is the goal of marketing and management teams. But it has to be ensured that that end users will not find any serious bugs on the software. That kind of considerations make stable positions for software in the market. Bugs in reporting format or etc usually has less impact on software product and end-users, anyway which should be fixed in upcoming releases of the product. Bugs like loosing data or crashing the program may cause serious impact on end users' data as well as on stability of the market for software. When software testing is planned, critical areas where system may crash or loose data, should be given high priority in testing.

Software testing includes quality assurance, validations and performance testing and etc. When planning a testing, specific areas should be tested, for an example if the performance testing is planned, there should not be more focus to be given to quality rather than performance. Such mis-leading things may lead to have hidden bugs in the software.

Nowadays software testing become very important in-order to deliver quality products which leads more need of software testing professionals and there are certification are introduced like ISEM, ISTQB and etc for software testing professionals. It is good news. However, it has to be noted that, software testing can ensure quality but it cannot ensure BUG-FREE.