Software QA and Testing Tools Info
Change and Configuration Managament Tools - Part of the CM Wiki site with information about CM that includes tools listings based on the former CM Yellow Pages. Also links to information about CM, Build Management, Change Management, and concepts, templates, and processes. (Also see CM Crossroads, an online community and resource center for configuration management, with library of resource links, interactive discussion forums, monthly newsletter, Career Search and Jobs Board.)
CM & Problem Management FAQ/Tools Lists - Comprehensive resource for Configuration Management and Problem Management and related tools. Includes tool descriptions and reviews, FAQ's, links to related web sites. Based on the FAQ from usenet news group comp.software.config-mgmt. Has not been updated for some time, but still has much useful information.
Test Tools List - Extensive test tools list maintained by Danny Faught, listings and summaries of various types of test tools, and links to their web sites.
Web Site Test/Management Tools List - SoftwareQATest.com's listing of more than 420 web site test and management tools. Load testing tools, HTML validators, security test tools, link checkers, site mapping tools, site monitoring services, open source tools, functional and regression test tools, site administration and maintenance tools, version control, java test tools, log analysis tools, site monitoring services, etc.
Open source software testing tools - Listing of more than 400 open source test tools (of all types, not just for web testing) in various categories including functional testing, java testing, perfomance testing, test management, bug tracking, unit testing, and more.
Web Site Test Tools and Site Management Tools
Organization of Web Test Tools Listing - this tools listing has been loosely organized into the following categories:
Load and Performance Test Tools
Java Test Tools
Free On-the-Web HTML Validators and Link Checkers
PERL and C Programs for Validating and Checking
Web Functional/Regression Test Tools
Web Site Security Test Tools
External Site Monitoring Services
Web Site Management Tools
Log Analysis Tools
Other Web Test Tools
What is 'Software Quality Assurance'?
Software QA involves the entire software development PROCESS - monitoring and improving the process, making sure that any agreed-upon standards and procedures are followed, and ensuring that problems are found and dealt with. It is oriented to 'prevention'. (See the Bookstore section's 'Software QA' category for a list of useful books on Software Quality Assurance.)
What is 'Software Testing'?
Testing involves operation of a system or application under controlled conditions and evaluating the results (eg, 'if the user is in interface A of the application while using hardware B, and does C, then D should happen'). The controlled conditions should include both normal and abnormal conditions. Testing should intentionally attempt to make things go wrong to determine if things happen when they shouldn't or things don't happen when they should. It is oriented to 'detection'. (See the Bookstore section's 'Software Testing' category for a list of useful books on Software Testing.)
- Organizations vary considerably in how they assign responsibility for QA and testing. Sometimes they're the combined responsibility of one group or individual. Also common are project teams that include a mix of testers and developers who work closely together, with overall QA processes monitored by project managers. It will depend on what best fits an organization's size and business structure.
How can new Software QA processes be introduced in an existing organization?
A lot depends on the size of the organization and the risks involved. For large organizations with high-risk (in terms of lives or property) projects, serious management buy-in is required and a formalized QA process is necessary.
Where the risk is lower, management and organizational buy-in and QA implementation may be a slower, step-at-a-time process. QA processes should be balanced with productivity so as to keep bureaucracy from getting out of hand.
For small groups or projects, a more ad-hoc process may be appropriate, depending on the type of customers and projects. A lot will depend on team leads or managers, feedback to developers, and ensuring adequate communications among customers, managers, developers, and testers.
The most value for effort will often be in (a) requirements management processes, with a goal of clear, complete, testable requirement specifications embodied in requirements or design documentation, or in 'agile'-type environments extensive continuous coordination with end-users, (b) design inspections and code inspections, and (c) post-mortems/retrospectives.
Other possibilities include incremental self-managed team approaches such as 'Kaizen' methods of continuous process improvement, the Deming-Shewhart Plan-Do-Check-Act cycle, and others.
What are 5 common problems in the software development process?
poor requirements - if requirements are unclear, incomplete, too general, and not testable, there may be problems.
unrealistic schedule - if too much work is crammed in too little time, problems are inevitable.
inadequate testing - no one will know whether or not the software is any good until customers complain or systems crash.
featuritis - requests to add on new features after development goals are agreed on.
miscommunication - if developers don't know what's needed or customer's have erroneous expectations, problems can be expected.
What are 5 common solutions to software development problems?
solid requirements - clear, complete, detailed, cohesive, attainable, testable requirements that are agreed to by all players. In 'agile'-type environments, continuous close coordination with customers/end-users is necessary to ensure that changing/emerging requirements are understood.
realistic schedules - allow adequate time for planning, design, testing, bug fixing, re-testing, changes, and documentation; personnel should be able to complete the project without burning out.
adequate testing - start testing early on, re-test after fixes or changes, plan for adequate time for testing and bug-fixing. 'Early' testing could include static code analysis/testing, test-first development, unit testing by developers, built-in testing and diagnostic capabilities, automated post-build testing, etc.
stick to initial requirements where feasible - be prepared to defend against excessive changes and additions once development has begun, and be prepared to explain consequences. If changes are necessary, they should be adequately reflected in related schedule changes. If possible, work closely with customers/end-users to manage expectations. In 'agile'-type environments, initial requirements may be expected to change significantly, requiring that true agile processes be in place and followed.
communication - require walkthroughs and inspections when appropriate; make extensive use of group communication tools - groupware, wiki's, bug-tracking tools and change management tools, intranet capabilities, etc.; ensure that information/documentation is available and up-to-date - preferably electronic, not paper; promote teamwork and cooperation use protoypes and/or continuous communication with end-users if possible to clarify expectations.